From 8878d0ecce0f8ac2cb719020f459d2254982511d Mon Sep 17 00:00:00 2001 From: msv Date: Wed, 2 Nov 2016 15:43:50 +0300 Subject: [PATCH] 0024932: addsweep does not check if the supplied variable contains a shape 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 | 7 +++-- tests/bugs/modalg_6/bug24932 | 38 +++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 tests/bugs/modalg_6/bug24932 diff --git a/src/BRepTest/BRepTest_SweepCommands.cxx b/src/BRepTest/BRepTest_SweepCommands.cxx index 0a307e8fed..de1a7505b1 100644 --- a/src/BRepTest/BRepTest_SweepCommands.cxx +++ b/src/BRepTest/BRepTest_SweepCommands.cxx @@ -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 index 0000000000..03e9d23f3b --- /dev/null +++ b/tests/bugs/modalg_6/bug24932 @@ -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" +}