puts "========"
puts "OCC27604"
puts "Application Framework - memory is not released after closing XBF file"
puts "========"
puts ""

set aBigShape Bottom.brep

pload OCAF MODELING

# just a big shape to fit in memory
restore [locate_data_file $aBigShape] s

set aTmpFile ${imagedir}/${casename}.cbf

# store it in the document
NewDocument D BinOcaf
SetShape D "0:2" s
SaveAs D $aTmpFile
Close D

# store the memory used before opening a document
set aBefore [meminfo h]

Open $aTmpFile DD
set aDocLoaded [meminfo h]
set aBigDelta [expr $aDocLoaded - $aBefore]
Close DD

set anAfter [meminfo h]
set aDelta [expr $anAfter - $aBefore]

puts "Memory used before: $aBefore"
puts "After open: $aDocLoaded"
puts "After close: $anAfter"

# if after the close the memory used left 5% more than before closed, this is an issue
# (less 5% is the measurement tolerance)
if {[expr $aBigDelta / 20. - $aDelta] < 0} {
  puts "Error: the memory is not freed after Open/Close"
}

file delete -force $aTmpFile
