--- /dev/null
+puts "REQUIRED All: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "TODO OCC24251 ALL: ERROR: OCC24251 is reproduced."
+
+puts "========"
+puts "OCC24251"
+puts "========"
+puts ""
+#############################################################################
+# Command checkshape does not report a problem on first call after fixshape
+#############################################################################
+
+restore [locate_data_file bug24899_TheHull.brep] r0
+
+# First usage of checkshape command for r0
+set bug_info_initial [checkshape r0]
+
+# Calculate number of problematic sub-shapes before using fixshape command
+set bug_info_initial [lindex $bug_info_initial [expr {[llength $bug_info_initial] - 1}]]
+set bug_info_initial [string trim [string range $bug_info_initial [expr {[string last "_" $bug_info_initial] + 1}] [expr {[string length $bug_info_initial] - 1}]]]
+
+fixshape r r0
+
+# Second usage of checkshape command for r0
+set bug_info_final [checkshape r0]
+
+# ERROR if "This shape seems to be valid" after checkshape command
+if {$bug_info_final == "This shape seems to be valid"} {
+ puts "ERROR: OCC24251 is reproduced. Second usage of checkshape command does not show problems"
+} else {
+# Calculate number of problematic sub-shapes on after using fixshape command
+ set bug_info_final [lindex $bug_info_final [expr {[llength $bug_info_final] - 1}]]
+ set bug_info_final [string trim [string range $bug_info_final [expr {[string last "_" $bug_info_final] + 1}] [expr {[string length $bug_info_final] - 1}]]]
+# ERROR if result of first usage checkshape command is different from the second usage
+ if {$bug_info_final != $bug_info_initial} {
+ puts "ERROR: OCC24251 is reproduced. Second usage of checkshape command shows $bug_info_final problems, but first usage shows $bug_info_initial"
+ }
+}