[Bf-blender-cvs] [4a02b9ffeb0] master: Regression Testing: Running tests based on blend files
Himanshi Kalra
noreply at git.blender.org
Tue Jul 27 17:34:30 CEST 2021
Commit: 4a02b9ffeb018ced11768ca99935fda5fa5f7da0
Author: Himanshi Kalra
Date: Tue Jul 27 21:00:28 2021 +0530
Branches: master
https://developer.blender.org/rB4a02b9ffeb018ced11768ca99935fda5fa5f7da0
Regression Testing: Running tests based on blend files
Runs tests based on blend files with minimum python interaction.
Developed as part of GSoC 2021 - Regression Testing of Geometry Nodes.
Earlier, tests were built from scratch by adding a modifier/operation
from the Python API.
Now, tests can also be created inside blender and are compared using
Python script.
Features: Automatically adding expected object if it doesn't exist.
This patch adds tests for the following Geometry Nodes category:
* Curves
* Geometry
* Mesh
* Points
The implemented UML diagram for refactoring of mesh test framework.
{F10225906}
Technical Changes:
SpecMeshTest: It adds the modifier/operation based on the Spec provided.
BlendFileTest: It applies already existing modifier/operation from the blend file.
Test folders hierarchy with tests. This folder should be extracted to `lib\tests\modeling`
{F10240651}
Note: The `geometry_nodes` folder might lie under another `geometry_nodes` folder while extracting, please double check. Use the inner-most one.
The hierarchy should be:
-`lib\tests\modeling\geometry_nodes\mesh`
-`lib\tests\modeling\geometry_nodes\points`
and so on.
* From `ctest` the tests should be run as `ctest -R geo_node -C [Configuration]` on Windows.
* Each single test can be run with its entire name e..g `ctest -R geo_node_geometry_join_geometry`.(just an example). Run `ctest -N -R geo_node` to see all tests.
* From blender, the tests can be run `blender -b path\to\blend\file --python path\to\geo_node_test.py`
Reviewed By: zazizizou, JacquesLucke
Differential Revision: https://developer.blender.org/D11611
===================================================================
M tests/python/CMakeLists.txt
M tests/python/bevel_operator.py
M tests/python/boolean_operator.py
M tests/python/curve_to_mesh.py
M tests/python/deform_modifiers.py
A tests/python/geo_node_test.py
M tests/python/modifiers.py
M tests/python/modules/mesh_test.py
M tests/python/operators.py
M tests/python/physics_cloth.py
M tests/python/physics_dynamic_paint.py
M tests/python/physics_ocean.py
M tests/python/physics_particle_instance.py
M tests/python/physics_particle_system.py
M tests/python/physics_softbody.py
===================================================================
diff --git a/tests/python/CMakeLists.txt b/tests/python/CMakeLists.txt
index 92cebb7d274..0f9665f0a95 100644
--- a/tests/python/CMakeLists.txt
+++ b/tests/python/CMakeLists.txt
@@ -740,6 +740,29 @@ if(WITH_COMPOSITOR)
endif()
+set(geo_node_tests
+ curves
+ geometry
+ mesh
+ points
+)
+
+foreach(geo_node_test ${geo_node_tests})
+ if(EXISTS "${TEST_SRC_DIR}/modeling/geometry_nodes/${geo_node_test}/")
+ file(GLOB files "${TEST_SRC_DIR}/modeling/geometry_nodes/${geo_node_test}/*.blend")
+ foreach(file ${files})
+ get_filename_component(filename ${file} NAME_WE)
+ add_blender_test(
+ geo_node_${geo_node_test}_test_${filename}
+ ${file}
+ --python ${TEST_PYTHON_DIR}/geo_node_test.py
+ )
+ endforeach()
+ else()
+ MESSAGE(STATUS "No directory named ${TEST_SRC_DIR}/modeling/geometry_nodes/${geo_node_test}/ found, disabling test.")
+ endif()
+endforeach()
+
if(WITH_OPENGL_DRAW_TESTS)
if(NOT OPENIMAGEIO_IDIFF)
MESSAGE(STATUS "Disabling OpenGL draw tests because OIIO idiff does not exist")
diff --git a/tests/python/bevel_operator.py b/tests/python/bevel_operator.py
index c732d437b57..726bf4b5b03 100644
--- a/tests/python/bevel_operator.py
+++ b/tests/python/bevel_operator.py
@@ -27,272 +27,272 @@ import os
import sys
sys.path.append(os.path.dirname(os.path.realpath(__file__)))
-from modules.mesh_test import MeshTest, OperatorSpecEditMode, RunTest
+from modules.mesh_test import SpecMeshTest, OperatorSpecEditMode, RunTest
def main():
tests = [
# 0
- MeshTest('Cube_test_1', 'Cube_test', 'Cube_result_1',
+ SpecMeshTest('Cube_test_1', 'Cube_test', 'Cube_result_1',
[OperatorSpecEditMode('bevel',
{'offset': 0.2}, 'EDGE', {10})]),
- MeshTest('Cube_test_2', 'Cube_test', 'Cube_result_2',
+ SpecMeshTest('Cube_test_2', 'Cube_test', 'Cube_result_2',
[OperatorSpecEditMode('bevel',
{'offset': 0.2, 'offset_type': 'WIDTH'}, 'EDGE', {10, 7}, )]),
- MeshTest('Cube_test_3', 'Cube_test', 'Cube_result_3',
+ SpecMeshTest('Cube_test_3', 'Cube_test', 'Cube_result_3',
[OperatorSpecEditMode('bevel',
{'offset': 0.2, 'offset_type': 'DEPTH'}, 'EDGE', {8, 10, 7}, )]),
- MeshTest('Cube_test_4', 'Cube_test', 'Cube_result_4',
+ SpecMeshTest('Cube_test_4', 'Cube_test', 'Cube_result_4',
[OperatorSpecEditMode('bevel', {'offset': 0.4, 'segments': 2}, 'EDGE', {10}, )]),
- MeshTest('Cube_test_5', 'Cube_test', 'Cube_result_5',
+ SpecMeshTest('Cube_test_5', 'Cube_test', 'Cube_result_5',
[OperatorSpecEditMode('bevel', {'offset': 0.4, 'segments': 3}, 'EDGE', {10, 7}, )]),
# 5
- MeshTest('Cube_test_6', 'Cube_test', 'Cube_result_6',
+ SpecMeshTest('Cube_test_6', 'Cube_test', 'Cube_result_6',
[OperatorSpecEditMode('bevel', {'offset': 0.4, 'segments': 4}, 'EDGE', {8, 10, 7}, )]),
- MeshTest('Cube_test_7', 'Cube_test', 'Cube_result_7',
+ SpecMeshTest('Cube_test_7', 'Cube_test', 'Cube_result_7',
[OperatorSpecEditMode('bevel',
{'offset': 0.4, 'segments': 5, 'profile': 0.2}, 'EDGE', {0, 10, 4, 7}, )]),
- MeshTest('Cube_test_8', 'Cube_test', 'Cube_result_8',
+ SpecMeshTest('Cube_test_8', 'Cube_test', 'Cube_result_8',
[OperatorSpecEditMode('bevel',
{'offset': 0.4, 'segments': 5, 'profile': 0.25}, 'EDGE', {8, 10, 7}, )]),
- MeshTest('Cube_test_9', 'Cube_test', 'Cube_result_9',
+ SpecMeshTest('Cube_test_9', 'Cube_test', 'Cube_result_9',
[OperatorSpecEditMode('bevel',
{'offset': 0.4, 'segments': 6, 'profile': 0.9}, 'EDGE', {8, 10, 7}, )]),
- MeshTest('Cube_test_10', 'Cube_test', 'Cube_result_10',
+ SpecMeshTest('Cube_test_10', 'Cube_test', 'Cube_result_10',
[OperatorSpecEditMode('bevel',
{'offset': 0.4, 'segments': 4, 'profile': 1.0}, 'EDGE', {10, 7}, )]),
# 10
- MeshTest('Cube_test_11', 'Cube_test', 'Cube_result_11',
+ SpecMeshTest('Cube_test_11', 'Cube_test', 'Cube_result_11',
[OperatorSpecEditMode('bevel',
{'offset': 0.4, 'segments': 5, 'profile': 1.0}, 'EDGE', {8, 10, 7}, )]),
- MeshTest("test 12", 'Cube_test', 'Cube_result_12',
+ SpecMeshTest("test 12", 'Cube_test', 'Cube_result_12',
[OperatorSpecEditMode('bevel',
{'offset': 0.4, 'segments': 8}, 'EDGE',
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, )]),
- MeshTest('Pyramid4_test_1', 'Pyr4_test', 'Pyr4_result_1',
+ SpecMeshTest('Pyramid4_test_1', 'Pyr4_test', 'Pyr4_result_1',
[OperatorSpecEditMode('bevel', {'offset': 0.2}, 'EDGE', {5}, )]),
- MeshTest('Pyramid4_test_2', 'Pyr4_test', 'Pyr4_result_2',
+ SpecMeshTest('Pyramid4_test_2', 'Pyr4_test', 'Pyr4_result_2',
[OperatorSpecEditMode('bevel', {'offset': 0.2}, 'EDGE', {2, 5}, )]),
- MeshTest('Pyramid4_test_3', 'Pyr4_test', 'Pyr4_result_3',
+ SpecMeshTest('Pyramid4_test_3', 'Pyr4_test', 'Pyr4_result_3',
[OperatorSpecEditMode('bevel', {'offset': 0.2}, 'EDGE', {2, 3, 5}, )]),
# 15
- MeshTest('Pyramid4_test_4', 'Pyr4_test', 'Pyr4_result_4',
+ SpecMeshTest('Pyramid4_test_4', 'Pyr4_test', 'Pyr4_result_4',
[OperatorSpecEditMode('bevel', {'offset': 0.2}, 'EDGE', {1, 2, 3, 5}, )]),
- MeshTest('Pyramid4_test_5', 'Pyr4_test', 'Pyr4_result_5',
+ SpecMeshTest('Pyramid4_test_5', 'Pyr4_test', 'Pyr4_result_5',
[OperatorSpecEditMode('bevel',
{'offset': 0.2, 'segments': 3}, 'EDGE', {1, 2, 3, 5}, )]),
- MeshTest('Pyramid4_test_6', 'Pyr4_test', 'Pyr4_result_6',
+ SpecMeshTest('Pyramid4_test_6', 'Pyr4_test', 'Pyr4_result_6',
[OperatorSpecEditMode('bevel', {'offset': 0.2, 'segments': 2}, 'EDGE', {2, 3}, )]),
- MeshTest('Pyramid4_test_7', 'Pyr4_test', 'Pyr4_result_7',
+ SpecMeshTest('Pyramid4_test_7', 'Pyr4_test', 'Pyr4_result_7',
[OperatorSpecEditMode('bevel',
{'offset': 0.2, 'segments': 4, 'profile': 0.15}, 'EDGE', {1, 2, 3, 5}, )]),
- MeshTest('Pyramid4_test_8', 'Pyr4_test', 'Pyr4_result_8',
+ SpecMeshTest('Pyramid4_test_8', 'Pyr4_test', 'Pyr4_result_8',
[OperatorSpecEditMode('bevel',
{'offset': 0.75, 'segments': 4, 'affect': 'VERTICES'}, 'VERT', {1}, )]),
# 20
- MeshTest('Pyramid4_test_9', 'Pyr4_test', 'Pyr4_result_9',
+ SpecMeshTest('Pyramid4_test_9', 'Pyr4_test', 'Pyr4_result_9',
[OperatorSpecEditMode('bevel',
{'offset': 0.75, 'segments': 3, 'affect': 'VERTICES', 'profile': 0.25}, 'VERT',
{1}, )]),
- MeshTest('Pyramid6_test_1', 'Pyr6_test', 'Pyr6_result_1',
+ SpecMeshTest('Pyramid6_test_1', 'Pyr6_test', 'Pyr6_result_1',
[OperatorSpecEditMode('bevel', {'offset': 0.2}, 'EDGE', {2, 3}, )]),
- MeshTest('Pyramid6_test_2', 'Pyr6_test', 'Pyr6_result_2',
+ SpecMeshTest('Pyramid6_test_2', 'Pyr6_test', 'Pyr6_result_2',
[OperatorSpecEditMode('bevel', {'offset': 0.2, 'segments': 2}, 'EDGE', {8, 2, 3}, )]),
- MeshTest('Pyramid6_test_3', 'Pyr6_test', 'Pyr6_result_3',
+ SpecMeshTest('Pyramid6_test_3', 'Pyr6_test', 'Pyr6_result_3',
[OperatorSpecEditMode('bevel',
{'offset': 0.2, 'segments': 4, 'profile': 0.8}, 'EDGE',
{0, 2, 3, 4, 6, 7, 9, 10, 11}, )]),
- MeshTest('Sept_test_1', 'Sept_test', 'Sept_result_1',
+ SpecMeshTest('Sept_test_1', 'Sept_test', 'Sept_result_1',
[OperatorSpecEditMode('bevel', {'offset': 0.1}, 'EDGE', {8, 9, 3, 11}, )]),
# 25
- MeshTest('Sept_test_2', 'Sept_test', 'Sept_result_2',
+ SpecMeshTest('Sept_test_2', 'Sept_test', 'Sept_result_2',
[OperatorSpecEditMode('bevel',
{'offset': 0.1, 'offset_type': 'WIDTH'}, 'EDGE', {8, 9, 11}, )]),
- MeshTest('Saddle_test_1', 'Saddle_test', 'Saddle_result_1',
+ SpecMeshTest('Saddle_test_1', 'Saddle_test', 'Saddle_result_1',
[OperatorSpecEditMode('bevel',
{'offset': 0.3, 'segments': 5}, 'EDGE', {2, 8, 9, 12, 13, 14}, )]),
- MeshTest('Saddle_test_2', 'Saddle_test', 'Saddle_result_2',
+ SpecMeshTest('Saddle_test_2', 'Saddle_test', 'Saddle_result_2',
[OperatorSpecEditMode('bevel',
{'offset': 0.6, 'segments': 6, 'affect': 'VERTICES'}, 'VERT', {4}, )]),
- MeshTest('Bent_test', 'Bent_test', 'Bent_result_1',
+ SpecMeshTest('Bent_test', 'Bent_test', 'Bent_result_1',
[OperatorSpecEditMode('bevel', {'offset': 0.2, 'segments': 3},
'EDGE',
{2, 5, 8, 11, 14, 18, 21, 24, 27, 30, 34, 37, 40, 43, 46, 50, 53, 56, 59, 62,
112, 113, 114, 115}, )]),
- MeshTest('Bentlines_test_1', 'Bentlines_test', 'Bentlines_result_1',
+ SpecMeshTest('Bentlines_test_1', 'Bentlines_test', 'Bentlines_result_1',
[OperatorSpecEditMode('bevel',
{'offset': 0.2, 'segments': 3}, 'EDGE', {1, 8, 9, 10, 11}, )]),
# 30
- MeshTest('Flaretop_test_1', 'Flaretop_test', 'Flaretop_result_1',
+ SpecMeshTest('Flaretop_test_1', 'Flaretop_test', 'Flaretop_result_1',
[OperatorSpecEditMod
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list