From: dpasukhi Date: Mon, 13 Feb 2023 10:43:59 +0000 (+0000) Subject: // reverting removed test cases X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=refs%2Fheads%2FCR33329;p=occt.git // reverting removed test cases The possible reason for removing incorrect 3rd party for new compilers (can be a DE part) Draco QT Updated local name and some other compiler real time properties (can be a DE part) Different drivers for used server's hardware ( not DE part ) --- diff --git a/tests/boolean/bopfuse_simple/ZP6 b/tests/boolean/bopfuse_simple/ZP6 index 00cb1a188d..f8b2fb8f4e 100755 --- a/tests/boolean/bopfuse_simple/ZP6 +++ b/tests/boolean/bopfuse_simple/ZP6 @@ -3,8 +3,6 @@ # #Create 3 torus -puts "TODO CR33225 Linux: Error : The area of result shape is 138625, expected 197700" - ptorus a0 100 20 tcopy a0 a1 tcopy a0 a2 diff --git a/tests/bugs/caf/bug114 b/tests/bugs/caf/bug114 new file mode 100755 index 0000000000..fafb52003c --- /dev/null +++ b/tests/bugs/caf/bug114 @@ -0,0 +1,24 @@ +puts "===========" +puts "OCC114" +puts "===========" + +# Max number of iterations for computing memory leackage +set i_max 10 +puts "Amount of iterations is $i_max" + +NewDocument D BinOcaf +UndoLimit D 10 + +restore [locate_data_file OCC294.brep] s + +set listmem {} +for {set i 1} {${i} <= ${i_max}} {incr i} { + + OpenCommand D + SetShape D 0:1 s + AbortCommand D + + # check memory usage (with tolerance equal to half page size) + lappend listmem [meminfo h] + checktrend $listmem 50 50 "Memory leak detected" +} diff --git a/tests/bugs/caf/bug26293_2 b/tests/bugs/caf/bug26293_2 new file mode 100644 index 0000000000..d8b8d9d23d --- /dev/null +++ b/tests/bugs/caf/bug26293_2 @@ -0,0 +1,17 @@ +puts "===========" +puts "OCC26293" +puts "===========" +puts "" +################################# +# Error opening the document +################################# + +Open [locate_data_file bug26293_all_geom.sgd] D +vinit +for {set i 1} {$i < 1065} {incr i} { + if { ![catch {GetShape D 0:1:$i:1:1:2 res$i}] } { + vdisplay res$i + } +} +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/fclasses/bug24831 b/tests/bugs/fclasses/bug24831 index c1269d10b8..90d6d8de65 100644 --- a/tests/bugs/fclasses/bug24831 +++ b/tests/bugs/fclasses/bug24831 @@ -1,5 +1,3 @@ -puts "TODO ?CR33225 Windows: Failed class " - pload QAcommands QANTestStlIterators diff --git a/tests/bugs/fclasses/bug7287_1 b/tests/bugs/fclasses/bug7287_1 index d6f8107bf0..9c87d5ee3d 100755 --- a/tests/bugs/fclasses/bug7287_1 +++ b/tests/bugs/fclasses/bug7287_1 @@ -1,4 +1,3 @@ -puts "TODO ?СК33225 Linux: Checking trend failed " puts "TODO ?OCC7287 Linux: Tcl Exception: Memory leak detected" puts "TODO ?OCC7287 Linux: TEST INCOMPLETE" puts "TODO ?OCC7287 MacOS: Tcl Exception: Memory leak detected" diff --git a/tests/bugs/fclasses/bug7287_5 b/tests/bugs/fclasses/bug7287_5 index 7142cffe71..929094e2da 100755 --- a/tests/bugs/fclasses/bug7287_5 +++ b/tests/bugs/fclasses/bug7287_5 @@ -1,4 +1,3 @@ -puts "TODO ?CR332257287 Linux: Checking trend failed: mean delta per step = 9432.0, sigma = 4220.013270121316, expected delta = 0" puts "TODO ?OCC7287 Linux: Tcl Exception: Memory leak detected" puts "TODO ?OCC7287 Linux: TEST INCOMPLETE" puts "TODO ?OCC7287 MacOS: Tcl Exception: Memory leak detected" diff --git a/tests/bugs/fclasses/bug7287_6 b/tests/bugs/fclasses/bug7287_6 index 25588729d3..e40799f71e 100755 --- a/tests/bugs/fclasses/bug7287_6 +++ b/tests/bugs/fclasses/bug7287_6 @@ -1,4 +1,3 @@ -puts "TODO ?CR33225 Linux: Checking trend failed: mean delta per step = 7408.0, sigma = 2737.917456754312, expected delta = 0" puts "TODO ?OCC7287 Linux: Tcl Exception: Memory leak detected" puts "TODO ?OCC7287 Linux: TEST INCOMPLETE" puts "TODO ?OCC7287 MacOS: Tcl Exception: Memory leak detected" diff --git a/tests/bugs/mesh/bug32424 b/tests/bugs/mesh/bug32424 new file mode 100644 index 0000000000..deb41d8bfa --- /dev/null +++ b/tests/bugs/mesh/bug32424 @@ -0,0 +1,18 @@ +puts "=======" +puts "0032424: Mesh - Slow triangulation of a simple shape." +puts "=======" +puts "" +cpulimit 3 + +restore [locate_data_file bug32424.brep] result + +incmesh result 0.17 -a 20 + +checktrinfo result -tri 2360 -nod 1302 + +vinit +vdefaults -autoTriang 0 +vsetdispmode 1 +vdisplay result +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_1/bug19071 b/tests/bugs/modalg_1/bug19071 index 8144c621b4..5bec0ef2b0 100755 --- a/tests/bugs/modalg_1/bug19071 +++ b/tests/bugs/modalg_1/bug19071 @@ -1,12 +1,7 @@ -puts "TODO CR33225 Linux: Error : The command is not valid. The area is 0." -puts "TODO CR33225 Linux: Error : The area of result shape is 0, expected 177462" -puts "TODO CR33225 Linux: is WRONG because number of " - puts "============" puts "OCC19071" puts "============" puts "" - ####################################################################### # The MakeFuse or the MakePartition function crash together on 2 torus ####################################################################### diff --git a/tests/bugs/modalg_5/bug25199 b/tests/bugs/modalg_5/bug25199 index 410c4600ef..47d968a223 100755 --- a/tests/bugs/modalg_5/bug25199 +++ b/tests/bugs/modalg_5/bug25199 @@ -1,5 +1,4 @@ puts "TODO CR30351 Windows: Faulty OCC25199: Bad tolerance edge generated by blend algorithm" -puts "TODO CR33225 Linux: Faulty OCC25199: Bad tolerance edge generated by blend algorithm" puts "============" puts "OCC25199" diff --git a/tests/bugs/modalg_6/bug26616 b/tests/bugs/modalg_6/bug26616 new file mode 100644 index 0000000000..75391f0a0d --- /dev/null +++ b/tests/bugs/modalg_6/bug26616 @@ -0,0 +1,20 @@ +puts "========" +puts "OCC26616" +puts "========" +puts "" +############################################ +# Memory leak in IntTools_Context::Hatcher +############################################ + +restore [locate_data_file OCC26635_t0.brep] t0 +restore [locate_data_file OCC26635_t1.brep] t1 + +bfuse res t0 t1 + +set listmem {} +for {set i 1} {$i < 10} {incr i} { + bfuse res t0 t1 + + lappend listmem [meminfo h] + checktrend $listmem 0 64 "Memory leak detected" +} diff --git a/tests/bugs/modalg_6/bug27884 b/tests/bugs/modalg_6/bug27884 index 74509b211b..e8bf7ec226 100644 --- a/tests/bugs/modalg_6/bug27884 +++ b/tests/bugs/modalg_6/bug27884 @@ -3,8 +3,6 @@ puts "OCC27884: Modeling Algorithms - Possible improvement for 2d classifier" puts "=================================================================" puts "" -puts "TODO ?CR33225 Windows: Error: algorithm slowed down" - pload ALL pload QAcommands diff --git a/tests/bugs/modalg_7/bug29293_1 b/tests/bugs/modalg_7/bug29293_1 index 5d4015de14..9ff06449e0 100644 --- a/tests/bugs/modalg_7/bug29293_1 +++ b/tests/bugs/modalg_7/bug29293_1 @@ -1,5 +1,3 @@ -puts "TODO ?CR33225 Windows: extra characters after close-quote " - puts "========" puts "OCC29293" puts "========" diff --git a/tests/bugs/modalg_7/bug29843_1 b/tests/bugs/modalg_7/bug29843_1 new file mode 100644 index 0000000000..24e35fe3fb --- /dev/null +++ b/tests/bugs/modalg_7/bug29843_1 @@ -0,0 +1,48 @@ +puts "========" +puts "0029843: Modeling Algorithms - Boolean FUSE produces incorrect result" +puts "========" +puts "" + +restore [locate_data_file bug29843.brep] s + +explode s +bclearobjects +bcleartools +baddobjects s_1 +baddtools s_2 +bfillds + +bbop r_0 0 +bbop r_1 1 +bbop r_2 2 +bbop r_3 3 +bbop r_4 4 +bbuild r_5 + +foreach i { 0 1 2 3 4 5} { + checkshape r_$i + if {![regexp "OK" [bopcheck r_$i]]} { + puts "Error: r_$i is self-intersecting shape" + } +} + +checkprops r_0 -s 9.84429 -v 0.639311 +checknbshapes r_0 -wire 7 -face 5 -shell 1 -solid 1 -t + +checkprops r_1 -s 2121.39 -v 612.41 +checknbshapes r_1 -wire 38 -face 32 -shell 2 -solid 1 -t + +checkprops r_2 -s 2113.85 -v 611.569 +checknbshapes r_2 -wire 32 -face 26 -shell 2 -solid 1 -t + +checkprops r_3 -s 15.9893 -v 0.215264 +checknbshapes r_3 -wire 11 -face 9 -shell 2 -solid 2 -t + +checkprops r_4 -l 24.9725 +checksection r_4 -r 2 + +checkprops r_5 -s 2139.68 -v 612.402 +checknbshapes r_5 -wire 44 -face 36 -shell 5 -solid 4 -t + +checkview -display r_0 -2d -path ${imagedir}/${test_image}.png + diff --git a/tests/bugs/moddata_3/bug162 b/tests/bugs/moddata_3/bug162 index 8638698c34..eff2020590 100644 --- a/tests/bugs/moddata_3/bug162 +++ b/tests/bugs/moddata_3/bug162 @@ -2,9 +2,6 @@ puts "========" puts "OCC162" puts "========" -puts "TODO ?CR33225 Linux: Checking trend failed " -puts "TODO ?CR33225 Linux: Tcl Exception: Memory leak detected" - pload QAcommands pload XDE diff --git a/tests/bugs/xde/bug22898 b/tests/bugs/xde/bug22898 index 39e9697788..a86dbb8a89 100644 --- a/tests/bugs/xde/bug22898 +++ b/tests/bugs/xde/bug22898 @@ -1,5 +1,4 @@ puts "TODO OCC24156 MacOS: Error: unsupported locale specification" -puts "TODO CR33225 Linux: Error: unsupported locale specification" # Test for issue #22898 and other functionality that can be affected by locale. # Just run multiple conversions of the shape to and from different formats and diff --git a/tests/de_mesh/gltf_write/010 b/tests/de_mesh/gltf_write/010 new file mode 100644 index 0000000000..b9b5d1be71 --- /dev/null +++ b/tests/de_mesh/gltf_write/010 @@ -0,0 +1,16 @@ +puts "========" +puts "0032867: Data Exchange - Implement Draco compression for writing glTF" +puts "Test case exporting model into glb (binary glTF) file." +puts "========" + +Close D0 -silent +ReadGltf D0 [locate_data_file bug32867_010.glb] + +set aGltfFile1 "${imagedir}/${casename}_tmp1.glb" +set aGltfFile2 "${imagedir}/${casename}_tmp2.glb" + +WriteGltf D0 "$aGltfFile1" -draco on -mergefaces +WriteGltf D0 "$aGltfFile2" -draco on + +ReadGltf D1 "$aGltfFile1" +ReadGltf D "$aGltfFile2" diff --git a/tests/de_mesh/gltf_write/Diamond b/tests/de_mesh/gltf_write/Diamond new file mode 100644 index 0000000000..f020c335eb --- /dev/null +++ b/tests/de_mesh/gltf_write/Diamond @@ -0,0 +1,16 @@ +puts "========" +puts "0032867: Data Exchange - Implement Draco compression for writing glTF" +puts "Test case exporting model into glb (binary glTF) file." +puts "========" + +Close D0 -silent +ReadGltf D0 [locate_data_file bug32867_Diamond.glb] + +set aGltfFile1 "${imagedir}/${casename}_tmp1.glb" +set aGltfFile2 "${imagedir}/${casename}_tmp2.glb" + +WriteGltf D0 "$aGltfFile1" -draco on +WriteGltf D0 "$aGltfFile2" -draco on -mergefaces + +ReadGltf D1 "$aGltfFile1" +ReadGltf D "$aGltfFile2" diff --git a/tests/de_mesh/gltf_write/as1draco b/tests/de_mesh/gltf_write/as1draco new file mode 100644 index 0000000000..f07a25a3c9 --- /dev/null +++ b/tests/de_mesh/gltf_write/as1draco @@ -0,0 +1,18 @@ +puts "========" +puts "0032867: Data Exchange - Implement Draco compression for writing glTF" +puts "Test case exporting model into glb (binary glTF) file." +puts "========" + +Close D0 -silent +ReadStep D0 [locate_data_file as1-oc-214-mat.stp] +XGetOneShape ss D0 +incmesh ss 1.0 + +set aGltfFile1 "${imagedir}/${casename}_tmp1.glb" +set aGltfFile2 "${imagedir}/${casename}_tmp2.glb" + +WriteGltf D0 "$aGltfFile1" -draco on +WriteGltf D0 "$aGltfFile2" -draco on -mergefaces + +ReadGltf D1 "$aGltfFile1" +ReadGltf D "$aGltfFile2" diff --git a/tests/de_mesh/gltf_write/bearing b/tests/de_mesh/gltf_write/bearing new file mode 100644 index 0000000000..46d8ae6d15 --- /dev/null +++ b/tests/de_mesh/gltf_write/bearing @@ -0,0 +1,16 @@ +puts "========" +puts "0032867: Data Exchange - Implement Draco compression for writing glTF" +puts "Test case exporting model into glb (binary glTF) file." +puts "========" + +restore [locate_data_file bearing.brep] b +incmesh b 0.1 + +set aGltfFile1 "${imagedir}/${casename}_tmp1.glb" +set aGltfFile2 "${imagedir}/${casename}_tmp2.glb" + +WriteGltf b "$aGltfFile1" -draco on +WriteGltf b "$aGltfFile2" -draco on -mergefaces + +ReadGltf D0 "$aGltfFile1" +ReadGltf D "$aGltfFile2" diff --git a/tests/de_mesh/gltf_write/bull b/tests/de_mesh/gltf_write/bull new file mode 100644 index 0000000000..5d7de77f3c --- /dev/null +++ b/tests/de_mesh/gltf_write/bull @@ -0,0 +1,16 @@ +puts "========" +puts "0032867: Data Exchange - Implement Draco compression for writing glTF" +puts "Test case exporting model into glb (binary glTF) file." +puts "========" + +Close D0 -silent +ReadGltf D0 [locate_data_file bug32867_bull.glb] + +set aGltfFile1 "${imagedir}/${casename}_tmp1.glb" +set aGltfFile2 "${imagedir}/${casename}_tmp2.glb" + +WriteGltf D0 "$aGltfFile1" -draco on +WriteGltf D0 "$aGltfFile2" -draco on -mergefaces + +ReadGltf D1 "$aGltfFile1" +ReadGltf D "$aGltfFile2" diff --git a/tests/de_mesh/gltf_write/bull_parallel b/tests/de_mesh/gltf_write/bull_parallel new file mode 100644 index 0000000000..5e3967bd4d --- /dev/null +++ b/tests/de_mesh/gltf_write/bull_parallel @@ -0,0 +1,13 @@ +puts "========" +puts "0032867: Data Exchange - Implement Draco compression for writing glTF" +puts "Test case exporting model into glb (binary glTF) file." +puts "========" + +Close D0 -silent +ReadGltf D0 [locate_data_file bug32867_bull.glb] + +set aGltfFile1 "${imagedir}/${casename}_tmp1.glb" + +WriteGltf D0 "$aGltfFile1" -draco on -parallel + +ReadGltf D "$aGltfFile1" diff --git a/tests/de_mesh/gltf_write/screw b/tests/de_mesh/gltf_write/screw new file mode 100644 index 0000000000..fa7bee51c8 --- /dev/null +++ b/tests/de_mesh/gltf_write/screw @@ -0,0 +1,18 @@ +puts "========" +puts "0032867: Data Exchange - Implement Draco compression for writing glTF" +puts "Test case exporting model into glb (binary glTF) file." +puts "========" + +Close D0 -silent +ReadStep D0 [locate_data_file screw.step] +XGetOneShape ss D0 +incmesh ss 1.0 + +set aGltfFile1 "${imagedir}/${casename}_tmp1.glb" +set aGltfFile2 "${imagedir}/${casename}_tmp2.glb" + +WriteGltf D0 "$aGltfFile1" -draco on -mergefaces +WriteGltf D0 "$aGltfFile2" -draco on + +ReadGltf D1 "$aGltfFile1" +ReadGltf D "$aGltfFile2" \ No newline at end of file diff --git a/tests/de_mesh/gltf_write/soapbox b/tests/de_mesh/gltf_write/soapbox new file mode 100644 index 0000000000..2ec1901886 --- /dev/null +++ b/tests/de_mesh/gltf_write/soapbox @@ -0,0 +1,17 @@ +puts "========" +puts "0032867: Data Exchange - Implement Draco compression for writing glTF" +puts "Test case exporting model into glb (binary glTF) file." +puts "========" + +ReadStep D0 [locate_data_file ec_soapbox-A.stp] +XGetOneShape ss D0 +incmesh ss 1.0 + +set aGltfFile1 "${imagedir}/${casename}_tmp1.glb" +set aGltfFile2 "${imagedir}/${casename}_tmp2.glb" + +WriteGltf D0 "$aGltfFile1" -draco on +WriteGltf D0 "$aGltfFile2" -draco on -mergefaces + +ReadGltf D1 "$aGltfFile1" +ReadGltf D "$aGltfFile2" \ No newline at end of file diff --git a/tests/de_mesh/gltf_write/test b/tests/de_mesh/gltf_write/test new file mode 100644 index 0000000000..708cfe088e --- /dev/null +++ b/tests/de_mesh/gltf_write/test @@ -0,0 +1,20 @@ +puts "========" +puts "0032867: Data Exchange - Implement Draco compression for writing glTF" +puts "Test case exporting model into glb (binary glTF) file." +puts "========" + +Close D0 -silent +ReadGltf D0 [locate_data_file bug32867_test.glb] + +set aGltfFile1 "${imagedir}/${casename}_tmp1.glb" +set aGltfFile2 "${imagedir}/${casename}_tmp2.glb" + +WriteGltf D0 "$aGltfFile1" -draco on +WriteGltf D0 "$aGltfFile2" -draco on -mergefaces + +ReadGltf D1 "$aGltfFile1" +XGetOneShape s1 D1 +checktrinfo s1 -tri 9366 +ReadGltf D "$aGltfFile2" +XGetOneShape s2 D +checktrinfo s2 -tri 9366 diff --git a/tests/heal/checkshape/bug32448_10 b/tests/heal/checkshape/bug32448_10 new file mode 100644 index 0000000000..0984113b23 --- /dev/null +++ b/tests/heal/checkshape/bug32448_10 @@ -0,0 +1,8 @@ +puts "REQUIRED All: Faulty shapes in variables faulty_1 to faulty_6101" +puts "==========" +puts "0032448: Provide exact validating (as option) using GeomLib_CheckCurveOnSurface" +puts "==========" +puts "" + +restore [locate_data_file OCC54.brep] b +checkshape b -exact -parallel diff --git a/tests/hlr/poly_hlr/Plate b/tests/hlr/poly_hlr/Plate index 54e63d22ea..536d8018d5 100644 --- a/tests/hlr/poly_hlr/Plate +++ b/tests/hlr/poly_hlr/Plate @@ -1,5 +1,5 @@ puts "TODO OCC30286 Windows: Error : The length of result shape is 404.004, expected 404.386" -puts "TODO CR33225 Linux: Error : The length of result shape is 404.004, expected 404.386" +puts "TODO OCC30286 Linux: Error : The length of result shape is 404.492, expected 404.386" polyline f1 0 0 0 0 -10 0 100 -10 0 100 0 0 0 0 0 polyline f2 100 0 0 110 0 0 110 100 0 100 100 0 100 0 0 diff --git a/tests/opengl/data/background/skydome b/tests/opengl/data/background/skydome new file mode 100644 index 0000000000..281bad22b6 --- /dev/null +++ b/tests/opengl/data/background/skydome @@ -0,0 +1,43 @@ +puts "============" +puts "0032606: Visualization - add a shader for sky" +puts "============" +puts "" + +set THE_DIM 256 + +pload MODELING VISUALIZATION +psphere s 1 + +vinit View1 -width 768 -height 512 +vcamera -persp -fovy 120 + +chrono t restart +vbackground -skydome -size $THE_DIM -cloud 0.3 -sunDir 1.0 0.5 0.0 -time 10 -fog 0.3 +chrono t show +vaxo +vdump $imagedir/${casename}_day.png + +chrono t restart +vbackground -skydome -size $THE_DIM -cloud 0.3 -sunDir 1.0 -0.5 0.0 -time -10 -fog 0.05 +chrono t show +vaxo +vdump $imagedir/${casename}_night.png + +chrono t restart +vbackground -skydome -size $THE_DIM -cloud 0.15 -sunDir 1.0 0.15 0.0 -time 10 +chrono t show +vaxo +vdump $imagedir/${casename}_sunset.png + +chrono t restart +vbackground -skydome -size $THE_DIM +chrono t show +vaxo +vdump $imagedir/${casename}_defaults.png + +vdisplay -dispMode 1 s +vfit +vaspects s -material SILVER +vrenderparams -shadingModel pbr +vlight headlight -enabled 0 +vdump $imagedir/${casename}_pbr.png diff --git a/tests/opengl/data/general/bug25679 b/tests/opengl/data/general/bug25679 new file mode 100644 index 0000000000..6a267ae414 --- /dev/null +++ b/tests/opengl/data/general/bug25679 @@ -0,0 +1,33 @@ +puts "========" +puts "OCC25679: Visualization, TKOpenGl - View frustum culling clips wrong objects" +puts "========" +puts "" + +pload MODELING VISUALIZATION + +set LINES_IN_ROW 50 + +set aNoCulling $imagedir/${casename}_without.png +set aWithCulling $imagedir/${casename}_with.png +set aDiff $imagedir/${casename}_diff.png + +vinit View1 + +for {set i 0} {$i < $LINES_IN_ROW} {incr i} { + for {set j 0} {$j < $LINES_IN_ROW} {incr j} { + set aLineName "line" + append aLineName [expr $i * $LINES_IN_ROW + $j] + vline $aLineName 0 0 0 1 0 0 + vsetlocation $aLineName [expr $i * 3] [expr $j * 3] 0 + } +} + +vfit + +vrenderparams -frustumculling on +vdump $aWithCulling +vrenderparams -frustumculling off +vdump $aNoCulling + +set aDiffRes [diffimage $aWithCulling $aNoCulling 0.1 0 0 $aDiff] +if {$aDiffRes != 0} { puts "ERROR : Test failed: there is a difference between images rendered with and without frustum culling" } diff --git a/tests/opengl/data/raytrace/bug25201 b/tests/opengl/data/raytrace/bug25201 new file mode 100644 index 0000000000..9896f29319 --- /dev/null +++ b/tests/opengl/data/raytrace/bug25201 @@ -0,0 +1,53 @@ +puts "========" +puts "OCC25201: Visualization - Implementing soft shadows and ambient occlusion in OCCT ray-tracing core" +puts "========" + +pload MODELING VISUALIZATION + +# custom shapes +set aShape1 [locate_data_file occ/Top.brep] +set aShape2 [locate_data_file occ/Bottom.brep] + +# setup 3D viewer content +vinit name=View1 w=512 h=512 +vglinfo + +vvbo 0 +vsetdispmode 1 +vbackground -gradient B4C8FF B4B4B4 -gradientMode VERTICAL +vtextureenv on 4 +restore $aShape1 s1 +restore $aShape2 s2 +vdisplay s1 s2 +vsetmaterial s1 Gold +vsetmaterial s2 Silver +vsetlocation s1 0.0 0.1 0.0 +vlight -change 0 -dir 0.667 -0.667 -0.333 -smoothAngle 6 -intensity 100 +vturnview 3.0 -1.2 -0.1 +vfit + +# activate path tracing +vrenderparams -raytrace +vrenderparams -gi +vrenderparams -rayDepth 12 + +set aModeNum 0 + +vbsdf s1 roughness 6400 + +vfps 200 +vdump $imagedir/${casename}_${aModeNum}.png +incr aModeNum + +vsetmaterial s1 glass +vbsdf s1 absorpcoeff 1.0 + +vfps 200 +vdump $imagedir/${casename}_${aModeNum}.png +incr aModeNum + +vsetmaterial s2 plaster + +vfps 200 +vdump $imagedir/${casename}_${aModeNum}.png +incr aModeNum diff --git a/tests/opengl/data/raytrace/dof_mono b/tests/opengl/data/raytrace/dof_mono new file mode 100644 index 0000000000..b5ea196a06 --- /dev/null +++ b/tests/opengl/data/raytrace/dof_mono @@ -0,0 +1,10 @@ +puts "========" +puts "Ray Tracing - check depth-of-field" +puts "========" + +source $env(CSF_OCCTSamplesPath)/tcl/pathtrace_cube.tcl + +vrenderparams -ray -gi -rayDepth 10 -iss +vrenderparams -aperture 0.1 -focal 2.0 +vfps 200 +vdump ${imagedir}/${casename}.png diff --git a/tests/opengl/data/raytrace/dof_stereo b/tests/opengl/data/raytrace/dof_stereo new file mode 100644 index 0000000000..9e8d46260b --- /dev/null +++ b/tests/opengl/data/raytrace/dof_stereo @@ -0,0 +1,16 @@ +puts "========" +puts "Ray Tracing - check depth-of-field" +puts "========" + +source $env(CSF_OCCTSamplesPath)/tcl/pathtrace_cube.tcl + +vrenderparams -ray -gi -rayDepth 10 -iss +vrenderparams -aperture 0.1 -focal 2.0 + +# activate stereo +vstereo on +vstereo -mode anaglyph +vcamera -iod 0.1 +vfit +vfps 200 +vdump ${imagedir}/${casename}.png -stereo blend diff --git a/tests/opengl/data/raytrace/normal_map b/tests/opengl/data/raytrace/normal_map new file mode 100644 index 0000000000..f9e244866b --- /dev/null +++ b/tests/opengl/data/raytrace/normal_map @@ -0,0 +1,34 @@ +puts "========" +puts "0031275: Visualization, TKOpenGl - handle normal-map texture with Path-Tracing" +puts "========" + +pload XDE OCAF MODELING VISUALIZATION +Close D -silent +ReadGltf D [locate_data_file bug31275_SphereWithNormalMap.glb] + +vclear +vinit v -w 1024 -h 1024 +vbackground -cubemap [locate_data_file Circus_CubeMap_V.png] +vcamera -persp +vlight -clear +vlight -add ambient +XDisplay -dispmode 1 D +vback +vfit + +vrenderparams -ignoreNormalMap on +vrenderparams -ray -gi -rayDepth 10 +vfps 200 +vdump ${imagedir}/${casename}_without_normal_map.png + +vrenderparams -ignoreNormalMap off +vfps 200 +vdump ${imagedir}/${casename}_with_normal_map_back.png + +vfront +vfps 200 +vdump ${imagedir}/${casename}_with_normal_map_front.png + +vlight -add positional -pos 0 0 0 -head 1 -intensity 10 +vfps 200 +vdump ${imagedir}/${casename}_point_light.png diff --git a/tests/opengl/data/raytrace/pbr_spheres b/tests/opengl/data/raytrace/pbr_spheres new file mode 100644 index 0000000000..e2fbf0f72a --- /dev/null +++ b/tests/opengl/data/raytrace/pbr_spheres @@ -0,0 +1,43 @@ +puts "========" +puts "0031225: Visualization, TKOpenGl - support cubemap for environment texture within Ray-Tracing" +puts "Spheres grid with different roughness values" +puts "========" + +cpulimit 600 + +pload MODELING VISUALIZATION +vclear +vclose ALL +source $env(CSF_OCCTSamplesPath)/tcl/vis_pbr_spheres.tcl + +vrenderparams -ray -gi -rayDepth 10 +vcamera -ortho +vfit +vlight -change 1 -intensity 0.0001 +vfps 200 +vdump $::imagedir/${::casename}_ortho0.png + +vlight -change 1 -intensity 0.3 +vfps 200 +vdump $::imagedir/${::casename}_ortho30.png + +vcamera -persp +vfit +vlight -change 1 -intensity 0.0001 +vfps 200 +vdump $::imagedir/${::casename}_persp0.png + +vlight -change 1 -intensity 0.3 +vfps 200 +vdump $::imagedir/${::casename}_persp30.png + +set aCubeMap [locate_data_file Circus_CubeMap_V.png] +vlight -change 1 -intensity 1 +vbackground -cubemap $aCubeMap +vcamera -ortho +vfps 200 +vdump $::imagedir/${::casename}_orthoenv.png + +vcamera -persp +vfps 200 +vdump $::imagedir/${::casename}_perspenv.png diff --git a/tests/opengl/data/raytrace/sample_ball_alpha b/tests/opengl/data/raytrace/sample_ball_alpha new file mode 100644 index 0000000000..dfd7d58b71 --- /dev/null +++ b/tests/opengl/data/raytrace/sample_ball_alpha @@ -0,0 +1,13 @@ +puts "============" +puts "Visualization - Path Tracing, Ball sample" +puts "============" +puts "" + +source $env(CSF_OCCTSamplesPath)/tcl/pathtrace_ball.tcl + +vtexture ball 21 -scale 0.1 0.1 +vsetmaterial ball plaster +vbsdf ball -coatFresnel Constant 0.0 + +vfps 100 +vdump $imagedir/${casename}_zoom.png diff --git a/tests/opengl/data/raytrace/sample_ball_iss b/tests/opengl/data/raytrace/sample_ball_iss new file mode 100644 index 0000000000..32b9d31f1c --- /dev/null +++ b/tests/opengl/data/raytrace/sample_ball_iss @@ -0,0 +1,20 @@ +puts "============" +puts "Visualization - Path Tracing, Ball sample (ISS mode)" +puts "============" +puts "" + +cpulimit 1000 + +source $env(CSF_OCCTSamplesPath)/tcl/pathtrace_ball.tcl + +vrenderparams -iss -nbtiles 64 +vfps 1024 +vdump $imagedir/${casename}_iss_64.png + +vrenderparams -iss -nbtiles 256 +vfps 256 +vdump $imagedir/${casename}_iss_256.png + +vrenderparams -iss -nbtiles 1024 +vfps 64 +vdump $imagedir/${casename}_iss_1024.png diff --git a/tests/opengl/data/raytrace/sample_ball_wood b/tests/opengl/data/raytrace/sample_ball_wood new file mode 100644 index 0000000000..3fd116873d --- /dev/null +++ b/tests/opengl/data/raytrace/sample_ball_wood @@ -0,0 +1,13 @@ +puts "============" +puts "0031135: Visualization, TKOpenGl - texture sRGB -> linear conversion is applied twice by Path Tracer" +puts "============" +puts "" + +source $env(CSF_OCCTSamplesPath)/tcl/pathtrace_ball.tcl + +vtexture ball 11 -scale 0.1 0.1 +vsetmaterial ball plaster +vbsdf ball -coatFresnel Constant 0.0 + +vfps 100 +vdump $imagedir/${casename}_zoom.png diff --git a/tests/opengl/data/raytrace/sample_cube b/tests/opengl/data/raytrace/sample_cube new file mode 100644 index 0000000000..44c965afa9 --- /dev/null +++ b/tests/opengl/data/raytrace/sample_cube @@ -0,0 +1,8 @@ +puts "============" +puts "Visualization - Path Tracing, Cube sample" +puts "============" +puts "" + +source $env(CSF_OCCTSamplesPath)/tcl/pathtrace_cube.tcl +vfps 200 +vdump ${imagedir}/${casename}.png diff --git a/tests/opengl/data/raytrace/sample_cube_clamp b/tests/opengl/data/raytrace/sample_cube_clamp new file mode 100644 index 0000000000..338c7358b0 --- /dev/null +++ b/tests/opengl/data/raytrace/sample_cube_clamp @@ -0,0 +1,22 @@ +puts "============" +puts "Visualization - Path Tracing, Cube sample with radiance clamping" +puts "============" +puts "" + +source $env(CSF_OCCTSamplesPath)/tcl/pathtrace_cube.tcl + +vrenderparams -maxrad 1.0 +vfps 100 +vdump $imagedir/${casename}_1.png + +vrenderparams -maxrad 2.0 +vfps 100 +vdump $imagedir/${casename}_2.png + +vrenderparams -maxrad 10.0 +vfps 100 +vdump $imagedir/${casename}_10.png + +vrenderparams -maxrad 100.0 +vfps 100 +vdump $imagedir/${casename}_100.png diff --git a/tests/opengl/data/raytrace/sample_cube_twosided b/tests/opengl/data/raytrace/sample_cube_twosided new file mode 100644 index 0000000000..ac872ad495 --- /dev/null +++ b/tests/opengl/data/raytrace/sample_cube_twosided @@ -0,0 +1,19 @@ +puts "============" +puts "Visualization - Path Tracing, Cube sample" +puts "============" +puts "" + +source $env(CSF_OCCTSamplesPath)/tcl/pathtrace_cube.tcl + +vaxo +vfit +vfps 100 + +# Dump image produced with one-sided BSDFs +vdump $imagedir/${casename}_onesided.png + +vrenderparams -twoside +vfps 100 + +# Dump image produced with two-sided BSDFs +vdump $imagedir/${casename}_twosided.png diff --git a/tests/opengl/data/raytrace/sample_materials b/tests/opengl/data/raytrace/sample_materials new file mode 100644 index 0000000000..95e25ea36c --- /dev/null +++ b/tests/opengl/data/raytrace/sample_materials @@ -0,0 +1,7 @@ +puts "============" +puts "Visualization - Path Tracing, Materials sample" +puts "============" +puts "" + +source $env(CSF_OCCTSamplesPath)/tcl/pathtrace_materials.tcl +vdump $imagedir/${casename}_materials.png diff --git a/tests/opengl/data/raytrace/tone_mapping b/tests/opengl/data/raytrace/tone_mapping new file mode 100644 index 0000000000..90bd049577 --- /dev/null +++ b/tests/opengl/data/raytrace/tone_mapping @@ -0,0 +1,14 @@ +puts "========" +puts "Ray Tracing - check tone mapping" +puts "========" + +source $env(CSF_OCCTSamplesPath)/tcl/pathtrace_cube.tcl + +vrenderparams -ray -gi -rayDepth 10 -iss + +vrenderparams -tonemapping filmic +vrenderparams -exposure -1.0 +vrenderparams -whitepoint 7.0 +vfit +vfps 200 +vdump ${imagedir}/${casename}.png diff --git a/tests/opengl/data/shading/pbr_spheres b/tests/opengl/data/shading/pbr_spheres new file mode 100644 index 0000000000..e3f3628304 --- /dev/null +++ b/tests/opengl/data/shading/pbr_spheres @@ -0,0 +1,34 @@ +puts "========" +puts "0030700: Visualization, TKOpenGl - support PBR Metallic-Roughness shading model" +puts "Spheres grid with different roughness values" +puts "========" + +pload MODELING VISUALIZATION + +# PBR doesn't work with Compatible Profile on macOS +if { $::tcl_platform(os) == "Darwin" } { vcaps -core } + +vclear +vclose ALL +source $env(CSF_OCCTSamplesPath)/tcl/vis_pbr_spheres.tcl + +vcamera -ortho +vfit +vlight -change 1 -intensity 0.0001 +vdump $::imagedir/${::casename}_ortho0.png +vlight -change 1 -intensity 0.3 +vdump $::imagedir/${::casename}_ortho30.png +vcamera -persp +vfit +vlight -change 1 -intensity 0.0001 +vdump $::imagedir/${::casename}_persp0.png +vlight -change 1 -intensity 0.3 +vdump $::imagedir/${::casename}_persp30.png + +set aCubeMap [locate_data_file Circus_CubeMap_V.png] +vlight -change 1 -intensity 1 +vbackground -cubemap $aCubeMap +vcamera -ortho +vdump $::imagedir/${::casename}_orthoenv.png +vcamera -persp +vdump $::imagedir/${::casename}_perspenv.png diff --git a/tests/opengl/data/shading/shading_models b/tests/opengl/data/shading/shading_models new file mode 100644 index 0000000000..76306ae990 --- /dev/null +++ b/tests/opengl/data/shading/shading_models @@ -0,0 +1,68 @@ +puts "========" +puts "Test various Shading Models assigned per-object" +puts "========" + +pload MODELING VISUALIZATION + +# PBR doesn't work with Compatible Profile on macOS +#if { $::tcl_platform(os) == "Darwin" } { vcaps -core } + +# setup viewer +vclear +vclose ALL +vinit View1 -width 912 -height 912 + +# define spheres with a rough triangulation to easily distinguish Shading Models +psphere p0 10 +copytranslate p11 p0 0 0 0 +copytranslate p12 p0 40 0 0 +copytranslate p21 p0 0 20 0 +copytranslate p22 p0 40 20 0 +copytranslate p31 p0 0 40 0 +copytranslate p32 p0 40 40 0 +compound p11 p12 p21 p22 p31 p32 ss +incmesh ss 1 +vdefaults -autoTriang 0 + +# display objects +vdisplay -dispMode 1 p11 p12 p21 p22 p31 p32 +vdrawparray p41 triangles v 0 55 0 v 0 75 0 v 20 55 0 v 0 55 0 v 0 75 0 v 0 55 20 v 0 55 0 v 0 55 20 v 20 55 0 v 0 75 0 v 0 55 20 v 20 55 0 +vdrawparray p42 triangles v 40 55 0 v 40 75 0 v 60 55 0 v 40 55 0 v 40 75 0 v 40 55 20 v 40 55 0 v 40 55 20 v 60 55 0 v 40 75 0 v 40 55 20 v 60 55 0 +vtop +vrotate -0.9 0.1 0 +vfit + +vcaps -ffp 1 +vdump $::imagedir/${::casename}_defaults_ffp.png + +vcaps -ffp 0 +vdump $::imagedir/${::casename}_defaults.png + +# customize shading models +vaspects p11 -setShadingModel VERTEX +vdrawtext t11 Graphic3d_TOSM_VERTEX -pos 10 5 10 -color RED -aspect BOLD +vaspects p12 -setShadingModel FRAGMENT +vdrawtext t12 Graphic3d_TOSM_FRAGMENT -pos 50 5 10 -color RED -aspect BOLD + +vaspects p21 -setShadingModel PBR +vdrawtext t21 Graphic3d_TOSM_PBR -pos 10 25 10 -color RED -aspect BOLD +vaspects p22 -setShadingModel PBR_FACET +vdrawtext t22 Graphic3d_TOSM_PBR_FACET -pos 50 25 10 -color RED -aspect BOLD + +vaspects p31 -setShadingModel UNLIT +vdrawtext t31 Graphic3d_TOSM_UNLIT -pos 10 45 10 -color RED -aspect BOLD +vaspects p32 -setShadingModel FACET +vdrawtext t32 Graphic3d_TOSM_FACET -pos 50 45 10 -color RED -aspect BOLD +vaspects p41 -setShadingModel VERTEX +vdrawtext t41 Graphic3d_TOSM_VERTEX -pos 10 65 10 -color RED -aspect BOLD +vaspects p42 -setShadingModel FACET +vdrawtext t42 Graphic3d_TOSM_FACET -pos 50 65 10 -color RED -aspect BOLD +vdisplay -topmost t11 t12 t21 t22 t31 t32 t41 t42 + +vcaps -ffp 1 +vdump $::imagedir/${::casename}_ffp.png + +vcaps -ffp 0 +vlight -change 1 -intensity 0.1 +vrenderparams -shadingModel pbr +vdump $::imagedir/${::casename}.png diff --git a/tests/opengl/data/textures/cubemap_dds b/tests/opengl/data/textures/cubemap_dds new file mode 100644 index 0000000000..60c727298e --- /dev/null +++ b/tests/opengl/data/textures/cubemap_dds @@ -0,0 +1,36 @@ +puts "============" +puts "0031478: Visualization, TKOpenGl - allow uploading Cubemap in compressed DDS format when supported by GPU" +puts "============" +puts "" + +pload MODELING VISUALIZATION + +if { $::tcl_platform(os) == "Darwin" } { + # PBR doesn't work with Compatible Profile on macOS + vcaps -core +} +if { [vdriver -default] == "TKOpenGles" } { + puts "Skipping test case 'DDS texture': OpenGL ES does not support sRGB S3TC_DXT1 texture format" + return +} + +set aCubeMapPNG [locate_data_file cubemap_labels.png] +set aCubeMapDDS [locate_data_file cubemap_labels.dds] + +box b 1 2 3 +psphere s 1 + +vclear +vinit View1 -w 512 -h 512 +vcamera -fovy 100 +vzbufftrihedron +#vdisplay -dispMode 1 b +vdisplay -dispMode 1 s +vfit + +vrenderparams -shadingModel pbr +vbackground -cubemap $aCubeMapPNG -invertedz +vdump $imagedir/${casename}_png.png + +vbackground -cubemap $aCubeMapDDS -invertedz +vdump $imagedir/${casename}_dds.png diff --git a/tests/opengl/data/textures/cubemap_ibl b/tests/opengl/data/textures/cubemap_ibl new file mode 100644 index 0000000000..0f283af232 --- /dev/null +++ b/tests/opengl/data/textures/cubemap_ibl @@ -0,0 +1,25 @@ +puts "============" +puts "0032590: Visualization, V3d_View - improve API for setting Image Based Lighting" +puts "============" +puts "" + +set aCubeMapLabs [locate_data_file cubemap_labels.png] + +pload MODELING VISUALIZATION + +# PBR doesn't work with Compatible Profile on macOS +if { $::tcl_platform(os) == "Darwin" } { vcaps -core } + +vclear +vclose ALL +source $env(CSF_OCCTSamplesPath)/tcl/vis_pbr_spheres.tcl +vcamera -fovy 100 + +vbackground -cubemap $aCubeMapLabs -pbrEnv noIBL +vdump $imagedir/${casename}_1.png + +vbackground -pbrEnv IBL +vdump $imagedir/${casename}_2.png + +vbackground BLACK -pbrEnv KEEP +vdump $imagedir/${casename}_3.png diff --git a/tests/opengl/data/textures/pbr_tangent_normal b/tests/opengl/data/textures/pbr_tangent_normal new file mode 100644 index 0000000000..e371c6cc30 --- /dev/null +++ b/tests/opengl/data/textures/pbr_tangent_normal @@ -0,0 +1,31 @@ +puts "========" +puts "0031302: Visualization, TKOpenGl - wrong tangent space calculation for normal maps" +puts "Test for tangent space orientation." +puts "========" + +pload XDE OCAF MODELING VISUALIZATION + +# PBR doesn't work with Compatible Profile on macOS +if { $::tcl_platform(os) == "Darwin" } { vcaps -core } + +vclear +vclose ALL + +vinit v -w 1024 -h 1024 +vcamera -persp +vbackground -cubemap [locate_data_file Circus_CubeMap_V.png] +vrenderparams -shadingModel PBR + +vlight -clear +vlight -add ambient + +Close D -silent +ReadGltf D [locate_data_file bug31302_NormalTangentTest.gltf] +XDisplay -dispmode 1 D + +vfront +vfit +vdump $imagedir/${casename}_front.png + +vback +vdump $imagedir/${casename}_back.png diff --git a/tests/opengl/data/transparency/ior b/tests/opengl/data/transparency/ior new file mode 100644 index 0000000000..1dd6f66da8 --- /dev/null +++ b/tests/opengl/data/transparency/ior @@ -0,0 +1,51 @@ +puts "========" +puts "0031284: Visualization - XCAFDoc_VisMaterialPBR lacks Index of Refraction" +puts "========" + +pload MODELING XDE OCAF VISUALIZATION +if { $::tcl_platform(os) == "Darwin" } { vcaps -core } + +box b 0.5 1.0 -0.5 3 1 1 +psphere s1 0.5 +psphere s2 0.5 +psphere s3 0.5 +ttranslate s1 1 0 0 +ttranslate s2 2 0 0 +ttranslate s3 3 0 0 +Close D -silent +XNewDoc D +set l0 [XAddShape D b 0] +set l1 [XAddShape D s1 0] +set l2 [XAddShape D s2 0] +set l3 [XAddShape D s3 0] +XAddVisMaterial D m1 -baseColor GREEN -refractionIndex 1.0 -transparency 0.5 -metallic 0 -roughness 0 +XAddVisMaterial D m2 -baseColor GREEN -refractionIndex 1.3 -transparency 0.5 -metallic 0 -roughness 0 +XAddVisMaterial D m3 -baseColor GREEN -refractionIndex 2.5 -transparency 0.5 -metallic 0 -roughness 0 +XSetVisMaterial D $l1 m1 +XSetVisMaterial D $l2 m2 +XSetVisMaterial D $l3 m3 + +vclear +vinit View1 +vcamera -persp +vfront +XDisplay -dispMode 1 D +vfit +vviewparams -scale 245 -proj -0 -0.75 -0.66 -up 0 -0.66 0.75 -at 2.0 0.84 0.04 +vlight -change 0 -intensity 2.5 +vlight -change 1 -intensity 1.0 +set aCubeMap [locate_data_file Circus_CubeMap_V.png] +vbackground -cubemap $aCubeMap + +vrenderparams -shadingModel PBR -raster +vdump $imagedir/${casename}_pbr.png + +if { ![string match "OpenGL ES 2.0*" [vglinfo VERSION]] && ![string match "OpenGL ES 3.0*" [vglinfo VERSION]] } { + vrenderparams -raytrace -gi 0 -reflections 1 -rayDepth 10 + vfps 200 + vdump $imagedir/${casename}_rt.png + + vrenderparams -raytrace -gi 1 + vfps 200 + vdump $imagedir/${casename}_pt.png +} diff --git a/tests/perf/fclasses/strtod b/tests/perf/fclasses/strtod index 71f52cb4cc..50a7369a71 100644 --- a/tests/perf/fclasses/strtod +++ b/tests/perf/fclasses/strtod @@ -3,8 +3,6 @@ puts "Testing performance of Strtod() vs. standard strtod()" puts "=================================================================" puts "" -puts "TODO ?CR33225 Linux: is expected to be at least " - pload QAcommands # Check that performance of Strtod() and Atof() is at least twice better diff --git a/tests/tools/begin b/tests/tools/begin new file mode 100644 index 0000000000..562c9109d9 --- /dev/null +++ b/tests/tools/begin @@ -0,0 +1,3 @@ +if { [array get Draw_Groups "TOOLS Check commands"] == "" } { + pload TOOLS +} diff --git a/tests/tools/dfbrowser/A1 b/tests/tools/dfbrowser/A1 new file mode 100644 index 0000000000..0c636d3e33 --- /dev/null +++ b/tests/tools/dfbrowser/A1 @@ -0,0 +1,12 @@ +pload DCAF +pload INSPECTOR + +NewDocument Doc BinOcaf + +set aSetAttr1 100 +set aLabel 0:2 +SetInteger Doc ${aLabel} ${aSetAttr1} + +tinspector -plugins dfbrowser +tinspector -update + diff --git a/tests/tools/dfbrowser/A2 b/tests/tools/dfbrowser/A2 new file mode 100644 index 0000000000..e138425ac3 --- /dev/null +++ b/tests/tools/dfbrowser/A2 @@ -0,0 +1,23 @@ +pload DCAF VISUALIZATION INSPECTOR + +NewDocument D BinOcaf +tinspector -plugins dfbrowser + +cpulimit 300 +UndoLimit D 100 + +NewCommand D + +NewCommand D + +set B2 [AddObject D] +set F2 [AddFunction D $B2 Box] +BoxDX D $B2 190 +BoxDY D $B2 290 +BoxDZ D $B2 390 + +InitLogBook D +AddDriver D Box Attach Cyl +ComputeFun D $F2 + +tinspector -update diff --git a/tests/tools/dfbrowser/A3 b/tests/tools/dfbrowser/A3 new file mode 100644 index 0000000000..8e83cd5b23 --- /dev/null +++ b/tests/tools/dfbrowser/A3 @@ -0,0 +1,2 @@ +pload INSPECTOR +tinspector -plugins dfbrowser -open $env(CSF_OCCTDataPath)/step/screw.step -select 0:1:1:1 diff --git a/tests/tools/dfbrowser/A4 b/tests/tools/dfbrowser/A4 new file mode 100644 index 0000000000..a761268241 --- /dev/null +++ b/tests/tools/dfbrowser/A4 @@ -0,0 +1,150 @@ +pload DCAF INSPECTOR TOPTEST + +# Create the first document and set UndoLimit +NewDocument Doc1 BinOcaf +UndoLimit Doc1 100 + +# Add an attribute to a data framework +set aSetAttr1 100 +set aLabel 0:2 +SetInteger Doc1 ${aLabel} ${aSetAttr1} + + +# Create the second document +set test_name "OCC26961" +set test_int 123 +set test_real 123.456e-7 +set test_int_arr {10 20} +set test_real_arr {1.1 3.14 5.4e18} +set test_extstr_arr {"sample string 1" "string 2"} +set test_bool_arr {0 1} +set test_ref_arr {"0:1:2:3:2" "0:1:2:3:1"} +set test_byte_arr {15 25} +set test_map {1 5 2 10} +set test_map_sorted {1 2 5 10} +set test_named_ints {i1 1 i2 2} +set test_named_reals {r1 1.1 r2 2.2} +set test_named_strings {s1 string1 s2 string2 s3 string3_string_extended s4 string4_double_extended s5 string5} +set test_named_bytes {b1 65 b2 66} +set test_ref "0:1:1" +set test_guid "00000000-0000-0000-2222-000000000000" +set test_comment "Sample document containing various attributes" +set test_string "Sample string" +set test_expr "2*pi*r" +set test_var1 "0:1:2:3:2" +set test_var2 "0:1:2:3:1" +set test_point "111 222 333" +set test_axisPos "10 10 30" +set test_axisDir "11 22 33" +set test_plane "15 25 35" +set test_boxXYZ "10 20 30" +set test_boxDX 100 +set test_boxDY 200 +set test_boxDZ 300 +set test_geom_t "cir" +set test_failure 1 +set test_driver "G" +set test_driver_id "2a96b604-ec8b-11d0-bee7-080009dc3333" +set test_transp 0.5 +set test_color AQUAMARINE4 +set test_material 22 +set test_positionX 100 +set test_positionY 200 +set test_positionZ 300 + +puts "Creating document" +NewDocument D BinOcaf + +# Simple values +SetInteger D 0:1:1 $test_int +SetReal D 0:1:1 $test_real +SetName D 0:1:1 $test_name +SetComment D 0:1:1 $test_comment +SetAsciiString D 0:1:1 $test_string + +# TagSource +SetTagger D 0:1:2 + +# Reference +SetReference D 0:1:3 $test_ref + +# Directory +#NewDirectory D 0:1:2:1 + +# UAttribute +#SetUAttribute D 0:1:2:2 $test_guid + +# Variable +SetVariable D $test_var2 0 mm +SetVariable D $test_var1 1 "" + +# Relation +SetRelation D 0:1:2:3 "2*pi*r" $test_var1 $test_var2 + +# TreeNode +SetNode D 0:1:2:4 + +# Arrays +eval SetIntArray D 0:1:1 1 1 2 $test_int_arr +eval SetRealArray D 0:1:1 1 1 3 $test_real_arr +eval SetExtStringArray D 0:1:1 1 1 2 $test_extstr_arr +eval SetRefArray D 0:1:1 1 2 $test_ref_arr +eval SetByteArray D 0:1:1 1 1 2 $test_byte_arr + +# Lists +eval SetIntegerList D 0:1:1 $test_int_arr +eval SetRealList D 0:1:1 $test_real_arr +eval SetExtStringList D 0:1:1 $test_extstr_arr +eval SetBooleanList D 0:1:1 $test_bool_arr +eval SetReferenceList D 0:1:1 $test_ref_arr + +# IntPackedMap +eval SetIntPackedMap D 0:1:1 1 $test_map + +# NamedData +eval SetNDataIntegers D 0:1:4 2 $test_named_ints +eval SetNDataReals D 0:1:4 2 $test_named_reals +eval SetNDataStrings D 0:1:4 5 $test_named_strings +eval SetNDataBytes D 0:1:4 2 $test_named_bytes +eval SetNDataIntArrays D 0:1:4 ia 2 $test_int_arr +eval SetNDataRealArrays D 0:1:4 ra 3 $test_real_arr + +# NamedShape +eval box Box $test_boxXYZ $test_boxDX $test_boxDY $test_boxDZ +SetShape D 0:1:6 Box + +# Point +eval point Point $test_point +SetPoint D 0:1:5:1 Point + +# Axis +eval line Axis $test_axisPos $test_axisDir +SetAxis D 0:1:5:2 Axis + +# Plane +eval plane Plane $test_plane +SetPlane D 0:1:5:3 Plane + +# Geometry +SetGeometry D 0:1:6 $test_geom_t + +# Constraint +SetConstraint D 0:1:1 equal 0:1:6 + +# PatternStd +SetPattern D 0:1:1 5 0:1:6 + +# Function +SetFunction D 0:1:1 $test_guid $test_failure + +# AISPresentation +AISInitViewer D +AISSet D 0:1:1 $test_driver +AISTransparency D 0:1:1 $test_transp +AISColor D 0:1:1 $test_color +AISMaterial D 0:1:1 $test_material + +# Position +SetPosition D 0:1:1 $test_positionX $test_positionY $test_positionZ + +tinspector -plugins dfbrowser diff --git a/tests/tools/dfbrowser/A5 b/tests/tools/dfbrowser/A5 new file mode 100644 index 0000000000..6fdadd115b --- /dev/null +++ b/tests/tools/dfbrowser/A5 @@ -0,0 +1,78 @@ +pload TOPTEST +pload VISUALIZATION +pload XDE +pload QAcommands +pload DCAF + +set Test "TNaming_Builder test" +set IsDone 1 +set TestError "" + +puts "Creating document" +NewDocument D MDTV-Standard +set TestLab 0:1 + +#################### PRIMITIVE EVOLUTION #################### +box b 100 200 300 + +explode b E +if {[catch {BuildNamedShape D $TestLab:1 PRIMITIVE b}] == 1} { + set IsDone 0 + set TestError "$TestError # Can't build solid as primitive" +} +if {[catch {BuildNamedShape D [set TestLab]:1:1 PRIMITIVE b_1}] == 1} { + set IsDone 0 + set TestError "$TestError # Can't build edge as alone primitive" +} +if {[catch {BuildNamedShape D [set TestLab]:1:1 PRIMITIVE b_1 b_2 b_3}] == 1} { + set IsDone 0 + set TestError "$TestError # Can't build several edges as primitive over the old one" +} +if {[catch {BuildNamedShape D [set TestLab]:1:2 PRIMITIVE b_4 b_5 b_6}] == 1} { + set IsDone 0 + set TestError "$TestError # Can't build several edges as primitive" +} + + +#################### GENERATED EVOLUTION #################### +box b2 200 300 400 +explode b2 F +if {[catch {BuildNamedShape D $TestLab:2 GENERATED b b2}] == 1} { + set IsDone 0 + set TestError "$TestError # Can't build solid as generation" +} +if {[catch {BuildNamedShape D [set TestLab]:2:1 GENERATED b_1 b2_1}] == 1} { + set IsDone 0 + set TestError "$TestError # Can't build face as alone generation" +} +if {[catch {BuildNamedShape D [set TestLab]:2:2 GENERATED b_2 b2_2 b_2 b2_3 b_3 b2_4}] == 1} { + set IsDone 0 + set TestError "$TestError # Can't build face as generation n:m" +} +if {[catch {BuildNamedShape D [set TestLab]:2:1 GENERATED b_3 b2_1 b_3 b2_3 b_4 b2_4}] == 1} { + set IsDone 0 + set TestError "$TestError # Can't build face as generation n:m to the exists named shape" +} + +#################### MODIFY EVOLUTION #################### +box b3 300 400 500 +explode b3 F +if {[catch {BuildNamedShape D $TestLab:3 MODIFY b2 b3}] == 1} { + set IsDone 0 + set TestError "$TestError # Can't build solid as modification" +} +if {[catch {BuildNamedShape D [set TestLab]:3:1 MODIFY b2_1 b3_1}] == 1} { + set IsDone 0 + set TestError "$TestError # Can't build face as alone modification" +} +if {[catch {BuildNamedShape D [set TestLab]:3:2 MODIFY b2_5 b3_2 b2_2 b3_3 b2_3 b3_4}] == 1} { + set IsDone 0 + set TestError "$TestError # Can't build face as modification n:m" +} +if {[catch {BuildNamedShape D [set TestLab]:3:1 MODIFY b2_3 b3_1 b_3 b3_3 b2_4 b3_4}] == 1} { + set IsDone 0 + set TestError "$TestError # Can't build face as modification n:m to the exists named shape" +} + +pload INSPECTOR +tinspector -select 0:1:3:2 TNaming_NamedShape diff --git a/tests/tools/dfbrowser/A6 b/tests/tools/dfbrowser/A6 new file mode 100644 index 0000000000..7395f50e98 --- /dev/null +++ b/tests/tools/dfbrowser/A6 @@ -0,0 +1,76 @@ +pload DCAF + +chrono qat start +# Create a new document and set UndoLimit +NewDocument D BinOcaf + +#NewDocument D +cpulimit 300 +UndoLimit D 100 + +# Open a transaction +NewCommand D + +puts "caf005-I3" +set QA_DUP 0 + +# Add an attribute to a data framework +set aLabel_Root 0:2 +set aName_Root Label_1 +Label D ${aLabel_Root} +SetName D ${aLabel_Root} ${aName_Root} + +set aName1 Label_1_1 +###set aChild1 [NewChild D ${aLabel_Root}] +set aChild1 0:2:1 +Label D ${aChild1} +SetName D ${aChild1} ${aName1} + +set aName2 Label_1_2 +###set aChild2 [NewChild D ${aLabel_Root}] +set aChild2 0:2:2 +Label D ${aChild2} +SetName D ${aChild2} ${aName2} + +set aName3 Label_1_1_1 +###set aChild3 [NewChild D ${aLabel_Root}] +set aChild3 0:2:3 +Label D ${aChild3} +SetName D ${aChild3} ${aName3} + +set aName4 Label_1_1_2 +###set aChild4 [NewChild D ${aLabel_Root}] +set aChild4 0:2:4 +Label D ${aChild4} +SetName D ${aChild4} ${aName4} + +set aName5 Label_1_1_3 +###set aChild5 [NewChild D ${aLabel_Root}] +set aChild5 0:2:5 +Label D ${aChild5} +SetName D ${aChild5} ${aName5} + +set aName6 Label_1_2_1 +###set aChild6 [NewChild D ${aLabel_Root}] +set aChild6 0:2:6 +Label D ${aChild6} +SetName D ${aChild6} ${aName6} + +set aName7 Label_1_2_2 +###set aChild7 [NewChild D ${aLabel_Root}] +set aChild7 0:2:7 +Label D ${aChild7} +SetName D ${aChild7} ${aName7} + +SetNode D ${aLabel_Root} +AppendNode D ${aLabel_Root} ${aChild1} +AppendNode D ${aLabel_Root} ${aChild2} +AppendNode D ${aChild1} ${aChild3} +AppendNode D ${aChild1} ${aChild4} +AppendNode D ${aChild1} ${aChild5} +AppendNode D ${aChild2} ${aChild6} +AppendNode D ${aChild2} ${aChild7} + +pload INSPECTOR + +tinspector -plugins dfbrowser -select 0:2:6 TDataStd_TreeNode diff --git a/tests/tools/dfbrowser/A7 b/tests/tools/dfbrowser/A7 new file mode 100644 index 0000000000..1e835f2e63 --- /dev/null +++ b/tests/tools/dfbrowser/A7 @@ -0,0 +1,6 @@ +puts "========" +puts "0029743: Samples - Inspector tool - crash by selecting TNaming_UsedShapes tree item" +puts "========" + +pload INSPECTOR +tinspector -plugins dfbrowser -open [locate_data_file bug29743.cbf] -select 0 TNaming_UsedShapes diff --git a/tests/tools/dfbrowser/A8 b/tests/tools/dfbrowser/A8 new file mode 100644 index 0000000000..c6c2e6d93f --- /dev/null +++ b/tests/tools/dfbrowser/A8 @@ -0,0 +1,7 @@ +puts "========" +puts "0029733: TInspector can't open several cbf files" +puts "========" + +pload INSPECTOR +tinspector -plugins dfbrowser -open [locate_data_file bug29743.cbf] +tinspector -open [locate_data_file bug29733.cbf] diff --git a/tests/tools/dfbrowser/A9 b/tests/tools/dfbrowser/A9 new file mode 100644 index 0000000000..701be36d29 --- /dev/null +++ b/tests/tools/dfbrowser/A9 @@ -0,0 +1,12 @@ +puts "========" +puts "0029841: Test cases from tools/dfbrowser periodically hang on Windows platform" +puts "========" + +pload INSPECTOR + +tinspector -plugins dfbrowser + +for { set i 1 } { ${i} <= 10 } { incr i } { + tinspector -open [locate_data_file bug29743.cbf] -select 0 TNaming_UsedShapes + tinspector -open [locate_data_file bug29733.cbf] -select 0 TNaming_UsedShapes +} diff --git a/tests/tools/end b/tests/tools/end new file mode 100644 index 0000000000..57901e2abe --- /dev/null +++ b/tests/tools/end @@ -0,0 +1,2 @@ +# to end a test script +puts "TEST COMPLETED" diff --git a/tests/tools/grids.list b/tests/tools/grids.list new file mode 100644 index 0000000000..c8ade14958 --- /dev/null +++ b/tests/tools/grids.list @@ -0,0 +1,3 @@ +001 dfbrowser +001 shapeview +001 vinspector diff --git a/tests/tools/parse.rules b/tests/tools/parse.rules new file mode 100644 index 0000000000..396c2d9c2e --- /dev/null +++ b/tests/tools/parse.rules @@ -0,0 +1,3 @@ +SKIPPED /Draw_Failure: Could not open: TKToolsDraw/ OCCT built without Qt tools +FAILED /\bFaulty\b/ bad shape +OK /Relative error of mass computation/ message from vprops \ No newline at end of file diff --git a/tests/tools/shapeview/A1 b/tests/tools/shapeview/A1 new file mode 100644 index 0000000000..5093256077 --- /dev/null +++ b/tests/tools/shapeview/A1 @@ -0,0 +1,11 @@ +pload ALL INSPECTOR + +tinspector -plugins shapeview + +box b1 200 100 120 +tinspector -shape b1 + +box b2 100 200 220 100 120 100 +tinspector -shape b2 + +tinspector -activate shapeview -select b1 diff --git a/tests/tools/shapeview/A2 b/tests/tools/shapeview/A2 new file mode 100644 index 0000000000..0e78f445b9 --- /dev/null +++ b/tests/tools/shapeview/A2 @@ -0,0 +1,5 @@ +pload ALL INSPECTOR + +tinspector -plugins shapeview + +tinspector -open $env(CSF_OCCTDataPath)/occ/solid.brep shapeview diff --git a/tests/tools/vinspector/A1 b/tests/tools/vinspector/A1 new file mode 100644 index 0000000000..abc11f94f7 --- /dev/null +++ b/tests/tools/vinspector/A1 @@ -0,0 +1,18 @@ +pload ALL INSPECTOR + +tinspector -plugins vinspector + +vinit + +box box_1 0 0 200 100 100 100 +vdisplay box_1 +vselmode box_1 1 1 +vselmode box_1 3 1 + +box box_2 180 120 200 150 150 150 +vdisplay box_2 + +vfit + +tinspector -update -select box_1 + diff --git a/tests/tools/vinspector/A2 b/tests/tools/vinspector/A2 new file mode 100644 index 0000000000..54c60660ff --- /dev/null +++ b/tests/tools/vinspector/A2 @@ -0,0 +1,9 @@ +pload ALL INSPECTOR + +tinspector -plugins vinspector + +vinit + +tinspector -open $env(CSF_OCCTDataPath)/occ/solid.brep +vfit + diff --git a/tests/v3d/bugs/bug25760_2 b/tests/v3d/bugs/bug25760_2 new file mode 100644 index 0000000000..39f34661fe --- /dev/null +++ b/tests/v3d/bugs/bug25760_2 @@ -0,0 +1,118 @@ +puts "============" +puts "CR25760: Visualization - precision factor added to ZNear, ZFar in method ZFitAll() of Graphic3d_Camera is not enough" +puts "============" +puts "" + +pload MODELING VISUALIZATION +vinit View1 w=409 h=409 +vclear + +vclear +vautozfit 0 + +proc test3d {dstart} { + + set proj1 { 0.47243081629544409 -0.39335870920278265 -0.78871924644244684} + set proj2 {-0.31828216872577886 0.17649241059446089 -0.93142197208020105} + + for {set i 1} {$i <= 3} {incr i} { + for {set r 1} {$r <= 3} {incr r} { + + set x [expr pow(100, $i)] + set y [expr pow( 70, $i)] + set z [expr pow( 50, $i)] + set dist [expr pow(100, $r)] + + vclear + vertex v0 $x $y $z + vertex v1 [expr "$x + ($dist * [lindex $proj1 0])"] [expr "$y + ($dist * [lindex $proj1 1])"] [expr "$z + ($dist * [lindex $proj1 2])"] + vertex v2 [expr "$x + ($dist * [lindex $proj2 0])"] [expr "$y + ($dist * [lindex $proj2 1])"] [expr "$z + ($dist * [lindex $proj2 2])"] + + for {set d [expr $dstart * {max ($x,$y,$z,$dist)}]} {$d <= 1e7} {set d [expr "abs ($d) * 1.2E5"]} { + for {set p 1} {$p <= 2} {incr p} { + set proj [set proj$p] + + vremove -all + vdisplay v0 + vdisplay v$p + vviewparams -eye [expr "$x - ($d * [lindex $proj 0])"] [expr "$y - ($d * [lindex $proj 1])"] [expr "$z - ($d * [lindex $proj 2])"] -at $x $y $z + vzfit + + vremove -all + vdisplay v0 + if { [checkcolor 204 204 1 1 0] != 1 } { + puts "Error: 3D projection test failed with the following parameters:" + vviewparams + vzrange + puts "" + puts "v1 x: $x" + puts "v1 y: $y" + puts "v1 z: $z" + puts "v2 x: [expr $x + ($dist * [lindex $proj 0])]" + puts "v2 y: [expr $y + ($dist * [lindex $proj 1])]" + puts "v2 z: [expr $z + ($dist * [lindex $proj 2])]" + puts "" + return 0 + } + + vremove -all + vdisplay v$p + if { [checkcolor 204 204 1 1 0] != 1 } { + puts "Error: 3D projection test failed with the following parameters:" + vviewparams + vzrange + puts "" + puts "v1 x: $x" + puts "v1 y: $y" + puts "v1 z: $z" + puts "v2 x: [expr $x + ($dist * [lindex $proj 0])]" + puts "v2 y: [expr $y + ($dist * [lindex $proj 1])]" + puts "v2 z: [expr $z + ($dist * [lindex $proj 2])]" + puts "" + return 0 + } + } + } + } + } + return 1 +} + +set tcl_precision 16 + +#################################################################### +# Test orthographic camera without frustum culling. # +# Test camera with scale 1E-8 to avoid jittering. # +#################################################################### +vcamera -ortho +vviewparams -scale 1e-8 +vrenderparams -frustumculling off +if { [test3d 1e-7] != 1 } { puts "Error: 3D projection test failed: camera is orthographic, view frustum culling is OFF" } + +#################################################################### +# Test orthographic camera with frustum culling. # +# Test camera with scale 1E-8 to avoid jittering. # +#################################################################### +vcamera -ortho +vviewparams -scale 1e-8 +vrenderparams -frustumculling on + +if { [test3d 1e-7] != 1 } { + puts "Error: 3D projection test failed: camera is orthographic, view frustum culling is ON" +} + +#################################################################### +# Test perspective camera without frustum culling. # +# Test camera with less starting distance 1.0 to avoid jittering. # +#################################################################### +vcamera -persp +vrenderparams -frustumculling off +if { [test3d 1.0] != 1 } { puts "Error: 3D projection test failed: camera is perspective, view frustum culling is OFF" } + +#################################################################### +# Test perspective camera with frustum culling. # +# Test camera with less starting distance 1.0 to avoid jittering. # +#################################################################### +vcamera -persp +vrenderparams -frustumculling on +if { [test3d 1.0] != 1 } { puts "Error: 3D projection test failed: camera is perspective, view frustum culling is ON" } diff --git a/tests/v3d/bugs/bug25853 b/tests/v3d/bugs/bug25853 new file mode 100644 index 0000000000..ad187c10ef --- /dev/null +++ b/tests/v3d/bugs/bug25853 @@ -0,0 +1,50 @@ +puts "==========" +puts "OCC25853: Edges disappear or reappear when displaying new edges" +puts "==========" +puts "" + +pload MODELING VISUALIZATION +vinit View1 w=1024 h=1024 +vsetdispmode View1 1 +vclear + +#vtop +set scale 0.086865724500890112 +set vpprojx 0.0 +set vpprojy 0.0 +set vpprojz 1.0 +set vpupx 0.0 +set vpupy 1.0 +set vpupz 0.0 +set vpatx 4995 +set vpaty 500 +set vpatz 0 +set vpeyex 4995 +set vpeyey 500 +set vpeyez 0.0001 +vviewparams -scale $scale -eye $vpeyex $vpeyey $vpeyez -at $vpatx $vpaty $vpatz -up $vpupx $vpupy $vpupz -proj $vpprojx $vpprojy $vpprojz + +set NB 1000 + +proc draw_lines {{distance 10.0}} { + # set colors to corner spheres + for {set i 0} {$i < $::NB} {incr i} { + set x [expr $i * $distance] + set ya 0.0 + set yb 1000.0 + set z 0.0 + vertex v1 $x $ya $z + vertex v2 $x $yb $z + edge e$i v1 v2 + vdisplay -update e$i + puts "$i: $x $ya $yb $z" + } +} + +puts "Start test lines" +draw_lines 10.0 + +checkcolor 804 483 1 0 0 +checkcolor 860 500 1 0 0 + +vdump $imagedir/${casename}.png diff --git a/tests/v3d/bugs/bug30434 b/tests/v3d/bugs/bug30434 new file mode 100644 index 0000000000..e1ebfa8441 --- /dev/null +++ b/tests/v3d/bugs/bug30434 @@ -0,0 +1,43 @@ +puts "=============" +puts "0030434: Visualization, TKV3d - add 'NoUpdate' state of frustum culling optimization" +puts "=============" + +pload VISUALIZATION +vclear +vinit View1 + +set THE_NB_POINTS 10 +puts "Creating [expr $THE_NB_POINTS * $THE_NB_POINTS * $THE_NB_POINTS] points..." +for {set i 0} {$i < $THE_NB_POINTS} {incr i} { + for {set j 0} {$j < $THE_NB_POINTS} {incr j} { + for {set k 0} {$k < $THE_NB_POINTS} {incr k} { + vpoint p$i$j$k 3.*$i 3.*$j 3.*$k + } + } +} + +vcamera -ortho +vfront +vfit +vzoom 2 +vrenderparams -frustumculling on +vrenderparams -frustumculling noupdate +vfit +if { [vreadpixel 92 92 rgb name] == "YELLOW" } { puts "Error: point should be clipped earlier" } +vdump $::imagedir/${::casename}_ortho_culled.png +vrenderparams -frustumculling off +if { [vreadpixel 92 92 rgb name] != "YELLOW" } { puts "Error: point should NOT be clipped" } +vdump $::imagedir/${::casename}_ortho_all.png + +vcamera -persp +vaxo +vfit +vzoom 3 +vrenderparams -frustumculling on +vrenderparams -frustumculling noupdate +vfit +if { [vreadpixel 114 92 rgb name] == "YELLOW" } { puts "Error: point should be clipped earlier" } +vdump $::imagedir/${::casename}_persp_culled.png +vrenderparams -frustumculling off +if { [vreadpixel 114 92 rgb name] != "YELLOW" } { puts "Error: point should NOT be clipped" } +vdump $::imagedir/${::casename}_persp_all.png diff --git a/tests/v3d/bugs/bug30437_1 b/tests/v3d/bugs/bug30437_1 new file mode 100644 index 0000000000..39e8aab967 --- /dev/null +++ b/tests/v3d/bugs/bug30437_1 @@ -0,0 +1,32 @@ +puts "=============" +puts "0030437: Visualization, TKV3d - add Draw command to print rendering statistics" +puts "=============" + +pload MODELING VISUALIZATION +vclear +vinit View1 + +set THE_NB_POINTS 10 +puts "Creating [expr $THE_NB_POINTS * $THE_NB_POINTS * $THE_NB_POINTS] points..." +for {set i 0} {$i < $THE_NB_POINTS} {incr i} { + for {set j 0} {$j < $THE_NB_POINTS} {incr j} { + for {set k 0} {$k < $THE_NB_POINTS} {incr k} { + vpoint p$i$j$k 3.*$i 3.*$j 3.*$k + } + } +} + +vcamera -ortho +vfront +vfit +vzoom 2 +set aPointsNb_1 [vstatprofiler points] +if [expr $aPointsNb_1 != 160] { puts "Error: unexpected number of not culled points 1" } + +vcamera -persp +vaxo +vfit +vzoom 3 +set aPointsNb_2 [vstatprofiler points] +if [expr $aPointsNb_2 != 307] { puts "Error: unexpected number of not culled points 2" } +vdump $imagedir/${casename}.png diff --git a/tests/v3d/materials/pbr1 b/tests/v3d/materials/pbr1 new file mode 100644 index 0000000000..384f1bead5 --- /dev/null +++ b/tests/v3d/materials/pbr1 @@ -0,0 +1,16 @@ +# PBR requires OpenGL 3.0+ on macOS +pload VISUALIZATION +pload OPENGL +if { $::tcl_platform(os) == "Darwin" } { vcaps -core } + +source $env(CSF_OCCTSamplesPath)/tcl/materials.tcl +vlight -change 0 -intensity 5 +vrenderparams -shadingModel PBR -msaa 0 +vdump $imagedir/${casename}_default.png + +set aCubeMap [locate_data_file Circus_CubeMap_V.png] +vbackground -cubemap $aCubeMap +vdump $imagedir/${casename}_env.png + +vbackground -cubemap $aCubeMap -invertedz +vdump $imagedir/${casename}_env_iz.png diff --git a/tests/v3d/memory/bug172 b/tests/v3d/memory/bug172 new file mode 100644 index 0000000000..dacd99c8de --- /dev/null +++ b/tests/v3d/memory/bug172 @@ -0,0 +1,25 @@ +puts "========" +puts "OCC172" +puts "========" + +pload XDE VISUALIZATION QAcommands + +# disable VBO to avoid false memory leaks reported on NVIDIA graphics, see issue #29996 +pload OPENGL +vcaps -vbo 0 + +vinit View1 +restore [locate_data_file OCC162.brep] s +vdisplay s + +set listmem {} +set i_max 10 +for {set i 1} {${i} <= ${i_max}} {incr i} { + # select shape + OCC172 + # deselect shape + OCC172 + + lappend listmem [meminfo h] + checktrend $listmem 0 1 "Memory leak detected" +} diff --git a/tests/v3d/memory/bug26538 b/tests/v3d/memory/bug26538 new file mode 100644 index 0000000000..ea409df48f --- /dev/null +++ b/tests/v3d/memory/bug26538 @@ -0,0 +1,26 @@ +puts "============" +puts "OCC26538: Visualization - Infinite growth of maxtrix stack in OpenGl_Structure::Render" +puts "============" +puts "" + +pload MODELING VISUALIZATION +box b1 1 1 1 +box b2 1 1 1 + +vclear +vinit View1 +vdisplay b1 b2 +vsetlocation b2 10 10 10 +vfit + +set listmem {} +set aNbChecks 50 +for {set anIter 1} {$anIter <= $aNbChecks} {incr anIter} { + vfps 100 + lappend listmem [meminfo h] + #checktrend $listmem 0 1 "Memory leak detected" +} +puts $listmem + +checktrend $listmem 0 1 "Memory leak detected" +vdump ${imagedir}/${casename}.png diff --git a/tests/v3d/memory/bug29412 b/tests/v3d/memory/bug29412 new file mode 100644 index 0000000000..b82d855ab7 --- /dev/null +++ b/tests/v3d/memory/bug29412 @@ -0,0 +1,28 @@ +puts "# ===================================================================" +puts "# 0029412: Huge Memory leak since I upgraded to OC 6.9.0" +puts "# ===================================================================" +puts "" + +pload VISUALIZATION QAcommands +pload OPENGL +vcaps -vsync 0 +vinit View1 +vglinfo + +OCC29412 100 ;# just to initialize + +meminfo +vmemgpu + +set heap_before [meminfo heap] +OCC29412 +set heap_after [meminfo heap] + +meminfo +vmemgpu + +# check that memory increase is moderate: can be up to 75 KiB on Debian; +# note that the leak in OCCT 6.9.0 - 7.0.0 was ~ 19 MiB +if { $heap_after - $heap_before > 100 * 1024 } { + puts "Error: memory leak of [expr ($heap_after - $heap_before) / 1024] KiB" +} diff --git a/tests/v3d/trsf/bug24623_3 b/tests/v3d/trsf/bug24623_3 new file mode 100644 index 0000000000..46dd910329 --- /dev/null +++ b/tests/v3d/trsf/bug24623_3 @@ -0,0 +1,44 @@ +puts "============" +puts "OCC24623_3: Visualization - improve selection mechanism" +puts "Tests memory leaks in creation of selection primitives for connected interactive objects:" +puts "checks that there is no 'dead links' in removing Select3D_BVHPrimitiveContent" +puts "============" +puts "" + +pload MODELING VISUALIZATION +psphere s 0.5 +tclean s +incmesh s 0.001 +trinfo s + +set aMemInit [meminfo h] +set aNb 1000 + +# display as copies +eval compound [lrepeat $aNb s] ss +explode ss +for {set i 1} {$i <= $aNb} {incr i} { vloadselection ss_${i}; vsetlocation -noupdate ss_${i} ${i} 0 0 } +vfit +set aMemSel1 [meminfo h] +vclear +set aMemClear1 [meminfo h] + +# display as connected instances of single presentation +vconnectto i_1 0 0 0 s -nodisplay +vloadselection i_1 +for {set i 2} {$i < $aNb} {incr i} { vconnectto i_${i} ${i} 0 0 i_1 -nodisplay; vloadselection i_${i} } +set aMemSel2 [meminfo h] +vclear +set aMemClear2 [meminfo h] + +puts "Initial memory : [expr $aMemInit / (1024 * 1024)] MiB" +puts "Compute selection (simple) : [expr $aMemSel1 / (1024 * 1024)] MiB" +puts "Clearing (simple) : [expr $aMemClear1 / (1024 * 1024)] MiB" +puts "Compute selection (connected): [expr $aMemSel2 / (1024 * 1024)] MiB" +puts "Clearing (connected) : [expr $aMemClear2 / (1024 * 1024)] MiB" + +set aRatio [expr $aMemClear2 / double($aMemClear1)] + +# check if the memory difference is greater than 10% +if {[expr $aRatio > 1.1]} { puts "Error : TEST FAILED" } +vdump $imagedir/${casename}.png diff --git a/tests/v3d/trsf/bug24623_4 b/tests/v3d/trsf/bug24623_4 new file mode 100644 index 0000000000..997603f3ce --- /dev/null +++ b/tests/v3d/trsf/bug24623_4 @@ -0,0 +1,37 @@ +puts "============" +puts "OCC24623_4: Visualization - improve selection mechanism" +puts "Tests memory leaks in creation of selection primitives for connected interactive objects:" +puts "checks that there is no 'dead links' to reference interactives after its clearing" +puts "============" +puts "" + +pload MODELING VISUALIZATION +psphere s 0.5 +tclean s +incmesh s 0.001 +trinfo s +vinit +vclear + +set aMemInit [meminfo h] +set anIterNb 100 + +for {set anIterCount 0} {$anIterCount < $anIterNb} {incr anIterCount} { + set aNb 11 + + vconnectto i_1 0 0 0 s -nodisplay + vloadselection i_1 + for {set i 2} {$i < $aNb} {incr i} { vconnectto i_${i} ${i} 0 0 i_1 -nodisplay; vloadselection i_${i} } + vclear +} + +set aMemClear [meminfo h] + +puts "Initial memory : [expr $aMemInit / (1024 * 1024)] MiB" +puts "Clearing : [expr $aMemClear / (1024 * 1024)] MiB" + +set aRatio [expr $aMemClear / double($aMemInit)] + +# check if the memory difference is greater than 20% +if {[expr $aRatio > 1.2]} { puts "Error : TEST FAILED" } +vdump $imagedir/${casename}.png diff --git a/tests/v3d/trsf/bug25532 b/tests/v3d/trsf/bug25532 new file mode 100644 index 0000000000..4f24614136 --- /dev/null +++ b/tests/v3d/trsf/bug25532 @@ -0,0 +1,50 @@ +puts "============" +puts "OCC25532: Visualization - fix cross-references between AIS_ConnectedInteractive and connected presentation" +puts "============" +puts "" + +pload MODELING VISUALIZATION +pload OPENGL +psphere s 0.5 +tclean s +incmesh s 0.001 +trinfo s + +vclear +vinit View1 +vaxo +vcaps -vbo 0 +vsetdispmode 1 +vdefaults -absDefl 1.0 +vselprops -autoactivate 0 + +set aMemInit [meminfo h] +set aNb 1000 + +# display as copies +eval compound [lrepeat $aNb s] ss +explode ss +for {set i 1} {$i <= $aNb} {incr i} { vdisplay -noupdate ss_${i}; vsetlocation -noupdate ss_${i} ${i} 0 0 } +vfit +set aMemDisp1 [meminfo h] +vclear +set aMemClear1 [meminfo h] + +# display as connected instances of single presentation +vconnectto i_1 0 0 0 s +for {set i 2} {$i < $aNb} {incr i} { vconnectto i_${i} ${i} 0 0 i_1 } +set aMemDisp2 [meminfo h] +vclear +set aMemClear2 [meminfo h] + +puts "Initial memory: [expr $aMemInit / (1024 * 1024)] MiB" +puts "Displaying (simple): [expr $aMemDisp1 / (1024 * 1024)] MiB" +puts "Clearing (simple): [expr $aMemClear1 / (1024 * 1024)] MiB" +puts "Displaying (connected): [expr $aMemDisp2 / (1024 * 1024)] MiB" +puts "Clearing (connected): [expr $aMemClear2 / (1024 * 1024)] MiB" + +set aRatio [expr $aMemClear2 / double($aMemClear1)] + +# check if the memory difference is greater than 20% +if [expr $aRatio > 1.2] { puts "Error : TEST FAILED" } +vdump ${imagedir}/${casename}.png diff --git a/tests/vselect/bugs/bug27318 b/tests/vselect/bugs/bug27318 new file mode 100644 index 0000000000..ec682f0958 --- /dev/null +++ b/tests/vselect/bugs/bug27318 @@ -0,0 +1,34 @@ +puts "TODO OCC27318 MacOS: Error : TEST FAILED" + +puts "========" +puts "OCC27318: Memory is not released in Select3D_SensitiveSet when destroying AIS_InteractiveContext without removing objects" +puts "========" +puts "" + +pload VISUALIZATION QAcommands + +# to measure initial memory correctly, open and close interactive context +# to load FreeImage +vinit +vclose +set aMemInit [meminfo h] +puts "Initial mem: [expr $aMemInit / (1024 * 1024)] MiB ([expr $aMemInit])" + +# create a box and display it in each interactive context. The context is +# the only instance that references to the box. Therefore, the box must be +# removed completely after each context's closing +for {set anIter 0} {$anIter < 300} {incr anIter} { + vinit + OCC27318 + vclose +} + +set aMemAfter [meminfo h] +puts "Memory after closing interactive context several times: [expr $aMemAfter / (1024 * 1024)] MiB ([expr $aMemAfter])" + +set aRatio [expr $aMemAfter / double($aMemInit)] + +# check if the memory difference is greater than 5% +if [expr $aRatio > 1.05] { + puts "Error : TEST FAILED" +}