0024932: addsweep does not check if the supplied variable contains a shape
authormsv <msv@opencascade.com>
Wed, 2 Nov 2016 12:43:50 +0000 (15:43 +0300)
committerapn <apn@opencascade.com>
Thu, 3 Nov 2016 11:15:47 +0000 (14:15 +0300)
Check for null shape has been added in the command addsweep implementation.

// eliminate warning

Test case for issue CR24932
Test case has been corrected.

src/BRepTest/BRepTest_SweepCommands.cxx
tests/bugs/modalg_6/bug24932 [new file with mode: 0644]

index 0a307e8..de1a750 100644 (file)
@@ -577,11 +577,12 @@ static Standard_Integer addsweep(Draw_Interpretor& di,
   Handle(Law_Interpol) thelaw;
 
   Section = DBRep::Get(a[1], TopAbs_SHAPE);
-  if (Section.ShapeType() != TopAbs_WIRE &&
-      Section.ShapeType() != TopAbs_VERTEX)
+  if (Section.IsNull() ||
+      (Section.ShapeType() != TopAbs_WIRE &&
+       Section.ShapeType() != TopAbs_VERTEX))
     {
       //cout << a[1] <<"is not a wire and is not a vertex!" << endl;
-      di << a[1] <<"is not a wire and is not a vertex!\n";
+      di << a[1] <<" is not a wire and is not a vertex!\n";
       return 1;
     }
 
diff --git a/tests/bugs/modalg_6/bug24932 b/tests/bugs/modalg_6/bug24932
new file mode 100644 (file)
index 0000000..03e9d23
--- /dev/null
@@ -0,0 +1,38 @@
+puts "========"
+puts "OCC24932"
+puts "========"
+puts ""
+#######################################################################################
+# addsweep does not check if the supplied variable contains a shape
+#######################################################################################
+
+vertex v0 0 0 0
+vertex v1 1 0 0
+edge e1 v0 v1
+wire w1 e1
+mksweep w1
+shape solid1 So
+catch {addsweep solid1} msg
+if ![regexp "is not a wire" $msg] {
+  puts "Error: addsweep did not complaint about wrong argument - solid"
+} else {
+  puts "OK: addsweep noted wrong argument - solid"
+}
+
+mksweep w1
+shape emptyshape 
+catch {addsweep emptyshape} msg
+if ![regexp "is not a wire" $msg] {
+  puts "Error: addsweep did not complaint about wrong argument - empty shape"
+} else {
+  puts "OK: addsweep noted wrong argument - empty shape"
+}
+
+mksweep w1
+if [info exists undefined] {unset undefined}
+catch {addsweep undefined} msg
+if ![regexp "is not a wire" $msg] {
+  puts "Error: addsweep did not complaint about wrong argument - undefined variable"
+} else {
+  puts "OK: addsweep noted wrong argument - undefined variable"
+}