/
niceSOFT
/
check
Обзор
Документация
Войти
/
niceSOFT
/
check
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tests/test_output_strings
336 строк
12 KB
Georg Sauthoff
Use only POSIX conforming features of printf
29 дек 2015, 20:10
29 дек 2015, 20:10
b6bd675
Код
Авторство
О чём код?
#!/usr/bin/env sh . ./test_vars # Set the 'internal field separator' character to # something besides whitespace so that the string # comparisons will work IFS="~" # octal quotes are specified by POSIX, should be thus portable # (e.g. to Lubuntu builtin printf, Solaris 10 /usr/bin/printf) tab_nl_X_bs="\11 \12X\10" ################## # stdout output ################## suite_output=`printf "Running suite(s): S1 S2 XML escape \" ' < > & $tab_nl_X_bs tests"` exp_silent="" if [ $HAVE_FORK -eq 1 ]; then exp_minimal_result="37%: Checks: 8, Failures: 4, Errors: 1" else exp_minimal_result="42%: Checks: 7, Failures: 4, Errors: 0" fi exp_minimal="$suite_output $exp_minimal_result" if [ $HAVE_FORK -eq 1 ]; then exp_normal_result=`printf "37%%: Checks: 8, Failures: 4, Errors: 1 ${SRCDIR}ex_output.c:37:F:Core:test_fail:0: Failure ${SRCDIR}ex_output.c:46:E:Core:test_exit:0: (after this point) Early exit with return value 1 ${SRCDIR}ex_output.c:72:F:Core:test_loop:0: Iteration 0 failed ${SRCDIR}ex_output.c:72:F:Core:test_loop:2: Iteration 2 failed ${SRCDIR}ex_output.c:78:F:description \" ' < > & $tab_nl_X_bs end:test_xml_esc_fail_msg:0: fail \" ' < > & $tab_nl_X_bs message"` else exp_normal_result=`printf "42%%: Checks: 7, Failures: 4, Errors: 0 ${SRCDIR}ex_output.c:37:F:Core:test_fail:0: Failure ${SRCDIR}ex_output.c:72:F:Core:test_loop:0: Iteration 0 failed ${SRCDIR}ex_output.c:72:F:Core:test_loop:2: Iteration 2 failed ${SRCDIR}ex_output.c:78:F:description \" ' < > & $tab_nl_X_bs end:test_xml_esc_fail_msg:0: fail \" ' < > & $tab_nl_X_bs message"` fi exp_normal="$suite_output $exp_normal_result" if [ $HAVE_FORK -eq 1 ]; then exp_verbose_result=`printf "37%%: Checks: 8, Failures: 4, Errors: 1 ${SRCDIR}ex_output.c:31:P:Core:test_pass:0: Passed ${SRCDIR}ex_output.c:37:F:Core:test_fail:0: Failure ${SRCDIR}ex_output.c:46:E:Core:test_exit:0: (after this point) Early exit with return value 1 ${SRCDIR}ex_output.c:66:P:Core:test_pass2:0: Passed ${SRCDIR}ex_output.c:72:F:Core:test_loop:0: Iteration 0 failed ${SRCDIR}ex_output.c:72:P:Core:test_loop:1: Passed ${SRCDIR}ex_output.c:72:F:Core:test_loop:2: Iteration 2 failed ${SRCDIR}ex_output.c:78:F:description \" ' < > & $tab_nl_X_bs end:test_xml_esc_fail_msg:0: fail \" ' < > & $tab_nl_X_bs message"` else exp_verbose_result=`printf "42%%: Checks: 7, Failures: 4, Errors: 0 ${SRCDIR}ex_output.c:31:P:Core:test_pass:0: Passed ${SRCDIR}ex_output.c:37:F:Core:test_fail:0: Failure ${SRCDIR}ex_output.c:66:P:Core:test_pass2:0: Passed ${SRCDIR}ex_output.c:72:F:Core:test_loop:0: Iteration 0 failed ${SRCDIR}ex_output.c:72:P:Core:test_loop:1: Passed ${SRCDIR}ex_output.c:72:F:Core:test_loop:2: Iteration 2 failed ${SRCDIR}ex_output.c:78:F:description \" ' < > & $tab_nl_X_bs end:test_xml_esc_fail_msg:0: fail \" ' < > & $tab_nl_X_bs message"` fi exp_verbose="$suite_output $exp_verbose_result" if [ $HAVE_FORK -eq 1 ]; then exp_subunit=`printf "test: Core:test_pass success: Core:test_pass test: Core:test_fail failure: Core:test_fail [ ${SRCDIR}ex_output.c:37: Failure ] test: Core:test_exit error: Core:test_exit [ ${SRCDIR}ex_output.c:46: (after this point) Early exit with return value 1 ] test: Core:test_pass2 success: Core:test_pass2 test: Core:test_loop failure: Core:test_loop [ ${SRCDIR}ex_output.c:72: Iteration 0 failed ] test: Core:test_loop success: Core:test_loop test: Core:test_loop failure: Core:test_loop [ ${SRCDIR}ex_output.c:72: Iteration 2 failed ] test: description \" ' < > & $tab_nl_X_bs end:test_xml_esc_fail_msg failure: description \" ' < > & $tab_nl_X_bs end:test_xml_esc_fail_msg [ ${SRCDIR}ex_output.c:78: fail \" ' < > & $tab_nl_X_bs message ]"` else exp_subunit=`printf "test: Core:test_pass success: Core:test_pass test: Core:test_fail failure: Core:test_fail [ ${SRCDIR}ex_output.c:37: Failure ] test: Core:test_pass2 success: Core:test_pass2 test: Core:test_loop failure: Core:test_loop [ ${SRCDIR}ex_output.c:72: Iteration 0 failed ] test: Core:test_loop success: Core:test_loop test: Core:test_loop failure: Core:test_loop [ ${SRCDIR}ex_output.c:72: Iteration 2 failed ] test: description \" ' < > & $tab_nl_X_bs end:test_xml_esc_fail_msg failure: description \" ' < > & $tab_nl_X_bs end:test_xml_esc_fail_msg [ ${SRCDIR}ex_output.c:78: fail \" ' < > & $tab_nl_X_bs message ]"` fi ################## # log output ################## if [ $HAVE_FORK -eq 1 ]; then expected_log_log=`printf "Running suite S1 ${SRCDIR}ex_output.c:31:P:Core:test_pass:0: Passed ${SRCDIR}ex_output.c:37:F:Core:test_fail:0: Failure ${SRCDIR}ex_output.c:46:E:Core:test_exit:0: (after this point) Early exit with return value 1 Running suite S2 ${SRCDIR}ex_output.c:66:P:Core:test_pass2:0: Passed ${SRCDIR}ex_output.c:72:F:Core:test_loop:0: Iteration 0 failed ${SRCDIR}ex_output.c:72:P:Core:test_loop:1: Passed ${SRCDIR}ex_output.c:72:F:Core:test_loop:2: Iteration 2 failed Running suite XML escape \" ' < > & $tab_nl_X_bs tests ${SRCDIR}ex_output.c:78:F:description \" ' < > & $tab_nl_X_bs end:test_xml_esc_fail_msg:0: fail \" ' < > & $tab_nl_X_bs message Results for all suites run: 37%%: Checks: 8, Failures: 4, Errors: 1"` else expected_log_log=`printf "Running suite S1 ${SRCDIR}ex_output.c:31:P:Core:test_pass:0: Passed ${SRCDIR}ex_output.c:37:F:Core:test_fail:0: Failure Running suite S2 ${SRCDIR}ex_output.c:66:P:Core:test_pass2:0: Passed ${SRCDIR}ex_output.c:72:F:Core:test_loop:0: Iteration 0 failed ${SRCDIR}ex_output.c:72:P:Core:test_loop:1: Passed ${SRCDIR}ex_output.c:72:F:Core:test_loop:2: Iteration 2 failed Running suite XML escape \" ' < > & $tab_nl_X_bs tests ${SRCDIR}ex_output.c:78:F:description \" ' < > & $tab_nl_X_bs end:test_xml_esc_fail_msg:0: fail \" ' < > & $tab_nl_X_bs message Results for all suites run: 42%%: Checks: 7, Failures: 4, Errors: 0"` fi ################## # xml output ################## if [ $HAVE_FORK -eq 1 ]; then expected_xml="<?xml version=\"1.0\"?> <?xml-stylesheet type=\"text/xsl\" href=\"http://check.sourceforge.net/xml/check_unittest.xslt\"?> <testsuites xmlns=\"http://check.sourceforge.net/ns\"> <suite> <title>S1</title> <test result=\"success\"> <fn>ex_output.c:31</fn> <id>test_pass</id> <iteration>0</iteration> <description>Core</description> <message>Passed</message> </test> <test result=\"failure\"> <fn>ex_output.c:37</fn> <id>test_fail</id> <iteration>0</iteration> <description>Core</description> <message>Failure</message> </test> <test result=\"error\"> <fn>ex_output.c:46</fn> <id>test_exit</id> <iteration>0</iteration> <description>Core</description> <message>Early exit with return value 1</message> </test> </suite> <suite> <title>S2</title> <test result=\"success\"> <fn>ex_output.c:66</fn> <id>test_pass2</id> <iteration>0</iteration> <description>Core</description> <message>Passed</message> </test> <test result=\"failure\"> <fn>ex_output.c:72</fn> <id>test_loop</id> <iteration>0</iteration> <description>Core</description> <message>Iteration 0 failed</message> </test> <test result=\"success\"> <fn>ex_output.c:72</fn> <id>test_loop</id> <iteration>1</iteration> <description>Core</description> <message>Passed</message> </test> <test result=\"failure\"> <fn>ex_output.c:72</fn> <id>test_loop</id> <iteration>2</iteration> <description>Core</description> <message>Iteration 2 failed</message> </test> </suite> <suite> <title>XML escape " ' < > & 	 
X tests</title> <test result=\"failure\"> <fn>ex_output.c:78</fn> <id>test_xml_esc_fail_msg</id> <iteration>0</iteration> <description>description " ' < > & 	 
X end</description> <message>fail " ' < > & 	 
X message</message> </test> </suite> </testsuites>" expected_duration_count=9 else expected_xml="<?xml version=\"1.0\"?> <?xml-stylesheet type=\"text/xsl\" href=\"http://check.sourceforge.net/xml/check_unittest.xslt\"?> <testsuites xmlns=\"http://check.sourceforge.net/ns\"> <suite> <title>S1</title> <test result=\"success\"> <fn>ex_output.c:31</fn> <id>test_pass</id> <iteration>0</iteration> <description>Core</description> <message>Passed</message> </test> <test result=\"failure\"> <fn>ex_output.c:37</fn> <id>test_fail</id> <iteration>0</iteration> <description>Core</description> <message>Failure</message> </test> </suite> <suite> <title>S2</title> <test result=\"success\"> <fn>ex_output.c:66</fn> <id>test_pass2</id> <iteration>0</iteration> <description>Core</description> <message>Passed</message> </test> <test result=\"failure\"> <fn>ex_output.c:72</fn> <id>test_loop</id> <iteration>0</iteration> <description>Core</description> <message>Iteration 0 failed</message> </test> <test result=\"success\"> <fn>ex_output.c:72</fn> <id>test_loop</id> <iteration>1</iteration> <description>Core</description> <message>Passed</message> </test> <test result=\"failure\"> <fn>ex_output.c:72</fn> <id>test_loop</id> <iteration>2</iteration> <description>Core</description> <message>Iteration 2 failed</message> </test> </suite> <suite> <title>XML escape " ' < > & 	 
X tests</title> <test result=\"failure\"> <fn>ex_output.c:78</fn> <id>test_xml_esc_fail_msg</id> <iteration>0</iteration> <description>description " ' < > & 	 
X end</description> <message>fail " ' < > & 	 
X message</message> </test> </suite> </testsuites>" expected_duration_count=8 fi ################## # tap output ################## if [ $HAVE_FORK -eq 1 ]; then expected_normal_tap=`printf "ok 1 - ${SRCDIR}ex_output.c:Core:test_pass: Passed not ok 2 - ${SRCDIR}ex_output.c:Core:test_fail: Failure not ok 3 - ${SRCDIR}ex_output.c:Core:test_exit: Early exit with return value 1 ok 4 - ${SRCDIR}ex_output.c:Core:test_pass2: Passed not ok 5 - ${SRCDIR}ex_output.c:Core:test_loop: Iteration 0 failed ok 6 - ${SRCDIR}ex_output.c:Core:test_loop: Passed not ok 7 - ${SRCDIR}ex_output.c:Core:test_loop: Iteration 2 failed not ok 8 - ${SRCDIR}ex_output.c:description \" ' < > & $tab_nl_X_bs end:test_xml_esc_fail_msg: fail \" ' < > & $tab_nl_X_bs message 1..8"` expected_aborted_tap=`printf "ok 1 - ${SRCDIR}ex_output.c:Core:test_pass: Passed not ok 2 - ${SRCDIR}ex_output.c:Core:test_fail: Failure not ok 3 - ${SRCDIR}ex_output.c:Core:test_exit: Early exit with return value 1 not ok 4 - ${SRCDIR}ex_output.c:Core:test_abort: Early exit with return value 1 ok 5 - ${SRCDIR}ex_output.c:Core:test_pass2: Passed not ok 6 - ${SRCDIR}ex_output.c:Core:test_loop: Iteration 0 failed ok 7 - ${SRCDIR}ex_output.c:Core:test_loop: Passed not ok 8 - ${SRCDIR}ex_output.c:Core:test_loop: Iteration 2 failed not ok 9 - ${SRCDIR}ex_output.c:description \" ' < > & $tab_nl_X_bs end:test_xml_esc_fail_msg: fail \" ' < > & $tab_nl_X_bs message 1..9"` else expected_normal_tap=`printf "ok 1 - ${SRCDIR}ex_output.c:Core:test_pass: Passed not ok 2 - ${SRCDIR}ex_output.c:Core:test_fail: Failure ok 3 - ${SRCDIR}ex_output.c:Core:test_pass2: Passed not ok 4 - ${SRCDIR}ex_output.c:Core:test_loop: Iteration 0 failed ok 5 - ${SRCDIR}ex_output.c:Core:test_loop: Passed not ok 6 - ${SRCDIR}ex_output.c:Core:test_loop: Iteration 2 failed not ok 7 - ${SRCDIR}ex_output.c:description \" ' < > & $tab_nl_X_bs end:test_xml_esc_fail_msg: fail \" ' < > & $tab_nl_X_bs message 1..7"` # When fork() is unavailable, one of the tests # will invoke exit() which will terminate the # unit testing program. In that case, the tap # results will be incomplete, but the required # test plan will be missing, signaling that # something bad happened. expected_aborted_tap="ok 1 - ${SRCDIR}ex_output.c:Core:test_pass: Passed not ok 2 - ${SRCDIR}ex_output.c:Core:test_fail: Failure" fi