On 07/18/2011 11:37 AM, Paul Berry wrote: > These tests invoke do_lower_jumps() in isolation (using the glsl_test > executable) and verify that it transforms the IR in the expected way. > > The unit tests may be run from the top level directory using "make > check". > > For reference, I've also checked in the Python script > create_test_cases.py, which was used to generate these tests. It is > not necessary to run this script in order to run the tests. > --- > Makefile | 6 +- > src/glsl/tests/compare_ir | 59 ++ > src/glsl/tests/lower_jumps/.gitignore | 1 + > src/glsl/tests/lower_jumps/create_test_cases.py | 643 > ++++++++++++++++++++ > src/glsl/tests/lower_jumps/lower_breaks_1.opt_test | 13 + > .../lower_jumps/lower_breaks_1.opt_test.expected | 5 + > src/glsl/tests/lower_jumps/lower_breaks_2.opt_test | 15 + > .../lower_jumps/lower_breaks_2.opt_test.expected | 7 + > src/glsl/tests/lower_jumps/lower_breaks_3.opt_test | 17 + > .../lower_jumps/lower_breaks_3.opt_test.expected | 8 + > src/glsl/tests/lower_jumps/lower_breaks_4.opt_test | 15 + > .../lower_jumps/lower_breaks_4.opt_test.expected | 7 + > src/glsl/tests/lower_jumps/lower_breaks_5.opt_test | 16 + > .../lower_jumps/lower_breaks_5.opt_test.expected | 7 + > src/glsl/tests/lower_jumps/lower_breaks_6.opt_test | 29 + > .../lower_jumps/lower_breaks_6.opt_test.expected | 29 + > .../lower_guarded_conditional_break.opt_test | 21 + > ...wer_guarded_conditional_break.opt_test.expected | 20 + > .../lower_jumps/lower_pulled_out_jump.opt_test | 28 + > .../lower_pulled_out_jump.opt_test.expected | 25 + > .../tests/lower_jumps/lower_returns_1.opt_test | 12 + > .../lower_jumps/lower_returns_1.opt_test.expected | 4 + > .../tests/lower_jumps/lower_returns_2.opt_test | 13 + > .../lower_jumps/lower_returns_2.opt_test.expected | 5 + > .../tests/lower_jumps/lower_returns_3.opt_test | 20 + > .../lower_jumps/lower_returns_3.opt_test.expected | 21 + > .../tests/lower_jumps/lower_returns_4.opt_test | 14 + > .../lower_jumps/lower_returns_4.opt_test.expected | 16 + > .../lower_jumps/lower_returns_main_false.opt_test | 17 + > .../lower_returns_main_false.opt_test.expected | 8 + > .../lower_jumps/lower_returns_main_true.opt_test | 17 + > .../lower_returns_main_true.opt_test.expected | 13 + > .../lower_jumps/lower_returns_sub_false.opt_test | 16 + > .../lower_returns_sub_false.opt_test.expected | 8 + > .../lower_jumps/lower_returns_sub_true.opt_test | 16 + > .../lower_returns_sub_true.opt_test.expected | 13 + > .../lower_jumps/lower_unified_returns.opt_test | 26 + > .../lower_unified_returns.opt_test.expected | 21 + > .../remove_continue_at_end_of_loop.opt_test | 13 + > ...emove_continue_at_end_of_loop.opt_test.expected | 5 + > ..._non_void_at_end_of_loop_lower_nothing.opt_test | 16 + > ..._at_end_of_loop_lower_nothing.opt_test.expected | 8 + > ...n_non_void_at_end_of_loop_lower_return.opt_test | 16 + > ...d_at_end_of_loop_lower_return.opt_test.expected | 19 + > ..._at_end_of_loop_lower_return_and_break.opt_test | 16 + > ...f_loop_lower_return_and_break.opt_test.expected | 19 + > ...turn_void_at_end_of_loop_lower_nothing.opt_test | 14 + > ..._at_end_of_loop_lower_nothing.opt_test.expected | 6 + > ...eturn_void_at_end_of_loop_lower_return.opt_test | 14 + > ...d_at_end_of_loop_lower_return.opt_test.expected | 11 + > ..._at_end_of_loop_lower_return_and_break.opt_test | 14 + > ...f_loop_lower_return_and_break.opt_test.expected | 11 + > src/glsl/tests/optimization-test | 28 + > src/glsl/tests/sexps.py | 103 ++++ > 54 files changed, 1543 insertions(+), 1 deletions(-) > create mode 100755 src/glsl/tests/compare_ir > create mode 100644 src/glsl/tests/lower_jumps/.gitignore > create mode 100644 src/glsl/tests/lower_jumps/create_test_cases.py > create mode 100755 src/glsl/tests/lower_jumps/lower_breaks_1.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/lower_breaks_1.opt_test.expected > create mode 100755 src/glsl/tests/lower_jumps/lower_breaks_2.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/lower_breaks_2.opt_test.expected > create mode 100755 src/glsl/tests/lower_jumps/lower_breaks_3.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/lower_breaks_3.opt_test.expected > create mode 100755 src/glsl/tests/lower_jumps/lower_breaks_4.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/lower_breaks_4.opt_test.expected > create mode 100755 src/glsl/tests/lower_jumps/lower_breaks_5.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/lower_breaks_5.opt_test.expected > create mode 100755 src/glsl/tests/lower_jumps/lower_breaks_6.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/lower_breaks_6.opt_test.expected > create mode 100755 > src/glsl/tests/lower_jumps/lower_guarded_conditional_break.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/lower_guarded_conditional_break.opt_test.expected > create mode 100755 src/glsl/tests/lower_jumps/lower_pulled_out_jump.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/lower_pulled_out_jump.opt_test.expected > create mode 100755 src/glsl/tests/lower_jumps/lower_returns_1.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/lower_returns_1.opt_test.expected > create mode 100755 src/glsl/tests/lower_jumps/lower_returns_2.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/lower_returns_2.opt_test.expected > create mode 100755 src/glsl/tests/lower_jumps/lower_returns_3.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/lower_returns_3.opt_test.expected > create mode 100755 src/glsl/tests/lower_jumps/lower_returns_4.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/lower_returns_4.opt_test.expected > create mode 100755 > src/glsl/tests/lower_jumps/lower_returns_main_false.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/lower_returns_main_false.opt_test.expected > create mode 100755 > src/glsl/tests/lower_jumps/lower_returns_main_true.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/lower_returns_main_true.opt_test.expected > create mode 100755 > src/glsl/tests/lower_jumps/lower_returns_sub_false.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/lower_returns_sub_false.opt_test.expected > create mode 100755 src/glsl/tests/lower_jumps/lower_returns_sub_true.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/lower_returns_sub_true.opt_test.expected > create mode 100755 src/glsl/tests/lower_jumps/lower_unified_returns.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/lower_unified_returns.opt_test.expected > create mode 100755 > src/glsl/tests/lower_jumps/remove_continue_at_end_of_loop.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/remove_continue_at_end_of_loop.opt_test.expected > create mode 100755 > src/glsl/tests/lower_jumps/return_non_void_at_end_of_loop_lower_nothing.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/return_non_void_at_end_of_loop_lower_nothing.opt_test.expected > create mode 100755 > src/glsl/tests/lower_jumps/return_non_void_at_end_of_loop_lower_return.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/return_non_void_at_end_of_loop_lower_return.opt_test.expected > create mode 100755 > src/glsl/tests/lower_jumps/return_non_void_at_end_of_loop_lower_return_and_break.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/return_non_void_at_end_of_loop_lower_return_and_break.opt_test.expected > create mode 100755 > src/glsl/tests/lower_jumps/return_void_at_end_of_loop_lower_nothing.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/return_void_at_end_of_loop_lower_nothing.opt_test.expected > create mode 100755 > src/glsl/tests/lower_jumps/return_void_at_end_of_loop_lower_return.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/return_void_at_end_of_loop_lower_return.opt_test.expected > create mode 100755 > src/glsl/tests/lower_jumps/return_void_at_end_of_loop_lower_return_and_break.opt_test > create mode 100644 > src/glsl/tests/lower_jumps/return_void_at_end_of_loop_lower_return_and_break.opt_test.expected > create mode 100755 src/glsl/tests/optimization-test > create mode 100644 src/glsl/tests/sexps.py
I'm in favor of adding these unit tests. I can think of no reliable way, other than unit testing, to prevent regressions of optpass explosion lolz. And I feel that these particular unit tests are a good approach. Acked-by: Chad Versace <c...@chad-versace.us> I like how each test is encapsulated in an individual bash script. This ensures that 1) the testrunner's arguments are documented along with each test, and 2) prevents passing incorrect arguments to the testrunner. -- Chad Versace c...@chad-versace.us
signature.asc
Description: OpenPGP digital signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev