0027604: Application Framework - memory is not released after closing XBF file
[occt.git] / tests / bugs / caf / bug27604
diff --git a/tests/bugs/caf/bug27604 b/tests/bugs/caf/bug27604
new file mode 100644 (file)
index 0000000..8d2806b
--- /dev/null
@@ -0,0 +1,39 @@
+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
+
+# store it in the document
+NewDocument D BinOcaf
+SetShape D "0:2" s
+SaveAs D test.cbf
+Close D
+
+# store the memory used before opening a document
+set aBefore [meminfo h]
+
+Open test.cbf 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"
+}