diff options
Diffstat (limited to 'contrib/atf/atf-report/integration_test.sh')
-rw-r--r-- | contrib/atf/atf-report/integration_test.sh | 448 |
1 files changed, 0 insertions, 448 deletions
diff --git a/contrib/atf/atf-report/integration_test.sh b/contrib/atf/atf-report/integration_test.sh deleted file mode 100644 index b19346a..0000000 --- a/contrib/atf/atf-report/integration_test.sh +++ /dev/null @@ -1,448 +0,0 @@ -# -# Automated Testing Framework (atf) -# -# Copyright (c) 2007 The NetBSD Foundation, Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND -# CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, -# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -# IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# - -create_helpers() -{ - mkdir dir1 - cp $(atf_get_srcdir)/pass_helper dir1/tp1 - cp $(atf_get_srcdir)/fail_helper dir1/tp2 - cp $(atf_get_srcdir)/pass_helper tp3 - cp $(atf_get_srcdir)/fail_helper tp4 - - cat >tp5 <<EOF -#! $(atf-config -t atf_shell) -echo foo -EOF - chmod +x tp5 - - cat >Atffile <<EOF -Content-Type: application/X-atf-atffile; version="1" - -prop: test-suite = atf - -tp: dir1 -tp: tp3 -tp: tp4 -tp: tp5 -EOF - - cat >dir1/Atffile <<EOF -Content-Type: application/X-atf-atffile; version="1" - -prop: test-suite = atf - -tp: tp1 -tp: tp2 -EOF -} - -run_helpers() -{ - mkdir etc - cat >etc/atf-run.hooks <<EOF -#! $(atf-config -t atf_shell) - -info_start_hook() -{ - atf_tps_writer_info "startinfo" "A value" -} - -info_end_hook() -{ - atf_tps_writer_info "endinfo" "Another value" -} -EOF - echo "Using atf-run to run helpers" - ATF_CONFDIR=$(pwd)/etc atf-run >tps.out 2>/dev/null - rm -rf etc -} - -atf_test_case default -default_head() -{ - atf_set "descr" "Checks that the default output uses the ticker" \ - "format" -} -default_body() -{ - create_helpers - run_helpers - - # Check that the default output uses the ticker format. - atf_check -s eq:0 -o match:'test cases' -o match:'Failed test cases' \ - -o match:'Summary for' -e empty -x 'atf-report <tps.out' -} - -# XXX The test for all expect_ values should be intermixed with the other -# tests. However, to do that, we need to migrate to using C helpers for -# simplicity in raising signals... -atf_test_case expect -expect_body() -{ - ln -s "$(atf_get_srcdir)/../atf-run/expect_helpers" . - cat >Atffile <<EOF -Content-Type: application/X-atf-atffile; version="1" - -prop: test-suite = atf - -tp: expect_helpers -EOF - run_helpers - -# NO_CHECK_STYLE_BEGIN - cat >expout <<EOF -tc, #.#, expect_helpers, death_and_exit, expected_death, Exit case -tc, #.#, expect_helpers, death_and_signal, expected_death, Signal case -tc, #.#, expect_helpers, death_but_pass, failed, Test case was expected to terminate abruptly but it continued execution -tc, #.#, expect_helpers, exit_any_and_exit, expected_exit, Call will exit -tc, #.#, expect_helpers, exit_but_pass, failed, Test case was expected to exit cleanly but it continued execution -tc, #.#, expect_helpers, exit_code_and_exit, expected_exit, Call will exit -tc, #.#, expect_helpers, fail_and_fail_check, expected_failure, And fail again: 2 checks failed as expected; see output for more details -tc, #.#, expect_helpers, fail_and_fail_requirement, expected_failure, Fail reason: The failure -tc, #.#, expect_helpers, fail_but_pass, failed, Test case was expecting a failure but none were raised -tc, #.#, expect_helpers, pass_and_pass, passed -tc, #.#, expect_helpers, pass_but_fail_check, failed, 1 checks failed; see output for more details -tc, #.#, expect_helpers, pass_but_fail_requirement, failed, Some reason -tc, #.#, expect_helpers, signal_any_and_signal, expected_signal, Call will signal -tc, #.#, expect_helpers, signal_but_pass, failed, Test case was expected to receive a termination signal but it continued execution -tc, #.#, expect_helpers, signal_no_and_signal, expected_signal, Call will signal -tc, #.#, expect_helpers, timeout_and_hang, expected_timeout, Will overrun -tc, #.#, expect_helpers, timeout_but_pass, failed, Test case was expected to hang but it continued execution -tp, #.#, expect_helpers, failed -EOF -# NO_CHECK_STYLE_END - atf_check -s eq:0 -o file:expout -e empty -x \ - "atf-report -o csv:- <tps.out | " \ - "sed -E -e 's/[0-9]+.[0-9]{6}, /#.#, /'" - -# NO_CHECK_STYLE_BEGIN - cat >expout <<EOF -expect_helpers (1/1): 17 test cases - death_and_exit: [#.#s] Expected failure: Exit case - death_and_signal: [#.#s] Expected failure: Signal case - death_but_pass: [#.#s] Failed: Test case was expected to terminate abruptly but it continued execution - exit_any_and_exit: [#.#s] Expected failure: Call will exit - exit_but_pass: [#.#s] Failed: Test case was expected to exit cleanly but it continued execution - exit_code_and_exit: [#.#s] Expected failure: Call will exit - fail_and_fail_check: [#.#s] Expected failure: And fail again: 2 checks failed as expected; see output for more details - fail_and_fail_requirement: [#.#s] Expected failure: Fail reason: The failure - fail_but_pass: [#.#s] Failed: Test case was expecting a failure but none were raised - pass_and_pass: [#.#s] Passed. - pass_but_fail_check: [#.#s] Failed: 1 checks failed; see output for more details - pass_but_fail_requirement: [#.#s] Failed: Some reason - signal_any_and_signal: [#.#s] Expected failure: Call will signal - signal_but_pass: [#.#s] Failed: Test case was expected to receive a termination signal but it continued execution - signal_no_and_signal: [#.#s] Expected failure: Call will signal - timeout_and_hang: [#.#s] Expected failure: Will overrun - timeout_but_pass: [#.#s] Failed: Test case was expected to hang but it continued execution -[#.#s] - -Test cases for known bugs: - expect_helpers:death_and_exit: Exit case - expect_helpers:death_and_signal: Signal case - expect_helpers:exit_any_and_exit: Call will exit - expect_helpers:exit_code_and_exit: Call will exit - expect_helpers:fail_and_fail_check: And fail again: 2 checks failed as expected; see output for more details - expect_helpers:fail_and_fail_requirement: Fail reason: The failure - expect_helpers:signal_any_and_signal: Call will signal - expect_helpers:signal_no_and_signal: Call will signal - expect_helpers:timeout_and_hang: Will overrun - -Failed test cases: - expect_helpers:death_but_pass, expect_helpers:exit_but_pass, expect_helpers:fail_but_pass, expect_helpers:pass_but_fail_check, expect_helpers:pass_but_fail_requirement, expect_helpers:signal_but_pass, expect_helpers:timeout_but_pass - -Summary for 1 test programs: - 1 passed test cases. - 7 failed test cases. - 9 expected failed test cases. - 0 skipped test cases. -EOF -# NO_CHECK_STYLE_END - atf_check -s eq:0 -o file:expout -e empty -x \ - "atf-report -o ticker:- <tps.out | " \ - "sed -E -e 's/[0-9]+.[0-9]{6}/#.#/'" - - # Just ensure that this does not crash for now... - atf_check -s eq:0 -o ignore -e empty -x "atf-report -o xml:- <tps.out" -} - -atf_test_case oflag -oflag_head() -{ - atf_set "descr" "Checks that the -o flag works" -} -oflag_body() -{ - create_helpers - run_helpers - - # Get the default output. - atf_check -s eq:0 -o save:stdout -e empty -x 'atf-report <tps.out' - mv stdout defout - - # Check that changing the stdout output works. - atf_check -s eq:0 -o save:stdout -e empty -x 'atf-report -o csv:- <tps.out' - atf_check -s eq:1 -o empty -e empty cmp -s defout stdout - cp stdout expcsv - - # Check that sending the output to a file does not write to stdout. - atf_check -s eq:0 -o empty -e empty -x 'atf-report -o csv:fmt.out <tps.out' - atf_check -s eq:0 -o empty -e empty cmp -s expcsv fmt.out - rm -f fmt.out - - # Check that defining two outputs using the same format works. - atf_check -s eq:0 -o empty -e empty -x \ - 'atf-report -o csv:fmt.out -o csv:fmt2.out <tps.out' - atf_check -s eq:0 -o empty -e empty cmp -s expcsv fmt.out - atf_check -s eq:0 -o empty -e empty cmp -s fmt.out fmt2.out - rm -f fmt.out fmt2.out - - # Check that defining two outputs using different formats works. - atf_check -s eq:0 -o empty -e empty -x \ - 'atf-report -o csv:fmt.out -o ticker:fmt2.out <tps.out' - atf_check -s eq:0 -o empty -e empty cmp -s expcsv fmt.out - atf_check -s eq:1 -o empty -e empty cmp -s fmt.out fmt2.out - atf_check -s eq:0 -o ignore -e empty grep "test cases" fmt2.out - atf_check -s eq:0 -o ignore -e empty grep "Failed test cases" fmt2.out - atf_check -s eq:0 -o ignore -e empty grep "Summary for" fmt2.out - rm -f fmt.out fmt2.out - - # Check that defining two outputs over the same file does not work. - atf_check -s eq:1 -o empty -e match:'more than once' -x \ - 'atf-report -o csv:fmt.out -o ticker:fmt.out <tps.out' - rm -f fmt.out - - # Check that defining two outputs over stdout (but using different - # paths) does not work. - atf_check -s eq:1 -o empty -e match:'more than once' -x \ - 'atf-report -o csv:- -o ticker:/dev/stdout <tps.out' - rm -f fmt.out -} - -atf_test_case output_csv -output_csv_head() -{ - atf_set "descr" "Checks the CSV output format" -} -output_csv_body() -{ - create_helpers - run_helpers - -# NO_CHECK_STYLE_BEGIN - cat >expout <<EOF -tc, #.#, dir1/tp1, main, passed -tp, #.#, dir1/tp1, passed -tc, #.#, dir1/tp2, main, failed, This always fails -tp, #.#, dir1/tp2, failed -tc, #.#, tp3, main, passed -tp, #.#, tp3, passed -tc, #.#, tp4, main, failed, This always fails -tp, #.#, tp4, failed -tp, #.#, tp5, bogus, Invalid format for test case list: 1: Unexpected token \`<<NEWLINE>>'; expected \`:' -EOF -# NO_CHECK_STYLE_END - - atf_check -s eq:0 -o file:expout -e empty -x \ - "atf-report -o csv:- <tps.out | sed -E -e 's/[0-9]+.[0-9]{6}, /#.#, /'" -} - -atf_test_case output_ticker -output_ticker_head() -{ - atf_set "descr" "Checks the ticker output format" -} -output_ticker_body() -{ - create_helpers - run_helpers - -# NO_CHECK_STYLE_BEGIN - cat >expout <<EOF -dir1/tp1 (1/5): 1 test cases - main: [#.#s] Passed. -[#.#s] - -dir1/tp2 (2/5): 1 test cases - main: [#.#s] Failed: This always fails -[#.#s] - -tp3 (3/5): 1 test cases - main: [#.#s] Passed. -[#.#s] - -tp4 (4/5): 1 test cases - main: [#.#s] Failed: This always fails -[#.#s] - -tp5 (5/5): 0 test cases -tp5: BOGUS TEST PROGRAM: Cannot trust its results because of \`Invalid format for test case list: 1: Unexpected token \`<<NEWLINE>>'; expected \`:'' -[#.#s] - -Failed (bogus) test programs: - tp5 - -Failed test cases: - dir1/tp2:main, tp4:main - -Summary for 5 test programs: - 2 passed test cases. - 2 failed test cases. - 0 expected failed test cases. - 0 skipped test cases. -EOF - - atf_check -s eq:0 -o file:expout -e empty -x \ - "atf-report -o ticker:- <tps.out | sed -E -e 's/[0-9]+.[0-9]{6}/#.#/'" -} -# NO_CHECK_STYLE_END - -atf_test_case output_xml -output_xml_head() -{ - atf_set "descr" "Checks the XML output format" -} -output_xml_body() -{ - create_helpers - run_helpers - -# NO_CHECK_STYLE_BEGIN - cat >expout <<EOF -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE tests-results PUBLIC "-//NetBSD//DTD ATF Tests Results 0.1//EN" "http://www.NetBSD.org/XML/atf/tests-results.dtd"> - -<tests-results> -<info class="startinfo">A value</info> -<tp id="dir1/tp1"> -<tc id="main"> -<passed /> -<tc-time>#.#</tc-time></tc> -<tp-time>#.#</tp-time></tp> -<tp id="dir1/tp2"> -<tc id="main"> -<failed>This always fails</failed> -<tc-time>#.#</tc-time></tc> -<tp-time>#.#</tp-time></tp> -<tp id="tp3"> -<tc id="main"> -<passed /> -<tc-time>#.#</tc-time></tc> -<tp-time>#.#</tp-time></tp> -<tp id="tp4"> -<tc id="main"> -<failed>This always fails</failed> -<tc-time>#.#</tc-time></tc> -<tp-time>#.#</tp-time></tp> -<tp id="tp5"> -<failed>Invalid format for test case list: 1: Unexpected token \`<<NEWLINE>>'; expected \`:'</failed> -<tp-time>#.#</tp-time></tp> -<info class="endinfo">Another value</info> -</tests-results> -EOF -# NO_CHECK_STYLE_END - - atf_check -s eq:0 -o file:expout -e empty -x \ - "atf-report -o xml:- < tps.out | sed -E -e 's/>[0-9]+.[0-9]{6}</>#.#</'" -} - -atf_test_case output_xml_space -output_xml_space_head() -{ - atf_set "descr" "Checks that the XML output format properly preserves" \ - "leading and trailing whitespace in stdout and stderr" \ - "lines" -} -output_xml_space_body() -{ - cp $(atf_get_srcdir)/misc_helpers . - cat >Atffile <<EOF -Content-Type: application/X-atf-atffile; version="1" - -prop: test-suite = atf - -tp: misc_helpers -EOF - -# NO_CHECK_STYLE_BEGIN - cat >expout <<EOF -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE tests-results PUBLIC "-//NetBSD//DTD ATF Tests Results 0.1//EN" "http://www.NetBSD.org/XML/atf/tests-results.dtd"> - -<tests-results> -<info class="startinfo">A value</info> -<tp id="misc_helpers"> -<tc id="diff"> -<so>--- a 2007-11-04 14:00:41.000000000 +0100</so> -<so>+++ b 2007-11-04 14:00:48.000000000 +0100</so> -<so>@@ -1,7 +1,7 @@</so> -<so> This test is meant to simulate a diff.</so> -<so> Blank space at beginning of context lines must be preserved.</so> -<so> </so> -<so>-First original line.</so> -<so>-Second original line.</so> -<so>+First modified line.</so> -<so>+Second modified line.</so> -<so> </so> -<so> EOF</so> -<passed /> -<tc-time>#.#</tc-time></tc> -<tp-time>#.#</tp-time></tp> -<info class="endinfo">Another value</info> -</tests-results> -EOF -# NO_CHECK_STYLE_END - - run_helpers - atf_check -s eq:0 -o file:expout -e empty -x \ - "atf-report -o xml:- <tps.out | sed -E -e 's/>[0-9]+.[0-9]{6}</>#.#</'" -} - -atf_test_case too_many_args -too_many_args_body() -{ - cat >experr <<EOF -atf-report: ERROR: No arguments allowed -EOF - atf_check -s eq:1 -o empty -e file:experr atf-report foo -} - -atf_init_test_cases() -{ - atf_add_test_case default - atf_add_test_case expect - atf_add_test_case oflag - atf_add_test_case output_csv - atf_add_test_case output_ticker - atf_add_test_case output_xml - atf_add_test_case output_xml_space - atf_add_test_case too_many_args -} - -# vim: syntax=sh:expandtab:shiftwidth=4:softtabstop=4 |