From: gka Date: Wed, 23 Nov 2016 16:31:02 +0000 (+0300) Subject: 0028118: Mesh generation hangs then crashes X-Git-Tag: V7_1_0~6 X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=cde381c4e201713c3088501af50fc5ac34780c57;p=occt.git 0028118: Mesh generation hangs then crashes Protection against hangs of mesh and crash(made by epa) Added test case bugs/mesh/bug28118 Tests mesh* standard_* W7 are corrected (TODO removed) --- diff --git a/src/BRepMesh/BRepMesh_EdgeTessellator.cxx b/src/BRepMesh/BRepMesh_EdgeTessellator.cxx index 3ff00f8028..0daa3509d3 100644 --- a/src/BRepMesh/BRepMesh_EdgeTessellator.cxx +++ b/src/BRepMesh/BRepMesh_EdgeTessellator.cxx @@ -79,7 +79,7 @@ BRepMesh_EdgeTessellator::BRepMesh_EdgeTessellator( { // bug24220 const Standard_Integer aNbInt = myCOnS.NbIntervals(GeomAbs_C1); - if ( aNbInt > 0 ) + if ( aNbInt > 1 ) { TColStd_Array1OfReal anIntervals( 1, aNbInt + 1 ); myCOnS.Intervals(anIntervals, GeomAbs_C1); diff --git a/tests/bugs/mesh/bug28118 b/tests/bugs/mesh/bug28118 new file mode 100644 index 0000000000..fe38d2c074 --- /dev/null +++ b/tests/bugs/mesh/bug28118 @@ -0,0 +1,27 @@ +puts "========" +puts "OCC28118" +puts "========" +puts "" +########################################### +# Mesh generation hangs then crashes +########################################### + +testreadstep [locate_data_file bug28118_18547.stp] result +vclear +vinit View1 +vdefaults -autoTriang off +vdisplay result +vfit +incmesh result 0.1 -relative +vsetdispmode 1 +set tri_info [trinfo result] + +regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri +regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod + +if { $tri > 0 && $nod > 0 } { + puts "OK: mesh was created correctly" +} else { + puts "Error: mesh was not built" + +checkview -screenshot -3d -path ${imagedir}/${test_image}.png diff --git a/tests/mesh/data/standard/W7 b/tests/mesh/data/standard/W7 index c760ae6feb..c3a0501efb 100755 --- a/tests/mesh/data/standard/W7 +++ b/tests/mesh/data/standard/W7 @@ -1,14 +1,11 @@ set TheFileName shading_wrongshape_027.brep set bug_freenodes "OCC22687" set nbfreenodes(All) 6 -set max_rel_tol_diff 1 if { [string compare $command "shading"] != 0 } { #set bug_area "OCC22687" + set max_rel_tol_diff 1 set rel_tol 1.2 } else { - set rel_tol 1.1 - set nbfree(All) 2 - set bug_freelinks "OCC22687" + set max_rel_tol_diff 0.01 + set rel_tol 0.052351028422287886 } -set nbcross(All) 2 -set bug_cross "OCC23184"