0026636: BRepOffsetAPI_ThruSections algorithm crashes on two inconsistent wires
authorjgv <jgv@opencascade.com>
Thu, 10 Sep 2015 13:47:39 +0000 (16:47 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 10 Sep 2015 13:48:43 +0000 (16:48 +0300)
Test case for issue CR26636

src/BRepFill/BRepFill_CompatibleWires.cxx
tests/bugs/modalg_6/bug26636 [new file with mode: 0644]

index 4d2ea11..7cb4249 100644 (file)
@@ -1143,6 +1143,8 @@ void BRepFill_CompatibleWires::
          }
        }
       } //end of for(; itW.More(); itW.Next())
+    if (Esol.IsNull())
+      Standard_ConstructionError::Raise("BRepFill :: profiles are inconsistent");
     MW.Add(Esol);
 
     TopTools_ListOfShape ConnectedEdges;
diff --git a/tests/bugs/modalg_6/bug26636 b/tests/bugs/modalg_6/bug26636
new file mode 100644 (file)
index 0000000..1a86d4a
--- /dev/null
@@ -0,0 +1,27 @@
+puts "=========="
+puts "OCC26636"
+puts "=========="
+puts ""
+############################################################
+# BRepOffsetAPI_ThruSections algorithm crashes on two inconsistent wires
+############################################################
+
+restore [locate_data_file bug26636_w1.brep] w1
+restore [locate_data_file bug26636_w2.brep] w2
+
+decho off
+dlog reset
+dlog on
+
+catch {thrusections result 0 1 w1 w2}
+
+set info [dlog get]
+dlog reset
+dlog off
+decho on
+
+if { [regexp "Standard_ConstructionError\\: BRepFill \\:\\: profiles are inconsistent" ${info}] == 1  } {
+   puts "OK : Exeption is correct"
+} else {
+   puts "Error : Exeption is not correct"
+}