Adding test cases from grid chl
[occt.git] / tests / bugs / caf / bug114
diff --git a/tests/bugs/caf/bug114 b/tests/bugs/caf/bug114
new file mode 100755 (executable)
index 0000000..23e7e15
--- /dev/null
@@ -0,0 +1,63 @@
+puts "==========="
+puts "OCC114"
+puts "==========="
+
+#--------------------------------------------------------------------
+####### Setting value of memory leakage in percents of memory allocated by shape
+set percent_max 10
+puts "Max memory leakage is $percent_max%"
+####### Setting amount of iterations for computing leackage
+set i_max 20
+puts "Amount of iterations is $i_max"
+#--------------------------------------------------------------------
+
+if ![string compare $tcl_platform(platform) "windows"] {
+    proc VMem { memory } {
+       upvar $memory mem
+       regsub "^.*PeakVirtualSize: *\(\[0-9\]*\) KB.*$" \
+           [exec tlist [pid]] "\\1" mem
+    }
+} else {
+    proc VMem { memory } {
+       upvar $memory mem
+       set mem [lindex [exec ps -o vsz -p [pid]] 1]
+    }
+}
+
+NewDocument D MDTV-Standard
+UndoLimit D 10
+
+VMem Mem0
+restore [locate_data_file OCC114.brep] s
+VMem Mem1
+#puts "...  The peak memory consumed: [expr $Mem1 - $Mem0] KB"
+
+set MemoryLeakage 0
+
+for {set i 1} {${i} <= ${i_max}} {incr i} {
+
+   OpenCommand D
+   SetShape D 0:1 s 
+   AbortCommand D
+
+   VMem Mem2
+   set Delta [expr $Mem2 - $Mem1]
+   set MemoryLeakage [expr $MemoryLeakage + $Delta]
+#   puts "       $i delta memory consumed: $Delta KB"
+}
+
+
+if { $MemoryLeakage != 0 } then {
+  set percent [expr ${MemoryLeakage} / (double(${i_max}) * (${Mem1} - ${Mem0})) * 100.]
+} else {
+  set percent 0
+}
+puts "Current memory leakage in percents = ${percent}"
+
+if {${percent} > ${percent_max}} {
+   puts "OCC114: Error"
+} else {
+   puts "OCC114: OK"
+}
+
+