diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-05 18:37:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-05 18:37:14 +0000 |
commit | ea648e70a989cca190cd7403fe892fd2dcc290b4 (patch) | |
tree | e2b6b1c647da68b0d4d66082835e256eb30970e8 /unit/atf-src/bootstrap | |
parent | Initial commit. (diff) | |
download | bind9-ea648e70a989cca190cd7403fe892fd2dcc290b4.tar.xz bind9-ea648e70a989cca190cd7403fe892fd2dcc290b4.zip |
Adding upstream version 1:9.11.5.P4+dfsg.upstream/1%9.11.5.P4+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'unit/atf-src/bootstrap')
21 files changed, 7696 insertions, 0 deletions
diff --git a/unit/atf-src/bootstrap/Makefile.am.inc b/unit/atf-src/bootstrap/Makefile.am.inc new file mode 100644 index 0000000..fd80d80 --- /dev/null +++ b/unit/atf-src/bootstrap/Makefile.am.inc @@ -0,0 +1,114 @@ +# 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. + +check_PROGRAMS = bootstrap/h_app_empty +bootstrap_h_app_empty_SOURCES = bootstrap/h_app_empty.cpp +bootstrap_h_app_empty_LDADD = tools/libtools.a $(ATF_CXX_LIBS) + +check_PROGRAMS += bootstrap/h_app_opts_args +bootstrap_h_app_opts_args_SOURCES = bootstrap/h_app_opts_args.cpp +bootstrap_h_app_opts_args_LDADD = tools/libtools.a $(ATF_CXX_LIBS) + +check_PROGRAMS += bootstrap/h_tp_basic_c +bootstrap_h_tp_basic_c_SOURCES = bootstrap/h_tp_basic_c.c +bootstrap_h_tp_basic_c_LDADD = libatf-c.la + +check_PROGRAMS += bootstrap/h_tp_basic_cpp +bootstrap_h_tp_basic_cpp_SOURCES = bootstrap/h_tp_basic_cpp.cpp +bootstrap_h_tp_basic_cpp_LDADD = $(ATF_CXX_LIBS) + +check_SCRIPTS = bootstrap/h_tp_basic_sh +CLEANFILES += bootstrap/h_tp_basic_sh +EXTRA_DIST += bootstrap/h_tp_basic_sh.sh +bootstrap/h_tp_basic_sh: $(srcdir)/bootstrap/h_tp_basic_sh.sh + $(AM_V_GEN)src=$(srcdir)/bootstrap/h_tp_basic_sh.sh; dst=$@; $(BUILD_SH_TP) + +check_SCRIPTS += bootstrap/h_tp_atf_check_sh +CLEANFILES += bootstrap/h_tp_atf_check_sh +EXTRA_DIST += bootstrap/h_tp_atf_check_sh.sh +bootstrap/h_tp_atf_check_sh: \ + $(srcdir)/bootstrap/h_tp_atf_check_sh.sh + $(AM_V_GEN)src=$(srcdir)/bootstrap/h_tp_atf_check_sh.sh; dst=$@; $(BUILD_SH_TP) + +check_SCRIPTS += bootstrap/h_tp_fail +CLEANFILES += bootstrap/h_tp_fail +EXTRA_DIST += bootstrap/h_tp_fail.sh +bootstrap/h_tp_fail: $(srcdir)/bootstrap/h_tp_fail.sh + $(AM_V_GEN)src=$(srcdir)/bootstrap/h_tp_fail.sh; dst=$@; $(BUILD_SH_TP) + +check_SCRIPTS += bootstrap/h_tp_pass +CLEANFILES += bootstrap/h_tp_pass +EXTRA_DIST += bootstrap/h_tp_pass.sh +bootstrap/h_tp_pass: $(srcdir)/bootstrap/h_tp_pass.sh + $(AM_V_GEN)src=$(srcdir)/bootstrap/h_tp_pass.sh; dst=$@; $(BUILD_SH_TP) + +DISTCLEANFILES = \ + bootstrap/atconfig \ + testsuite.lineno \ + testsuite.log + +distclean-local: + -rm -rf testsuite.dir + +EXTRA_DIST += bootstrap/testsuite \ + bootstrap/package.m4 \ + bootstrap/testsuite.at \ + $(testsuite_incs) + +testsuite_incs= $(srcdir)/bootstrap/t_application_help.at \ + $(srcdir)/bootstrap/t_application_opts_args.at \ + $(srcdir)/bootstrap/t_atf_config.at \ + $(srcdir)/bootstrap/t_atf_run.at \ + $(srcdir)/bootstrap/t_subr_atf_check.at \ + $(srcdir)/bootstrap/t_test_program_compare.at \ + $(srcdir)/bootstrap/t_test_program_filter.at \ + $(srcdir)/bootstrap/t_test_program_list.at \ + $(srcdir)/bootstrap/t_test_program_run.at + +@target_srcdir@bootstrap/package.m4: $(top_srcdir)/configure.ac + { \ + echo '# Signature of the current package.'; \ + echo 'm4_define(AT_PACKAGE_NAME, @PACKAGE_NAME@)'; \ + echo 'm4_define(AT_PACKAGE_TARNAME, @PACKAGE_TARNAME@)'; \ + echo 'm4_define(AT_PACKAGE_VERSION, @PACKAGE_VERSION@)'; \ + echo 'm4_define(AT_PACKAGE_STRING, @PACKAGE_STRING@)'; \ + echo 'm4_define(AT_PACKAGE_BUGREPORT, @PACKAGE_BUGREPORT@)'; \ + echo 'm4_define(ENABLE_TOOLS, @ENABLE_TOOLS@)'; \ + } >$(srcdir)/bootstrap/package.m4 + +@target_srcdir@bootstrap/testsuite: $(srcdir)/bootstrap/testsuite.at \ + $(testsuite_incs) \ + @target_srcdir@bootstrap/package.m4 + autom4te --language=Autotest -I $(srcdir) \ + -I $(srcdir)/bootstrap \ + $(srcdir)/bootstrap/testsuite.at -o $@.tmp + mv $@.tmp $@ + +INSTALLCHECK_TARGETS += installcheck-bootstrap +PHONY_TARGETS += installcheck-bootstrap +installcheck-bootstrap: @target_srcdir@bootstrap/testsuite check + $(TESTS_ENVIRONMENT) $(srcdir)/bootstrap/testsuite + +# vim: syntax=make:noexpandtab:shiftwidth=8:softtabstop=8 diff --git a/unit/atf-src/bootstrap/h_app_empty.cpp b/unit/atf-src/bootstrap/h_app_empty.cpp new file mode 100644 index 0000000..9656f00 --- /dev/null +++ b/unit/atf-src/bootstrap/h_app_empty.cpp @@ -0,0 +1,62 @@ +// +// 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. +// + +#include <cstdlib> + +#include "tools/application.hpp" + +class h_app_empty : public tools::application::app { + static const char* m_description; + +public: + h_app_empty(void); + + int main(void); +}; + +const char* h_app_empty::m_description = + "A helper application for the bootstrap test suite that does nothing " + "on its own and redefines no methods."; + +h_app_empty::h_app_empty(void) : + app(m_description, "h_app_empty(1)", "atf(7)") +{ +} + +int +h_app_empty::main(void) +{ + return EXIT_SUCCESS; +} + +int +main(int argc, char* const* argv) +{ + return h_app_empty().run(argc, argv); +} diff --git a/unit/atf-src/bootstrap/h_app_opts_args.cpp b/unit/atf-src/bootstrap/h_app_opts_args.cpp new file mode 100644 index 0000000..f05a6b2 --- /dev/null +++ b/unit/atf-src/bootstrap/h_app_opts_args.cpp @@ -0,0 +1,102 @@ +// +// 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. +// + +#include <cstdlib> +#include <iostream> + +#include "tools/application.hpp" + +class h_app_opts_args : public tools::application::app { + static const char* m_description; + + std::string specific_args(void) const; + options_set specific_options(void) const; + void process_option(int, const char*); + +public: + h_app_opts_args(void); + + int main(void); +}; + +const char* h_app_opts_args::m_description = + "A helper application for the bootstrap test suite that redefines the " + "methods to specify custom options and arguments."; + +h_app_opts_args::h_app_opts_args(void) : + app(m_description, "h_app_opts_args(1)", "atf(7)") +{ +} + +std::string +h_app_opts_args::specific_args(void) + const +{ + return "<arg1> <arg2>"; +} + +h_app_opts_args::options_set +h_app_opts_args::specific_options(void) + const +{ + using tools::application::option; + options_set opts; + opts.insert(option('d', "", "Debug mode")); + opts.insert(option('v', "level", "Verbosity level")); + return opts; +} + +void +h_app_opts_args::process_option(int ch, const char* arg) +{ + switch (ch) { + case 'd': + std::cout << "-d given\n"; + break; + + case 'v': + std::cout << "-v given with argument " << arg << "\n"; + break; + + default: + std::abort(); + } +} + +int +h_app_opts_args::main(void) +{ + return EXIT_SUCCESS; +} + +int +main(int argc, char* const* argv) +{ + return h_app_opts_args().run(argc, argv); +} diff --git a/unit/atf-src/bootstrap/h_tp_atf_check_sh.sh b/unit/atf-src/bootstrap/h_tp_atf_check_sh.sh new file mode 100644 index 0000000..a503769 --- /dev/null +++ b/unit/atf-src/bootstrap/h_tp_atf_check_sh.sh @@ -0,0 +1,300 @@ +# 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. + +atf_test_case exitcode_0_0 +exitcode_0_0_head() +{ + atf_set "descr" "Runs a program that returns true and expects true" +} +exitcode_0_0_body() +{ + atf_check -s eq:0 -o empty -e empty true +} + +atf_test_case exitcode_0_1 +exitcode_0_1_head() +{ + atf_set "descr" "Runs a program that returns true and expects false" +} +exitcode_0_1_body() +{ + atf_check -s eq:1 -o empty -e empty true +} + +atf_test_case exitcode_1_0 +exitcode_1_0_head() +{ + atf_set "descr" "Runs a program that returns false and expects true" +} +exitcode_1_0_body() +{ + atf_check -s eq:0 -o empty -e empty false +} + +atf_test_case exitcode_1_1 +exitcode_1_1_head() +{ + atf_set "descr" "Runs a program that returns false and expects false" +} +exitcode_1_1_body() +{ + # In Solaris, /usr/bin/false returns 255 rather than 1. Use the + # built-in version for the check. + atf_check -s eq:1 -o empty -e empty sh -c "false" +} + +atf_test_case stdout_expout_pass +stdout_expout_pass_head() +{ + atf_set "descr" "Runs a program with stdout set to expout and passes" +} +stdout_expout_pass_body() +{ + echo foo >expout + atf_check -s eq:0 -o file:expout -e empty echo foo +} + +atf_test_case stdout_expout_fail +stdout_expout_fail_head() +{ + atf_set "descr" "Runs a program with stdout set to expout and fails" +} +stdout_expout_fail_body() +{ + echo foo >expout + atf_check -s eq:0 -o file:expout -e empty echo bar +} + +atf_test_case stdout_ignore_empty +stdout_ignore_empty_head() +{ + atf_set "descr" "Runs a program with stdout set to ignore and" \ + "writes nothing" +} +stdout_ignore_empty_body() +{ + atf_check -s eq:0 -o ignore -e empty true +} + +atf_test_case stdout_ignore_sth +stdout_ignore_sth_head() +{ + atf_set "descr" "Runs a program with stdout set to ignore and" \ + "writes something" +} +stdout_ignore_sth_body() +{ + atf_check -s eq:0 -o ignore -e empty echo foo +} + +atf_test_case stdout_null_empty +stdout_null_empty_head() +{ + atf_set "descr" "Runs a program with stdout set to null and" \ + "writes nothing" +} +stdout_null_empty_body() +{ + atf_check -s eq:0 -o empty -e empty true +} + +atf_test_case stdout_null_sth +stdout_null_sth_head() +{ + atf_set "descr" "Runs a program with stdout set to null and" \ + "writes something" +} +stdout_null_sth_body() +{ + atf_check -s eq:0 -o empty -e empty echo foo +} + +atf_test_case stdout_stdout_written +stdout_stdout_written_head() +{ + atf_set "descr" "Runs a program with stdout set to stdout and" \ + "writes something" +} +stdout_stdout_written_body() +{ + atf_check -s eq:0 -o save:stdout -e empty echo foo + echo foo >aux + cmp -s stdout aux || atf_fail "Test failed" +} + +atf_test_case stdout_match_ok +stdout_match_ok_head() +{ + atf_set "descr" "Runs a program with stdout set to match and" \ + "matches the regular expression" +} +stdout_match_ok_body() +{ + atf_check -s eq:0 -o 'match:bar$' -e empty -x "echo line; echo foo bar" +} + +atf_test_case stdout_match_fail +stdout_match_fail_head() +{ + atf_set "descr" "Runs a program with stdout set to match and" \ + "does not match the regular expression" +} +stdout_match_fail_body() +{ + atf_check -s eq:0 -o 'match:bar$' -e empty -x "echo line; echo foo bar baz" +} + +atf_test_case stderr_experr_pass +stderr_experr_pass_head() +{ + atf_set "descr" "Runs a program with stderr set to experr and passes" +} +stderr_experr_pass_body() +{ + echo foo >experr + atf_check -s eq:0 -o empty -e file:experr -x 'echo foo 1>&2' +} + +atf_test_case stderr_experr_fail +stderr_experr_fail_head() +{ + atf_set "descr" "Runs a program with stderr set to experr and fails" +} +stderr_experr_fail_body() +{ + echo foo >experr + atf_check -s eq:0 -o empty -e file:stderr -x 'echo bar 1>&2' +} + +atf_test_case stderr_ignore_empty +stderr_ignore_empty_head() +{ + atf_set "descr" "Runs a program with stderr set to ignore and" \ + "writes nothing" +} +stderr_ignore_empty_body() +{ + atf_check -s eq:0 -o empty -e ignore -x 'true 1>&2' +} + +atf_test_case stderr_ignore_sth +stderr_ignore_sth_head() +{ + atf_set "descr" "Runs a program with stderr set to ignore and" \ + "writes something" +} +stderr_ignore_sth_body() +{ + atf_check -s eq:0 -o empty -e ignore -x 'echo foo 1>&2' +} + +atf_test_case stderr_null_empty +stderr_null_empty_head() +{ + atf_set "descr" "Runs a program with stderr set to null and" \ + "writes nothing" +} +stderr_null_empty_body() +{ + atf_check -s eq:0 -o empty -e empty -x 'true 1>&2' +} + +atf_test_case stderr_null_sth +stderr_null_sth_head() +{ + atf_set "descr" "Runs a program with stderr set to null and" \ + "writes something" +} +stderr_null_sth_body() +{ + atf_check -s eq:0 -o empty -e empty -x 'echo foo 1>&2' +} + +atf_test_case stderr_stderr_written +stderr_stderr_written_head() +{ + atf_set "descr" "Runs a program with stderr set to stderr and" \ + "writes something" +} +stderr_stderr_written_body() +{ + atf_check -s eq:0 -o empty -e save:stderr -x 'echo foo 1>&2' + echo foo >aux + cmp -s stderr aux || atf_fail "Test failed" +} + +atf_test_case stderr_match_ok +stderr_match_ok_head() +{ + atf_set "descr" "Runs a program with stderr set to match and" \ + "matches the regular expression" +} +stderr_match_ok_body() +{ + atf_check -s eq:0 -o empty -e 'match:bar$' -x \ + "echo line 1>&2; echo foo bar 1>&2" +} + +atf_test_case stderr_match_fail +stderr_match_fail_head() +{ + atf_set "descr" "Runs a program with stderr set to match and" \ + "does not match the regular expression" +} +stderr_match_fail_body() +{ + atf_check -s eq:0 -o empty -e 'match:bar$' -x \ + "echo line 1>&2; echo foo bar baz 1>&2" +} + +atf_init_test_cases() +{ + atf_add_test_case exitcode_0_0 + atf_add_test_case exitcode_0_1 + atf_add_test_case exitcode_1_0 + atf_add_test_case exitcode_1_1 + + atf_add_test_case stdout_expout_pass + atf_add_test_case stdout_expout_fail + atf_add_test_case stdout_ignore_empty + atf_add_test_case stdout_ignore_sth + atf_add_test_case stdout_null_empty + atf_add_test_case stdout_null_sth + atf_add_test_case stdout_stdout_written + atf_add_test_case stdout_match_ok + atf_add_test_case stdout_match_fail + + atf_add_test_case stderr_experr_pass + atf_add_test_case stderr_experr_fail + atf_add_test_case stderr_ignore_empty + atf_add_test_case stderr_ignore_sth + atf_add_test_case stderr_null_empty + atf_add_test_case stderr_null_sth + atf_add_test_case stderr_stderr_written + atf_add_test_case stderr_match_ok + atf_add_test_case stderr_match_fail +} + +# vim: syntax=sh:expandtab:shiftwidth=4:softtabstop=4 diff --git a/unit/atf-src/bootstrap/h_tp_basic_c.c b/unit/atf-src/bootstrap/h_tp_basic_c.c new file mode 100644 index 0000000..6e74ef7 --- /dev/null +++ b/unit/atf-src/bootstrap/h_tp_basic_c.c @@ -0,0 +1,79 @@ +/* Copyright (c) 2008 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. */ + +#include <atf-c.h> + +#include "atf-c/error.h" + +ATF_TC(pass); +ATF_TC_HEAD(pass, tc) +{ + atf_tc_set_md_var(tc, "descr", "An empty test case that always passes"); +} +ATF_TC_BODY(pass, tc) +{ + atf_tc_pass(); +} + +ATF_TC(fail); +ATF_TC_HEAD(fail, tc) +{ + atf_tc_set_md_var(tc, "descr", "An empty test case that always fails"); +} +ATF_TC_BODY(fail, tc) +{ + atf_tc_fail("On purpose"); +} + +ATF_TC(skip); +ATF_TC_HEAD(skip, tc) +{ + atf_tc_set_md_var(tc, "descr", "An empty test case that is always " + "skipped"); +} +ATF_TC_BODY(skip, tc) +{ + atf_tc_skip("By design"); +} + +ATF_TC(default); +ATF_TC_HEAD(default, tc) +{ + atf_tc_set_md_var(tc, "descr", "A test case that passes without " + "explicitly stating it"); +} +ATF_TC_BODY(default, tc) +{ +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, pass); + ATF_TP_ADD_TC(tp, fail); + ATF_TP_ADD_TC(tp, skip); + ATF_TP_ADD_TC(tp, default); + + return atf_no_error(); +} diff --git a/unit/atf-src/bootstrap/h_tp_basic_cpp.cpp b/unit/atf-src/bootstrap/h_tp_basic_cpp.cpp new file mode 100644 index 0000000..ded8243 --- /dev/null +++ b/unit/atf-src/bootstrap/h_tp_basic_cpp.cpp @@ -0,0 +1,82 @@ +// 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. + +#include <atf-c++.hpp> + +ATF_TEST_CASE(pass); + +ATF_TEST_CASE_HEAD(pass) +{ + set_md_var("descr", "An empty test case that always passes"); +} + +ATF_TEST_CASE_BODY(pass) +{ + ATF_PASS(); +} + +ATF_TEST_CASE(fail); + +ATF_TEST_CASE_HEAD(fail) +{ + set_md_var("descr", "An empty test case that always fails"); +} + +ATF_TEST_CASE_BODY(fail) +{ + ATF_FAIL("On purpose"); +} + +ATF_TEST_CASE(skip); + +ATF_TEST_CASE_HEAD(skip) +{ + set_md_var("descr", "An empty test case that is always skipped"); +} + +ATF_TEST_CASE_BODY(skip) +{ + ATF_SKIP("By design"); +} + +ATF_TEST_CASE(default); + +ATF_TEST_CASE_HEAD(default) +{ + set_md_var("descr", "A test case that passes without explicitly " + "stating it"); +} + +ATF_TEST_CASE_BODY(default) +{ +} + +ATF_INIT_TEST_CASES(tcs) +{ + ATF_ADD_TEST_CASE(tcs, pass); + ATF_ADD_TEST_CASE(tcs, fail); + ATF_ADD_TEST_CASE(tcs, skip); + ATF_ADD_TEST_CASE(tcs, default); +} diff --git a/unit/atf-src/bootstrap/h_tp_basic_sh.sh b/unit/atf-src/bootstrap/h_tp_basic_sh.sh new file mode 100644 index 0000000..b05debb --- /dev/null +++ b/unit/atf-src/bootstrap/h_tp_basic_sh.sh @@ -0,0 +1,75 @@ +# 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. + +atf_test_case pass +pass_head() +{ + atf_set "descr" "An empty test case that always passes" +} +pass_body() +{ + atf_pass +} + +atf_test_case fail +fail_head() +{ + atf_set "descr" "An empty test case that always fails" +} +fail_body() +{ + atf_fail "On purpose" +} + +atf_test_case skip +skip_head() +{ + atf_set "descr" "An empty test case that is always skipped" +} +skip_body() +{ + atf_skip "By design" +} + +atf_test_case default +default_head() +{ + atf_set "descr" "A test case that passes without explicitly" \ + "stating it" +} +default_body() +{ + : +} + +atf_init_test_cases() +{ + atf_add_test_case pass + atf_add_test_case fail + atf_add_test_case skip + atf_add_test_case default +} + +# vim: syntax=sh:expandtab:shiftwidth=4:softtabstop=4 diff --git a/unit/atf-src/bootstrap/h_tp_fail.sh b/unit/atf-src/bootstrap/h_tp_fail.sh new file mode 100644 index 0000000..ac47d2f --- /dev/null +++ b/unit/atf-src/bootstrap/h_tp_fail.sh @@ -0,0 +1,43 @@ +# Copyright (c) 2009 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. + +atf_test_case @TC_NAME@ +@TC_NAME@_head() +{ + atf_set "descr" "An empty test case that always fails" +} +@TC_NAME@_body() +{ + echo "ignore-me" + echo "ignore-me" 1>&2 + atf_fail "No reason" +} + +atf_init_test_cases() +{ + atf_add_test_case @TC_NAME@ +} + +# vim: syntax=sh:expandtab:shiftwidth=4:softtabstop=4 diff --git a/unit/atf-src/bootstrap/h_tp_pass.sh b/unit/atf-src/bootstrap/h_tp_pass.sh new file mode 100644 index 0000000..dd6a5a8 --- /dev/null +++ b/unit/atf-src/bootstrap/h_tp_pass.sh @@ -0,0 +1,43 @@ +# Copyright (c) 2009 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. + +atf_test_case @TC_NAME@ +@TC_NAME@_head() +{ + atf_set "descr" "An empty test case that always passes" +} +@TC_NAME@_body() +{ + echo "ignore-me" + echo "ignore-me" 1>&2 + atf_pass +} + +atf_init_test_cases() +{ + atf_add_test_case @TC_NAME@ +} + +# vim: syntax=sh:expandtab:shiftwidth=4:softtabstop=4 diff --git a/unit/atf-src/bootstrap/package.m4 b/unit/atf-src/bootstrap/package.m4 new file mode 100644 index 0000000..2b14854 --- /dev/null +++ b/unit/atf-src/bootstrap/package.m4 @@ -0,0 +1,7 @@ +# Signature of the current package. +m4_define(AT_PACKAGE_NAME, Automated Testing Framework) +m4_define(AT_PACKAGE_TARNAME, atf) +m4_define(AT_PACKAGE_VERSION, 0.17) +m4_define(AT_PACKAGE_STRING, Automated Testing Framework 0.17) +m4_define(AT_PACKAGE_BUGREPORT, atf-devel@NetBSD.org) +m4_define(ENABLE_TOOLS, yes) diff --git a/unit/atf-src/bootstrap/t_application_help.at b/unit/atf-src/bootstrap/t_application_help.at new file mode 100644 index 0000000..7686fea --- /dev/null +++ b/unit/atf-src/bootstrap/t_application_help.at @@ -0,0 +1,40 @@ +dnl +dnl Automated Testing Framework (atf) +dnl +dnl Copyright (c) 2007 The NetBSD Foundation, Inc. +dnl All rights reserved. +dnl +dnl Redistribution and use in source and binary forms, with or without +dnl modification, are permitted provided that the following conditions +dnl are met: +dnl 1. Redistributions of source code must retain the above copyright +dnl notice, this list of conditions and the following disclaimer. +dnl 2. Redistributions in binary form must reproduce the above copyright +dnl notice, this list of conditions and the following disclaimer in the +dnl documentation and/or other materials provided with the distribution. +dnl +dnl THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND +dnl CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +dnl INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +dnl IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY +dnl DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +dnl DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +dnl GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +dnl INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +dnl IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +dnl OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +dnl IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +dnl + +AT_SETUP([application: online help option]) + +AT_CHECK([APP_HELPER(app_empty)], 0, [stdout], []) +AT_CHECK([grep 'Available options' stdout], 1, [ignore], []) + +AT_CHECK([APP_HELPER(app_empty) -h], 0, [stdout], []) +AT_CHECK([grep 'Available options' stdout], 0, [ignore], []) + +AT_CLEANUP() + +dnl vim: syntax=m4:expandtab:shiftwidth=4:softtabstop=4 diff --git a/unit/atf-src/bootstrap/t_application_opts_args.at b/unit/atf-src/bootstrap/t_application_opts_args.at new file mode 100644 index 0000000..0c36cef --- /dev/null +++ b/unit/atf-src/bootstrap/t_application_opts_args.at @@ -0,0 +1,86 @@ +dnl +dnl Automated Testing Framework (atf) +dnl +dnl Copyright (c) 2007 The NetBSD Foundation, Inc. +dnl All rights reserved. +dnl +dnl Redistribution and use in source and binary forms, with or without +dnl modification, are permitted provided that the following conditions +dnl are met: +dnl 1. Redistributions of source code must retain the above copyright +dnl notice, this list of conditions and the following disclaimer. +dnl 2. Redistributions in binary form must reproduce the above copyright +dnl notice, this list of conditions and the following disclaimer in the +dnl documentation and/or other materials provided with the distribution. +dnl +dnl THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND +dnl CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +dnl INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +dnl IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY +dnl DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +dnl DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +dnl GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +dnl INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +dnl IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +dnl OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +dnl IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +dnl + +AT_SETUP([application: arguments and options handling]) + +dnl Check that an application that does not redefine any method does +dnl not show strange flags in the usage message. +AT_CHECK([APP_HELPER(app_empty) -h], 0, [stdout], []) +AT_CHECK([grep ' -d ' stdout], 1, [ignore], []) +AT_CHECK([grep ' -h ' stdout], 0, [ignore], []) +AT_CHECK([grep ' -v ' stdout], 1, [ignore], []) +AT_CHECK([grep ' -z ' stdout], 1, [ignore], []) + +dnl Check that an application that adds its own options shows them in +dnl the usage message. +AT_CHECK([APP_HELPER(app_opts_args) -h], 0, [stdout], []) +AT_CHECK([grep ' -d ' stdout], 0, [ignore], []) +AT_CHECK([grep ' -h ' stdout], 0, [ignore], []) +AT_CHECK([grep ' -v ' stdout], 0, [ignore], []) +AT_CHECK([grep ' -z ' stdout], 1, [ignore], []) + +dnl Check that an application that does not redefine any method does +dnl not recognize strange flags. +AT_CHECK([APP_HELPER(app_empty) -d], 1, [], [stderr]) +AT_CHECK([grep 'Unknown option.*-d' stderr], 0, [ignore], []) +AT_CHECK([APP_HELPER(app_empty) -v], 1, [], [stderr]) +AT_CHECK([grep 'Unknown option.*-v' stderr], 0, [ignore], []) +AT_CHECK([APP_HELPER(app_empty) -z], 1, [], [stderr]) +AT_CHECK([grep 'Unknown option.*-z' stderr], 0, [ignore], []) + +dnl Check that an application that adds its own options is able to +dnl properly handle them. +AT_CHECK([APP_HELPER(app_opts_args) -d], 0, [stdout], []) +AT_CHECK([grep -- '-d given' stdout], 0, [ignore], []) +AT_CHECK([APP_HELPER(app_opts_args) -v], 1, [], [stderr]) +AT_CHECK([grep 'Option.*-v.*requires an argument' stderr], 0, [ignore], []) +AT_CHECK([APP_HELPER(app_opts_args) -v foo], 0, [stdout], []) +AT_CHECK([grep -- '-v given with argument foo' stdout], 0, [ignore], []) +AT_CHECK([APP_HELPER(app_opts_args) -z], 1, [], [stderr]) +AT_CHECK([grep 'Unknown option.*-z' stderr], 0, [ignore], []) + +dnl Check that option processing stops after an argument. +AT_CHECK([APP_HELPER(app_opts_args) -- -d], 0, [stdout], []) +AT_CHECK([grep -- '-d given' stdout], 1, [], []) +AT_CHECK([APP_HELPER(app_opts_args) arg -d], 0, [stdout], []) +AT_CHECK([grep -- '-d given' stdout], 1, [], []) + +dnl Check that an application that does not redefine any method does +dnl not show unexpected arguments in the usage message. +AT_CHECK([APP_HELPER(app_empty) -h], 0, [stdout], []) +AT_CHECK([grep '\@<:@options\@:>@$' stdout], 0, [ignore], []) + +dnl Check that an application that defines the arguments it takes +dnl shows them in the usage message. +AT_CHECK([APP_HELPER(app_opts_args) -h], 0, [stdout], []) +AT_CHECK([grep '\@<:@options\@:>@ <arg1> <arg2>' stdout], 0, [ignore], []) + +AT_CLEANUP() + +dnl vim: syntax=m4:expandtab:shiftwidth=4:softtabstop=4 diff --git a/unit/atf-src/bootstrap/t_atf_config.at b/unit/atf-src/bootstrap/t_atf_config.at new file mode 100644 index 0000000..a863169 --- /dev/null +++ b/unit/atf-src/bootstrap/t_atf_config.at @@ -0,0 +1,108 @@ +dnl +dnl Automated Testing Framework (atf) +dnl +dnl Copyright (c) 2007 The NetBSD Foundation, Inc. +dnl All rights reserved. +dnl +dnl Redistribution and use in source and binary forms, with or without +dnl modification, are permitted provided that the following conditions +dnl are met: +dnl 1. Redistributions of source code must retain the above copyright +dnl notice, this list of conditions and the following disclaimer. +dnl 2. Redistributions in binary form must reproduce the above copyright +dnl notice, this list of conditions and the following disclaimer in the +dnl documentation and/or other materials provided with the distribution. +dnl +dnl THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND +dnl CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +dnl INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +dnl IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY +dnl DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +dnl DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +dnl GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +dnl INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +dnl IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +dnl OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +dnl IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +dnl + +AT_SETUP([atf-config: querying of build-time variables]) +AT_TESTED(atf-config) + +all_vars="atf_arch \ + atf_build_cc \ + atf_build_cflags \ + atf_build_cpp \ + atf_build_cppflags \ + atf_build_cxx \ + atf_build_cxxflags \ + atf_confdir \ + atf_includedir \ + atf_libdir \ + atf_libexecdir \ + atf_machine \ + atf_pkgdatadir \ + atf_shell \ + atf_workdir" +all_vars_no=15 + +dnl List all variables. +AT_CHECK([atf-config], [0], [stdout], []) +AT_CHECK([COUNT_LINES(stdout, ${all_vars_no})], [0], [], []) +for v in ${all_vars}; do + AT_CHECK([grep "${v}" stdout], [0], [ignore], []) +done + +dnl Query a single variable and test terse mode. +for v in ${all_vars}; do + AT_CHECK([atf-config ${v}], [0], [stdout], []) + AT_CHECK([COUNT_LINES(stdout, 1)], [0], [], []) + AT_CHECK([grep "${v}" stdout], [0], [ignore], []) + AT_CHECK([cut -d ' ' -f 3- stdout], [0], [stdout], []) + AT_CHECK([mv stdout expout], [0], [], []) + AT_CHECK([atf-config -t ${v}], [0], [expout], []) +done + +dnl Query several variables. +AT_CHECK([atf-config atf_libexecdir atf_pkgdatadir], [0], [stdout], []) +AT_CHECK([grep 'atf_libexecdir' stdout], [0], [ignore], []) +AT_CHECK([grep 'atf_pkgdatadir' stdout], [0], [ignore], []) +AT_CHECK([COUNT_LINES(stdout, 2)], [0], [ignore], []) + +dnl Query a non-existent variable. +AT_CHECK([atf-config non_existent], [1], [], [stderr]) +AT_CHECK([grep 'Unknown variable.*non_existent' stderr], [0], [ignore], []) + +dnl Query an existent and non-existent variable. +for v in ${all_vars}; do + AT_CHECK([atf-config ${v} non_existent], [1], [], [stderr]) + AT_CHECK([grep 'Unknown variable.*non_existent' stderr], + [0], [ignore], []) + AT_CHECK([atf-config non_existent ${v}], [1], [], [stderr]) + AT_CHECK([grep 'Unknown variable.*non_existent' stderr], + [0], [ignore], []) +done + +dnl Override every variable through the environment. +for v in ${all_vars}; do + V=$(echo ${v} | tr '@<:@a-z@:>@' '@<:@A-Z@:>@') + AT_CHECK([env ${V}=testval atf-config], [0], [stdout], []) + AT_CHECK([mv stdout all], [0], [], []) + + AT_CHECK([grep "^${v} : " all], [0], [stdout], []) + AT_CHECK([mv stdout affected], [0], [], []) + AT_CHECK([grep -v "^${v} : " all], [0], [stdout], []) + AT_CHECK([mv stdout unaffected], [0], [], []) + + AT_CHECK([COUNT_LINES(affected, 1)], [0], [ignore], []) + AT_CHECK([COUNT_LINES(unaffected, $((${all_vars_no} - 1)))], + [0], [ignore], []) + + AT_CHECK([grep "^${v} : testval$" affected], [0], [ignore], []) + AT_CHECK([grep ' : testval$' unaffected], [1], [], []) +done + +AT_CLEANUP() + +dnl vim: syntax=m4:expandtab:shiftwidth=4:softtabstop=4 diff --git a/unit/atf-src/bootstrap/t_atf_run.at b/unit/atf-src/bootstrap/t_atf_run.at new file mode 100644 index 0000000..db09deb --- /dev/null +++ b/unit/atf-src/bootstrap/t_atf_run.at @@ -0,0 +1,178 @@ +dnl +dnl Automated Testing Framework (atf) +dnl +dnl Copyright (c) 2007 The NetBSD Foundation, Inc. +dnl All rights reserved. +dnl +dnl Redistribution and use in source and binary forms, with or without +dnl modification, are permitted provided that the following conditions +dnl are met: +dnl 1. Redistributions of source code must retain the above copyright +dnl notice, this list of conditions and the following disclaimer. +dnl 2. Redistributions in binary form must reproduce the above copyright +dnl notice, this list of conditions and the following disclaimer in the +dnl documentation and/or other materials provided with the distribution. +dnl +dnl THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND +dnl CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +dnl INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +dnl IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY +dnl DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +dnl DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +dnl GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +dnl INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +dnl IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +dnl OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +dnl IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +dnl + +AT_SETUP([atf-run: execution of tests]) +AT_TESTED(atf-run) + +m4_define([CREATE_PASS_TEST], +[AT_CHECK([sed -e 's,@TC_NAME@,$2,g' <TEST_HELPER_NO_S(tp_pass)], + [0], [stdout], []) +AT_CHECK([mv stdout $1], [0], [], []) +AT_CHECK([chmod +x $1], [0], [], []) +]) + +m4_define([CREATE_FAIL_TEST], +[AT_CHECK([sed -e 's,@TC_NAME@,$2,g' <TEST_HELPER_NO_S(tp_fail)], + [0], [stdout], []) +AT_CHECK([mv stdout $1], [0], [], []) +AT_CHECK([chmod +x $1], [0], [], []) +]) + +AT_CHECK([mkdir top], [0], [], []) +AT_CHECK([mkdir top/dir1], [0], [], []) +AT_CHECK([mkdir top/dir2], [0], [], []) +AT_DATA([top/Atffile], +[Content-Type: application/X-atf-atffile; version="1" + +prop: test-suite = atf + +tp: dir1 +tp: dir2 +tp: test1 +tp: test2 +]) +AT_DATA([top/dir1/Atffile], +[Content-Type: application/X-atf-atffile; version="1" + +prop: test-suite = atf + +tp: test3 +]) +AT_DATA([top/dir2/Atffile], +[Content-Type: application/X-atf-atffile; version="1" + +prop: test-suite = atf + +tp: test4 +tp: test5 +]) +CREATE_PASS_TEST([top/test1], [tc_1]) +CREATE_FAIL_TEST([top/test2], [tc_2]) +CREATE_PASS_TEST([top/dir1/test3], [tc_3]) +CREATE_FAIL_TEST([top/dir2/test4], [tc_4]) +CREATE_PASS_TEST([top/dir2/test5], [tc_5]) + +AT_CHECK([cd top/dir1 && atf-run], [0], [stdout], []) +CHECK_TPS_TCR(tc_3, passed, stdout) +AT_CHECK([grep -i 'tc_@<:@1245@:>@' stdout], [1], [], []) +AT_CHECK([grep 'tc-so:ignore-me' stdout], [0], [ignore], []) +AT_CHECK([grep 'tc-se:ignore-me' stdout], [0], [ignore], []) + +AT_CHECK([cd top/dir2 && atf-run], [1], [stdout], [stderr]) +CHECK_TPS_TCR(tc_4, failed, stdout) +CHECK_TPS_TCR(tc_5, passed, stdout) +AT_CHECK([grep -i 'tc_@<:@123@:>@' stdout], [1], [], []) +AT_CHECK([grep 'tc-so:ignore-me' stdout], [0], [ignore], []) +AT_CHECK([grep 'tc-se:ignore-me' stdout], [0], [ignore], []) + +AT_CHECK([cd top && atf-run], [1], [stdout], [stderr]) +CHECK_TPS_TCR(tc_1, passed, stdout) +CHECK_TPS_TCR(tc_2, failed, stdout) +CHECK_TPS_TCR(tc_3, passed, stdout) +CHECK_TPS_TCR(tc_4, failed, stdout) +CHECK_TPS_TCR(tc_5, passed, stdout) +AT_CHECK([grep 'tc-so:ignore-me' stdout], [0], [ignore], []) +AT_CHECK([grep 'tc-se:ignore-me' stdout], [0], [ignore], []) + +dnl Repeat previous but using a glob that matches everything. +AT_DATA([top/Atffile], +[Content-Type: application/X-atf-atffile; version="1" + +prop: test-suite = atf + +tp-glob: * +]) +AT_CHECK([cd top && atf-run], [1], [stdout], [stderr]) +CHECK_TPS_TCR(tc_1, passed, stdout) +CHECK_TPS_TCR(tc_2, failed, stdout) +CHECK_TPS_TCR(tc_3, passed, stdout) +CHECK_TPS_TCR(tc_4, failed, stdout) +CHECK_TPS_TCR(tc_5, passed, stdout) +AT_CHECK([grep 'tc-so:ignore-me' stdout], [0], [ignore], []) +AT_CHECK([grep 'tc-se:ignore-me' stdout], [0], [ignore], []) + +dnl Repeat previous but using a glob that matches directories only. +AT_DATA([top/Atffile], +[Content-Type: application/X-atf-atffile; version="1" + +prop: test-suite = atf + +tp-glob: d* +]) +AT_CHECK([cd top && atf-run], [1], [stdout], [stderr]) +CHECK_TPS_TCR(tc_3, passed, stdout) +CHECK_TPS_TCR(tc_4, failed, stdout) +CHECK_TPS_TCR(tc_5, passed, stdout) +AT_CHECK([grep 'tc-so:ignore-me' stdout], [0], [ignore], []) +AT_CHECK([grep 'tc-se:ignore-me' stdout], [0], [ignore], []) + +dnl Make sure globs do not match non-executable nor hidden files. +dnl XXX This is not really part of the bootstrap test suite. Move to +dnl tests/atf/tools/t_atf_run.sh when it exists. +AT_CHECK([rm -rf top], [0], [], []) +AT_CHECK([mkdir top], [0], [], []) +CREATE_PASS_TEST([top/test1], [tc_1]) +CREATE_PASS_TEST([top/test2], [tc_2]) +CREATE_PASS_TEST([top/test3], [tc_3]) +AT_CHECK([chmod -x top/test3], [0], [], []) +CREATE_PASS_TEST([top/.test4], [tc_4]) +AT_CHECK([chmod -x top/.test4], [0], [], []) +AT_DATA([top/Atffile], +[Content-Type: application/X-atf-atffile; version="1" + +prop: test-suite = atf + +tp-glob: * +]) +AT_CHECK([cd top && atf-run], [0], [stdout], [stderr]) +CHECK_TPS_TCR(tc_1, passed, stdout) +CHECK_TPS_TCR(tc_2, passed, stdout) +AT_CHECK([grep -i 'tc_3' stdout], [1], [ignore], []) +AT_CHECK([grep -i 'tc_4' stdout], [1], [ignore], []) + +dnl Run all test cases from a test program. +AT_CHECK([rm -rf top], [0], [], []) +AT_CHECK([mkdir top], [0], [], []) +AT_CHECK([cp TEST_HELPER_NO_S(tp_basic_sh) top]) +AT_DATA([top/Atffile], +[Content-Type: application/X-atf-atffile; version="1" + +prop: test-suite = atf + +tp: h_tp_basic_sh +]) +AT_CHECK([cd top && atf-run], [1], [stdout], [stderr]) +CHECK_TPS_TCR(pass, passed, stdout) +CHECK_TPS_TCR(fail, failed, stdout) +CHECK_TPS_TCR(skip, skipped, stdout) +CHECK_TPS_TCR(default, passed, stdout) + +AT_CLEANUP() + +dnl vim: syntax=m4:expandtab:shiftwidth=4:softtabstop=4 diff --git a/unit/atf-src/bootstrap/t_subr_atf_check.at b/unit/atf-src/bootstrap/t_subr_atf_check.at new file mode 100644 index 0000000..4aca4e4 --- /dev/null +++ b/unit/atf-src/bootstrap/t_subr_atf_check.at @@ -0,0 +1,77 @@ +dnl Copyright (c) 2007 The NetBSD Foundation, Inc. +dnl All rights reserved. +dnl +dnl Redistribution and use in source and binary forms, with or without +dnl modification, are permitted provided that the following conditions +dnl are met: +dnl 1. Redistributions of source code must retain the above copyright +dnl notice, this list of conditions and the following disclaimer. +dnl 2. Redistributions in binary form must reproduce the above copyright +dnl notice, this list of conditions and the following disclaimer in the +dnl documentation and/or other materials provided with the distribution. +dnl +dnl THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND +dnl CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +dnl INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +dnl IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY +dnl DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +dnl DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +dnl GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +dnl INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +dnl IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +dnl OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +dnl IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +AT_SETUP([subr: atf_check function]) + +AT_CHECK([TEST_HELPER(tp_atf_check_sh) exitcode_0_0], + [0], [ignore], [ignore]) +AT_CHECK([TEST_HELPER(tp_atf_check_sh) exitcode_0_1], + [1], [ignore], [ignore]) +AT_CHECK([TEST_HELPER(tp_atf_check_sh) exitcode_1_0], + [1], [ignore], [ignore]) +AT_CHECK([TEST_HELPER(tp_atf_check_sh) exitcode_1_1], + [0], [ignore], [ignore]) + +AT_CHECK([TEST_HELPER(tp_atf_check_sh) stdout_expout_pass], + [0], [ignore], [ignore]) +AT_CHECK([TEST_HELPER(tp_atf_check_sh) stdout_expout_fail], + [1], [ignore], [ignore]) +AT_CHECK([TEST_HELPER(tp_atf_check_sh) stdout_ignore_empty], + [0], [ignore], [ignore]) +AT_CHECK([TEST_HELPER(tp_atf_check_sh) stdout_ignore_sth], + [0], [ignore], [ignore]) +AT_CHECK([TEST_HELPER(tp_atf_check_sh) stdout_null_empty], + [0], [ignore], [ignore]) +AT_CHECK([TEST_HELPER(tp_atf_check_sh) stdout_null_sth], + [1], [ignore], [ignore]) +AT_CHECK([TEST_HELPER(tp_atf_check_sh) stdout_stdout_written], + [0], [ignore], [ignore]) +AT_CHECK([TEST_HELPER(tp_atf_check_sh) stdout_match_ok], + [0], [ignore], [ignore]) +AT_CHECK([TEST_HELPER(tp_atf_check_sh) stdout_match_fail], + [1], [ignore], [ignore]) + +AT_CHECK([TEST_HELPER(tp_atf_check_sh) stderr_experr_pass], + [0], [ignore], [ignore]) +AT_CHECK([TEST_HELPER(tp_atf_check_sh) stderr_experr_fail], + [1], [ignore], [ignore]) +AT_CHECK([TEST_HELPER(tp_atf_check_sh) stderr_ignore_empty], + [0], [ignore], [ignore]) +AT_CHECK([TEST_HELPER(tp_atf_check_sh) stderr_ignore_sth], + [0], [ignore], [ignore]) +AT_CHECK([TEST_HELPER(tp_atf_check_sh) stderr_null_empty], + [0], [ignore], [ignore]) +AT_CHECK([TEST_HELPER(tp_atf_check_sh) stderr_null_sth], + [1], [ignore], [ignore]) +AT_CHECK([TEST_HELPER(tp_atf_check_sh) stderr_stderr_written], + [0], [ignore], [ignore]) +AT_CHECK([TEST_HELPER(tp_atf_check_sh) stderr_match_ok], + [0], [ignore], [ignore]) +AT_CHECK([TEST_HELPER(tp_atf_check_sh) stderr_match_fail], + [1], [ignore], [ignore]) + +AT_CLEANUP() + +dnl vim: syntax=m4:expandtab:shiftwidth=4:softtabstop=4 diff --git a/unit/atf-src/bootstrap/t_test_program_compare.at b/unit/atf-src/bootstrap/t_test_program_compare.at new file mode 100644 index 0000000..ebf6253 --- /dev/null +++ b/unit/atf-src/bootstrap/t_test_program_compare.at @@ -0,0 +1,182 @@ +dnl Copyright (c) 2007 The NetBSD Foundation, Inc. +dnl All rights reserved. +dnl +dnl Redistribution and use in source and binary forms, with or without +dnl modification, are permitted provided that the following conditions +dnl are met: +dnl 1. Redistributions of source code must retain the above copyright +dnl notice, this list of conditions and the following disclaimer. +dnl 2. Redistributions in binary form must reproduce the above copyright +dnl notice, this list of conditions and the following disclaimer in the +dnl documentation and/or other materials provided with the distribution. +dnl +dnl THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND +dnl CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +dnl INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +dnl IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY +dnl DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +dnl DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +dnl GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +dnl INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +dnl IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +dnl OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +dnl IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +AT_SETUP([test_program: compare the user-visible interfaces]) + +dnl No arguments. +AT_CHECK([TEST_HELPER(tp_basic_c)], [1], [], [stderr]) +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +AT_CHECK([TEST_HELPER(tp_basic_cpp)], [1], [], [experr]) +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +AT_CHECK([TEST_HELPER(tp_basic_sh)], [1], [], [experr]) + +dnl Try to ask for help, which is not bundled in. +AT_CHECK([TEST_HELPER(tp_basic_c) -h], [1], [], [stderr]) +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +AT_CHECK([TEST_HELPER(tp_basic_cpp) -h], [1], [], [experr]) +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +AT_CHECK([TEST_HELPER(tp_basic_sh) -h], [1], [], [experr]) + +dnl Give an invalid option. +AT_CHECK([TEST_HELPER(tp_basic_c) -Z], [1], [], [stderr]) +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +AT_CHECK([TEST_HELPER(tp_basic_cpp) -Z], [1], [], [experr]) +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +AT_CHECK([TEST_HELPER(tp_basic_sh) -Z], [1], [], [experr]) + +dnl List all tests. +AT_CHECK([TEST_HELPER(tp_basic_c) -l], [0], [stdout], []) +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +AT_CHECK([TEST_HELPER(tp_basic_cpp) -l], [0], [expout], []) +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +AT_CHECK([TEST_HELPER(tp_basic_sh) -l], [0], [expout], []) + +dnl Run no tests. +AT_CHECK([TEST_HELPER(tp_basic_c)], + [1], [stdout], [stderr]) +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +AT_CHECK([TEST_HELPER(tp_basic_cpp)], + [1], [expout], [experr]) +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +AT_CHECK([TEST_HELPER(tp_basic_sh)], + [1], [expout], [experr]) + +dnl Run the pass test case. +AT_CHECK([TEST_HELPER(tp_basic_c) -r resout pass], + [0], [stdout], [stderr]) +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +sed 's,tp_basic_c,tp_basic_cpp,g' <resout >resexp +AT_CHECK([TEST_HELPER(tp_basic_cpp) -r resout pass], + [0], [expout], [experr]) +AT_CHECK([cmp -s resout resexp], [0], [], []) +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +sed 's,tp_basic_c,tp_basic_sh,g' <resout >resexp +AT_CHECK([TEST_HELPER(tp_basic_sh) -r resout pass], + [0], [expout], [experr]) +AT_CHECK([cmp -s resout resexp], [0], [], []) + +dnl Run the fail test case. +AT_CHECK([TEST_HELPER(tp_basic_c) -r resout fail], + [1], [stdout], [stderr]) +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +sed 's,tp_basic_c,tp_basic_cpp,g' <resout >resexp +AT_CHECK([TEST_HELPER(tp_basic_cpp) -r resout fail], + [1], [expout], [experr]) +AT_CHECK([cmp -s resout resexp], [0], [], []) +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +sed 's,tp_basic_c,tp_basic_sh,g' <resout >resexp +AT_CHECK([TEST_HELPER(tp_basic_sh) -r resout fail], + [1], [expout], [experr]) +AT_CHECK([cmp -s resout resexp], [0], [], []) + +dnl Run the skip test case. +AT_CHECK([TEST_HELPER(tp_basic_c) -r resout skip], + [0], [stdout], [stderr]) +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +sed 's,tp_basic_c,tp_basic_cpp,g' <resout >resexp +AT_CHECK([TEST_HELPER(tp_basic_cpp) -r resout skip], + [0], [expout], [experr]) +AT_CHECK([cmp -s resout resexp], [0], [], []) +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +sed 's,tp_basic_c,tp_basic_sh,g' <resout >resexp +AT_CHECK([TEST_HELPER(tp_basic_sh) -r resout skip], + [0], [expout], [experr]) +AT_CHECK([cmp -s resout resexp], [0], [], []) + +dnl Run the default test case. +AT_CHECK([TEST_HELPER(tp_basic_c) -r resout default], + [0], [stdout], [stderr]) +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +sed 's,tp_basic_c,tp_basic_cpp,g' <resout >resexp +AT_CHECK([TEST_HELPER(tp_basic_cpp) -r resout default], + [0], [expout], [experr]) +AT_CHECK([cmp -s resout resexp], [0], [], []) +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +sed 's,tp_basic_c,tp_basic_sh,g' <resout >resexp +AT_CHECK([TEST_HELPER(tp_basic_sh) -r resout default], + [0], [expout], [experr]) +AT_CHECK([cmp -s resout resexp], [0], [], []) + +dnl Try running multiple tests. +AT_CHECK([TEST_HELPER(tp_basic_c) pass fail], + [1], [stdout], [stderr]) +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +AT_CHECK([TEST_HELPER(tp_basic_cpp) pass fail], + [1], [expout], [experr]) +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +AT_CHECK([TEST_HELPER(tp_basic_sh) pass fail], + [1], [expout], [experr]) + +dnl Run an unknown test case. +AT_CHECK([TEST_HELPER(tp_basic_c) unknown], + [1], [stdout], [stderr]) +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +AT_CHECK([TEST_HELPER(tp_basic_cpp) unknown], + [1], [expout], [experr]) +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +AT_CHECK([TEST_HELPER(tp_basic_sh) unknown], + [1], [expout], [experr]) + +dnl Try running a non-existent cleanup routine. +AT_CHECK([TEST_HELPER(tp_basic_c) pass:cleanup], + [0], [stdout], [stderr]) +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +AT_CHECK([TEST_HELPER(tp_basic_cpp) pass:cleanup], + [0], [expout], [experr]) +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +AT_CHECK([TEST_HELPER(tp_basic_sh) pass:cleanup], + [0], [expout], [experr]) + +dnl Run a test and dump the results on stdout. +AT_CHECK([TEST_HELPER(tp_basic_c) skip], + [0], [stdout], [stderr]) +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +AT_CHECK([TEST_HELPER(tp_basic_cpp) skip], + [0], [expout], [experr]) +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +AT_CHECK([TEST_HELPER(tp_basic_sh) skip], + [0], [expout], [experr]) + +AT_CLEANUP() + +dnl vim: syntax=m4:expandtab:shiftwidth=4:softtabstop=4 diff --git a/unit/atf-src/bootstrap/t_test_program_filter.at b/unit/atf-src/bootstrap/t_test_program_filter.at new file mode 100644 index 0000000..c4124a9 --- /dev/null +++ b/unit/atf-src/bootstrap/t_test_program_filter.at @@ -0,0 +1,59 @@ +dnl Copyright (c) 2007 The NetBSD Foundation, Inc. +dnl All rights reserved. +dnl +dnl Redistribution and use in source and binary forms, with or without +dnl modification, are permitted provided that the following conditions +dnl are met: +dnl 1. Redistributions of source code must retain the above copyright +dnl notice, this list of conditions and the following disclaimer. +dnl 2. Redistributions in binary form must reproduce the above copyright +dnl notice, this list of conditions and the following disclaimer in the +dnl documentation and/or other materials provided with the distribution. +dnl +dnl THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND +dnl CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +dnl INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +dnl IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY +dnl DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +dnl DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +dnl GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +dnl INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +dnl IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +dnl OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +dnl IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +AT_SETUP([test_program: filter test cases by name]) + +for h in tp_basic_c tp_basic_cpp tp_basic_sh; do + +dnl Try an invalid test case name. +AT_CHECK([TEST_HELPER(${h}) invalid], 1, [], [stderr]) +AT_CHECK([grep "Unknown test case .invalid'" stderr], + [0], [ignore], []) + +dnl Try a glob as a test case name. +AT_CHECK([TEST_HELPER(${h}) "*p*"], 1, [], [stderr]) +AT_CHECK([grep "Unknown test case .\\*p\\*'" stderr], + [0], [ignore], []) + +AT_DATA([expres], [passed +]) +AT_CHECK([TEST_HELPER(${h}) -r resout pass], 0, [ignore], [ignore]) +AT_CHECK([cmp -s resout expres], [0], [], []) + +AT_DATA([expres], [skipped: By design +]) +AT_CHECK([TEST_HELPER(${h}) -r resout skip], 0, [ignore], [ignore]) +AT_CHECK([cmp -s resout expres], [0], [], []) + +AT_DATA([expres], [failed: On purpose +]) +AT_CHECK([TEST_HELPER(${h}) -r resout fail], 1, [ignore], [ignore]) +AT_CHECK([cmp -s resout expres], [0], [], []) + +done + +AT_CLEANUP() + +dnl vim: syntax=m4:expandtab:shiftwidth=4:softtabstop=4 diff --git a/unit/atf-src/bootstrap/t_test_program_list.at b/unit/atf-src/bootstrap/t_test_program_list.at new file mode 100644 index 0000000..f0a8ea1 --- /dev/null +++ b/unit/atf-src/bootstrap/t_test_program_list.at @@ -0,0 +1,59 @@ +dnl Copyright (c) 2007 The NetBSD Foundation, Inc. +dnl All rights reserved. +dnl +dnl Redistribution and use in source and binary forms, with or without +dnl modification, are permitted provided that the following conditions +dnl are met: +dnl 1. Redistributions of source code must retain the above copyright +dnl notice, this list of conditions and the following disclaimer. +dnl 2. Redistributions in binary form must reproduce the above copyright +dnl notice, this list of conditions and the following disclaimer in the +dnl documentation and/or other materials provided with the distribution. +dnl +dnl THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND +dnl CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +dnl INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +dnl IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY +dnl DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +dnl DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +dnl GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +dnl INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +dnl IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +dnl OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +dnl IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +AT_SETUP([test_program: list test cases]) + +for h in tp_basic_c tp_basic_cpp tp_basic_sh; do + +AT_DATA([expout], [Content-Type: application/X-atf-tp; version="1" + +ident: pass +descr: An empty test case that always passes + +ident: fail +descr: An empty test case that always fails + +ident: skip +descr: An empty test case that is always skipped + +ident: default +descr: A test case that passes without explicitly stating it +]) + +AT_CHECK([TEST_HELPER(${h}) -l], [0], [expout], []) + +AT_CHECK([TEST_HELPER(${h}) -l pass], [1], [], [stderr]) +AT_CHECK([grep 'Cannot provide test case names with -l' stderr], + [0], [ignore], []) + +AT_CHECK([TEST_HELPER(${h}) -l pass fail], [1], [], [stderr]) +AT_CHECK([grep 'Cannot provide test case names with -l' stderr], + [0], [ignore], []) + +done + +AT_CLEANUP() + +dnl vim: syntax=m4:expandtab:shiftwidth=4:softtabstop=4 diff --git a/unit/atf-src/bootstrap/t_test_program_run.at b/unit/atf-src/bootstrap/t_test_program_run.at new file mode 100644 index 0000000..1d7bf4a --- /dev/null +++ b/unit/atf-src/bootstrap/t_test_program_run.at @@ -0,0 +1,47 @@ +dnl Copyright (c) 2007 The NetBSD Foundation, Inc. +dnl All rights reserved. +dnl +dnl Redistribution and use in source and binary forms, with or without +dnl modification, are permitted provided that the following conditions +dnl are met: +dnl 1. Redistributions of source code must retain the above copyright +dnl notice, this list of conditions and the following disclaimer. +dnl 2. Redistributions in binary form must reproduce the above copyright +dnl notice, this list of conditions and the following disclaimer in the +dnl documentation and/or other materials provided with the distribution. +dnl +dnl THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND +dnl CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +dnl INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +dnl IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY +dnl DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +dnl DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +dnl GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +dnl INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +dnl IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +dnl OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +dnl IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +AT_SETUP([test_program: output format and exit codes]) + +for h in tp_basic_c tp_basic_cpp tp_basic_sh; do + +dnl Check the -r flag to redirect the results output. +AT_CHECK([TEST_HELPER(${h}) -r resout pass], 0, [stdout], [stderr]) +CHECK_TCR([resout], [passed]) + +AT_CHECK([TEST_HELPER(${h}) -r resout fail], 1, [stdout], [stderr]) +CHECK_TCR([resout], [failed], [On purpose]) + +AT_CHECK([TEST_HELPER(${h}) -r resout skip], 0, [stdout], [stderr]) +CHECK_TCR([resout], [skipped], [By design]) + +AT_CHECK([TEST_HELPER(${h}) -r resout default], 0, [stdout], [stderr]) +CHECK_TCR([resout], [passed]) + +done + +AT_CLEANUP() + +dnl vim: syntax=m4:expandtab:shiftwidth=4:softtabstop=4 diff --git a/unit/atf-src/bootstrap/testsuite b/unit/atf-src/bootstrap/testsuite new file mode 100755 index 0000000..2c1aa3f --- /dev/null +++ b/unit/atf-src/bootstrap/testsuite @@ -0,0 +1,5873 @@ +#! /bin/sh +# Generated from bootstrap/testsuite.at by GNU Autoconf 2.69. +# +# Copyright (C) 2009-2012 Free Software Foundation, Inc. +# +# This test suite is free software; the Free Software Foundation gives +# unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, +$0: including any error possibly output before this +$0: message. Then install a modern shell, or manually run +$0: the script under such a shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + + + +SHELL=${CONFIG_SHELL-/bin/sh} + +# How were we run? +at_cli_args="$@" + + +# Not all shells have the 'times' builtin; the subshell is needed to make +# sure we discard the 'times: not found' message from the shell. +at_times_p=false +(times) >/dev/null 2>&1 && at_times_p=: + +# CLI Arguments to pass to the debugging scripts. +at_debug_args= +# -e sets to true +at_errexit_p=false +# Shall we be verbose? ':' means no, empty means yes. +at_verbose=: +at_quiet= +# Running several jobs in parallel, 0 means as many as test groups. +at_jobs=1 +at_traceon=: +at_trace_echo=: +at_check_filter_trace=: + +# Shall we keep the debug scripts? Must be `:' when the suite is +# run by a debug script, so that the script doesn't remove itself. +at_debug_p=false +# Display help message? +at_help_p=false +# Display the version message? +at_version_p=false +# List test groups? +at_list_p=false +# --clean +at_clean=false +# Test groups to run +at_groups= +# Whether to rerun failed tests. +at_recheck= +# Whether a write failure occurred +at_write_fail=0 + +# The directory we run the suite in. Default to . if no -C option. +at_dir=`pwd` +# An absolute reference to this testsuite script. +case $as_myself in + [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;; + * ) at_myself=$at_dir/$as_myself ;; +esac +# Whether -C is in effect. +at_change_dir=false + +# Whether to enable colored test results. +at_color=no +# List of the tested programs. +at_tested='' +# As many question marks as there are digits in the last test group number. +# Used to normalize the test group numbers so that `ls' lists them in +# numerical order. +at_format='?' +# Description of all the test groups. +at_help_all="1;t_test_program_filter.at:30;test_program: filter test cases by name;; +2;t_test_program_run.at:30;test_program: output format and exit codes;; +3;t_test_program_list.at:30;test_program: list test cases;; +4;t_test_program_compare.at:30;test_program: compare the user-visible interfaces;; +5;t_subr_atf_check.at:30;subr: atf_check function;; +" +# List of the all the test groups. +at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'` + +# at_fn_validate_ranges NAME... +# ----------------------------- +# Validate and normalize the test group number contained in each variable +# NAME. Leading zeroes are treated as decimal. +at_fn_validate_ranges () +{ + for at_grp + do + eval at_value=\$$at_grp + if test $at_value -lt 1 || test $at_value -gt 5; then + $as_echo "invalid test group: $at_value" >&2 + exit 1 + fi + case $at_value in + 0*) # We want to treat leading 0 as decimal, like expr and test, but + # AS_VAR_ARITH treats it as octal if it uses $(( )). + # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the + # expr fork, but it is not worth the effort to determine if the + # shell supports XSI when the user can just avoid leading 0. + eval $at_grp='`expr $at_value + 0`' ;; + esac + done +} + +at_prev= +for at_option +do + # If the previous option needs an argument, assign it. + if test -n "$at_prev"; then + at_option=$at_prev=$at_option + at_prev= + fi + + case $at_option in + *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;; + *) at_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $at_option in + --help | -h ) + at_help_p=: + ;; + + --list | -l ) + at_list_p=: + ;; + + --version | -V ) + at_version_p=: + ;; + + --clean | -c ) + at_clean=: + ;; + + --color ) + at_color=always + ;; + --color=* ) + case $at_optarg in + no | never | none) at_color=never ;; + auto | tty | if-tty) at_color=auto ;; + always | yes | force) at_color=always ;; + *) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'` + as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;; + esac + ;; + + --debug | -d ) + at_debug_p=: + ;; + + --errexit | -e ) + at_debug_p=: + at_errexit_p=: + ;; + + --verbose | -v ) + at_verbose=; at_quiet=: + ;; + + --trace | -x ) + at_traceon='set -x' + at_trace_echo=echo + at_check_filter_trace=at_fn_filter_trace + ;; + + [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9]) + at_fn_validate_ranges at_option + as_fn_append at_groups "$at_option$as_nl" + ;; + + # Ranges + [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-) + at_range_start=`echo $at_option |tr -d X-` + at_fn_validate_ranges at_range_start + at_range=`$as_echo "$at_groups_all" | \ + sed -ne '/^'$at_range_start'$/,$p'` + as_fn_append at_groups "$at_range$as_nl" + ;; + + -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9]) + at_range_end=`echo $at_option |tr -d X-` + at_fn_validate_ranges at_range_end + at_range=`$as_echo "$at_groups_all" | \ + sed -ne '1,/^'$at_range_end'$/p'` + as_fn_append at_groups "$at_range$as_nl" + ;; + + [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \ + [0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \ + [0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \ + [0-9][0-9][0-9]-[0-9][0-9][0-9] | \ + [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \ + [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] ) + at_range_start=`expr $at_option : '\(.*\)-'` + at_range_end=`expr $at_option : '.*-\(.*\)'` + if test $at_range_start -gt $at_range_end; then + at_tmp=$at_range_end + at_range_end=$at_range_start + at_range_start=$at_tmp + fi + at_fn_validate_ranges at_range_start at_range_end + at_range=`$as_echo "$at_groups_all" | \ + sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'` + as_fn_append at_groups "$at_range$as_nl" + ;; + + # Directory selection. + --directory | -C ) + at_prev=--directory + ;; + --directory=* ) + at_change_dir=: + at_dir=$at_optarg + if test x- = "x$at_dir" ; then + at_dir=./- + fi + ;; + + # Parallel execution. + --jobs | -j ) + at_jobs=0 + ;; + --jobs=* | -j[0-9]* ) + if test -n "$at_optarg"; then + at_jobs=$at_optarg + else + at_jobs=`expr X$at_option : 'X-j\(.*\)'` + fi + case $at_jobs in *[!0-9]*) + at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'` + as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;; + esac + ;; + + # Keywords. + --keywords | -k ) + at_prev=--keywords + ;; + --keywords=* ) + at_groups_selected=$at_help_all + at_save_IFS=$IFS + IFS=, + set X $at_optarg + shift + IFS=$at_save_IFS + for at_keyword + do + at_invert= + case $at_keyword in + '!'*) + at_invert="-v" + at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'` + ;; + esac + # It is on purpose that we match the test group titles too. + at_groups_selected=`$as_echo "$at_groups_selected" | + grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"` + done + # Smash the keywords. + at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'` + as_fn_append at_groups "$at_groups_selected$as_nl" + ;; + --recheck) + at_recheck=: + ;; + + *=*) + at_envvar=`expr "x$at_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $at_envvar in + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$at_envvar'" ;; + esac + at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"` + # Export now, but save eval for later and for debug scripts. + export $at_envvar + as_fn_append at_debug_args " $at_envvar='$at_value'" + ;; + + *) $as_echo "$as_me: invalid option: $at_option" >&2 + $as_echo "Try \`$0 --help' for more information." >&2 + exit 1 + ;; + esac +done + +# Verify our last option didn't require an argument +if test -n "$at_prev"; then : + as_fn_error $? "\`$at_prev' requires an argument" +fi + +# The file containing the suite. +at_suite_log=$at_dir/$as_me.log + +# Selected test groups. +if test -z "$at_groups$at_recheck"; then + at_groups=$at_groups_all +else + if test -n "$at_recheck" && test -r "$at_suite_log"; then + at_oldfails=`sed -n ' + /^Failed tests:$/,/^Skipped tests:$/{ + s/^[ ]*\([1-9][0-9]*\):.*/\1/p + } + /^Unexpected passes:$/,/^## Detailed failed tests/{ + s/^[ ]*\([1-9][0-9]*\):.*/\1/p + } + /^## Detailed failed tests/q + ' "$at_suite_log"` + as_fn_append at_groups "$at_oldfails$as_nl" + fi + # Sort the tests, removing duplicates. + at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'` +fi + +if test x"$at_color" = xalways \ + || { test x"$at_color" = xauto && test -t 1; }; then + at_red=`printf '\033[0;31m'` + at_grn=`printf '\033[0;32m'` + at_lgn=`printf '\033[1;32m'` + at_blu=`printf '\033[1;34m'` + at_std=`printf '\033[m'` +else + at_red= at_grn= at_lgn= at_blu= at_std= +fi + +# Help message. +if $at_help_p; then + cat <<_ATEOF || at_write_fail=1 +Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS] + +Run all the tests, or the selected TESTS, given by numeric ranges, and +save a detailed log file. Upon failure, create debugging scripts. + +Do not change environment variables directly. Instead, set them via +command line arguments. Set \`AUTOTEST_PATH' to select the executables +to exercise. Each relative directory is expanded as build and source +directories relative to the top level of this distribution. +E.g., from within the build directory /tmp/foo-1.0, invoking this: + + $ $0 AUTOTEST_PATH=bin + +is equivalent to the following, assuming the source directory is /src/foo-1.0: + + PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0 +_ATEOF +cat <<_ATEOF || at_write_fail=1 + +Operation modes: + -h, --help print the help message, then exit + -V, --version print version number, then exit + -c, --clean remove all the files this test suite might create and exit + -l, --list describes all the tests, or the selected TESTS +_ATEOF +cat <<_ATEOF || at_write_fail=1 + +Execution tuning: + -C, --directory=DIR + change to directory DIR before starting + --color[=never|auto|always] + enable colored test results on terminal, or always + -j, --jobs[=N] + Allow N jobs at once; infinite jobs with no arg (default 1) + -k, --keywords=KEYWORDS + select the tests matching all the comma-separated KEYWORDS + multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD + --recheck select all tests that failed or passed unexpectedly last time + -e, --errexit abort as soon as a test fails; implies --debug + -v, --verbose force more detailed output + default for debugging scripts + -d, --debug inhibit clean up and top-level logging + default for debugging scripts + -x, --trace enable tests shell tracing +_ATEOF +cat <<_ATEOF || at_write_fail=1 + +Report bugs to <atf-devel@NetBSD.org>. +_ATEOF + exit $at_write_fail +fi + +# List of tests. +if $at_list_p; then + cat <<_ATEOF || at_write_fail=1 +Automated Testing Framework 0.17 test suite: bootstrap tests test groups: + + NUM: FILE-NAME:LINE TEST-GROUP-NAME + KEYWORDS + +_ATEOF + # Pass an empty line as separator between selected groups and help. + $as_echo "$at_groups$as_nl$as_nl$at_help_all" | + awk 'NF == 1 && FS != ";" { + selected[$ 1] = 1 + next + } + /^$/ { FS = ";" } + NF > 0 { + if (selected[$ 1]) { + printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3 + if ($ 4) { + lmax = 79 + indent = " " + line = indent + len = length (line) + n = split ($ 4, a, " ") + for (i = 1; i <= n; i++) { + l = length (a[i]) + 1 + if (i > 1 && len + l > lmax) { + print line + line = indent " " a[i] + len = length (line) + } else { + line = line " " a[i] + len += l + } + } + if (n) + print line + } + } + }' || at_write_fail=1 + exit $at_write_fail +fi +if $at_version_p; then + $as_echo "$as_me (Automated Testing Framework 0.17)" && + cat <<\_ATEOF || at_write_fail=1 + +Copyright (C) 2012 Free Software Foundation, Inc. +This test suite is free software; the Free Software Foundation gives +unlimited permission to copy, distribute and modify it. +_ATEOF + exit $at_write_fail +fi + +# Should we print banners? Yes if more than one test is run. +case $at_groups in #( + *$as_nl* ) + at_print_banners=: ;; #( + * ) at_print_banners=false ;; +esac +# Text for banner N, set to a single space once printed. + +# Take any -C into account. +if $at_change_dir ; then + test x != "x$at_dir" && cd "$at_dir" \ + || as_fn_error $? "unable to change directory" + at_dir=`pwd` +fi + +# Load the config files for any default variable assignments. +for at_file in atconfig atlocal +do + test -r $at_file || continue + . ./$at_file || as_fn_error $? "invalid content: $at_file" +done + +# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix: +: "${at_top_build_prefix=$at_top_builddir}" + +# Perform any assignments requested during argument parsing. +eval "$at_debug_args" + +# atconfig delivers names relative to the directory the test suite is +# in, but the groups themselves are run in testsuite-dir/group-dir. +if test -n "$at_top_srcdir"; then + builddir=../.. + for at_dir_var in srcdir top_srcdir top_build_prefix + do + eval at_val=\$at_$at_dir_var + case $at_val in + [\\/$]* | ?:[\\/]* ) at_prefix= ;; + *) at_prefix=../../ ;; + esac + eval "$at_dir_var=\$at_prefix\$at_val" + done +fi + +## -------------------- ## +## Directory structure. ## +## -------------------- ## + +# This is the set of directories and files used by this script +# (non-literals are capitalized): +# +# TESTSUITE - the testsuite +# TESTSUITE.log - summarizes the complete testsuite run +# TESTSUITE.dir/ - created during a run, remains after -d or failed test +# + at-groups/ - during a run: status of all groups in run +# | + NNN/ - during a run: meta-data about test group NNN +# | | + check-line - location (source file and line) of current AT_CHECK +# | | + status - exit status of current AT_CHECK +# | | + stdout - stdout of current AT_CHECK +# | | + stder1 - stderr, including trace +# | | + stderr - stderr, with trace filtered out +# | | + test-source - portion of testsuite that defines group +# | | + times - timestamps for computing duration +# | | + pass - created if group passed +# | | + xpass - created if group xpassed +# | | + fail - created if group failed +# | | + xfail - created if group xfailed +# | | + skip - created if group skipped +# + at-stop - during a run: end the run if this file exists +# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction +# + 0..NNN/ - created for each group NNN, remains after -d or failed test +# | + TESTSUITE.log - summarizes the group results +# | + ... - files created during the group + +# The directory the whole suite works in. +# Should be absolute to let the user `cd' at will. +at_suite_dir=$at_dir/$as_me.dir +# The file containing the suite ($at_dir might have changed since earlier). +at_suite_log=$at_dir/$as_me.log +# The directory containing helper files per test group. +at_helper_dir=$at_suite_dir/at-groups +# Stop file: if it exists, do not start new jobs. +at_stop_file=$at_suite_dir/at-stop +# The fifo used for the job dispatcher. +at_job_fifo=$at_suite_dir/at-job-fifo + +if $at_clean; then + test -d "$at_suite_dir" && + find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \; + rm -f -r "$at_suite_dir" "$at_suite_log" + exit $? +fi + +# Don't take risks: use only absolute directories in PATH. +# +# For stand-alone test suites (ie. atconfig was not found), +# AUTOTEST_PATH is relative to `.'. +# +# For embedded test suites, AUTOTEST_PATH is relative to the top level +# of the package. Then expand it into build/src parts, since users +# may create executables in both places. +AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"` +at_path= +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $AUTOTEST_PATH $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR +case $as_dir in + [\\/]* | ?:[\\/]* ) + as_fn_append at_path "$as_dir" + ;; + * ) + if test -z "$at_top_build_prefix"; then + # Stand-alone test suite. + as_fn_append at_path "$as_dir" + else + # Embedded test suite. + as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR" + as_fn_append at_path "$at_top_srcdir/$as_dir" + fi + ;; +esac + done +IFS=$as_save_IFS + + +# Now build and simplify PATH. +# +# There might be directories that don't exist, but don't redirect +# builtins' (eg., cd) stderr directly: Ultrix's sh hates that. +at_new_path= +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $at_path +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -d "$as_dir" || continue +case $as_dir in + [\\/]* | ?:[\\/]* ) ;; + * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;; +esac +case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in + *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;; + $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;; + *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;; +esac + done +IFS=$as_save_IFS + +PATH=$at_new_path +export PATH + +# Setting up the FDs. + + + +# 5 is the log file. Not to be overwritten if `-d'. +if $at_debug_p; then + at_suite_log=/dev/null +else + : >"$at_suite_log" +fi +exec 5>>"$at_suite_log" + +# Banners and logs. +$as_echo "## ------------------------------------------------------------- ## +## Automated Testing Framework 0.17 test suite: bootstrap tests. ## +## ------------------------------------------------------------- ##" +{ + $as_echo "## ------------------------------------------------------------- ## +## Automated Testing Framework 0.17 test suite: bootstrap tests. ## +## ------------------------------------------------------------- ##" + echo + + $as_echo "$as_me: command line was:" + $as_echo " \$ $0 $at_cli_args" + echo + + # If ChangeLog exists, list a few lines in case it might help determining + # the exact version. + if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then + $as_echo "## ---------- ## +## ChangeLog. ## +## ---------- ##" + echo + sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog" + echo + fi + + { +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} + echo + + # Contents of the config files. + for at_file in atconfig atlocal + do + test -r $at_file || continue + $as_echo "$as_me: $at_file:" + sed 's/^/| /' $at_file + echo + done +} >&5 + + +## ------------------------- ## +## Autotest shell functions. ## +## ------------------------- ## + +# at_fn_banner NUMBER +# ------------------- +# Output banner NUMBER, provided the testsuite is running multiple groups and +# this particular banner has not yet been printed. +at_fn_banner () +{ + $at_print_banners || return 0 + eval at_banner_text=\$at_banner_text_$1 + test "x$at_banner_text" = "x " && return 0 + eval "at_banner_text_$1=\" \"" + if test -z "$at_banner_text"; then + $at_first || echo + else + $as_echo "$as_nl$at_banner_text$as_nl" + fi +} # at_fn_banner + +# at_fn_check_prepare_notrace REASON LINE +# --------------------------------------- +# Perform AT_CHECK preparations for the command at LINE for an untraceable +# command; REASON is the reason for disabling tracing. +at_fn_check_prepare_notrace () +{ + $at_trace_echo "Not enabling shell tracing (command contains $1)" + $as_echo "$2" >"$at_check_line_file" + at_check_trace=: at_check_filter=: + : >"$at_stdout"; : >"$at_stderr" +} + +# at_fn_check_prepare_trace LINE +# ------------------------------ +# Perform AT_CHECK preparations for the command at LINE for a traceable +# command. +at_fn_check_prepare_trace () +{ + $as_echo "$1" >"$at_check_line_file" + at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace + : >"$at_stdout"; : >"$at_stderr" +} + +# at_fn_check_prepare_dynamic COMMAND LINE +# ---------------------------------------- +# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate +# preparation function. +at_fn_check_prepare_dynamic () +{ + case $1 in + *$as_nl*) + at_fn_check_prepare_notrace 'an embedded newline' "$2" ;; + *) + at_fn_check_prepare_trace "$2" ;; + esac +} + +# at_fn_filter_trace +# ------------------ +# Remove the lines in the file "$at_stderr" generated by "set -x" and print +# them to stderr. +at_fn_filter_trace () +{ + mv "$at_stderr" "$at_stder1" + grep '^ *+' "$at_stder1" >&2 + grep -v '^ *+' "$at_stder1" >"$at_stderr" +} + +# at_fn_log_failure FILE-LIST +# --------------------------- +# Copy the files in the list on stdout with a "> " prefix, and exit the shell +# with a failure exit code. +at_fn_log_failure () +{ + for file + do $as_echo "$file:"; sed 's/^/> /' "$file"; done + echo 1 > "$at_status_file" + exit 1 +} + +# at_fn_check_skip EXIT-CODE LINE +# ------------------------------- +# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit +# the test group subshell with that same exit code. Use LINE in any report +# about test failure. +at_fn_check_skip () +{ + case $1 in + 99) echo 99 > "$at_status_file"; at_failed=: + $as_echo "$2: hard failure"; exit 99;; + 77) echo 77 > "$at_status_file"; exit 77;; + esac +} + +# at_fn_check_status EXPECTED EXIT-CODE LINE +# ------------------------------------------ +# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing. +# Otherwise, if it is 77 or 99, exit the test group subshell with that same +# exit code; if it is anything else print an error message referring to LINE, +# and fail the test. +at_fn_check_status () +{ + case $2 in + $1 ) ;; + 77) echo 77 > "$at_status_file"; exit 77;; + 99) echo 99 > "$at_status_file"; at_failed=: + $as_echo "$3: hard failure"; exit 99;; + *) $as_echo "$3: exit code was $2, expected $1" + at_failed=:;; + esac +} + +# at_fn_diff_devnull FILE +# ----------------------- +# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff +# invocations. +at_fn_diff_devnull () +{ + test -s "$1" || return 0 + $at_diff "$at_devnull" "$1" +} + +# at_fn_test NUMBER +# ----------------- +# Parse out test NUMBER from the tail of this file. +at_fn_test () +{ + eval at_sed=\$at_sed$1 + sed "$at_sed" "$at_myself" > "$at_test_source" +} + +# at_fn_create_debugging_script +# ----------------------------- +# Create the debugging script $at_group_dir/run which will reproduce the +# current test group. +at_fn_create_debugging_script () +{ + { + echo "#! /bin/sh" && + echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' && + $as_echo "cd '$at_dir'" && + $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" && + echo 'exit 1' + } >"$at_group_dir/run" && + chmod +x "$at_group_dir/run" +} + +## -------------------------------- ## +## End of autotest shell functions. ## +## -------------------------------- ## +{ + $as_echo "## ---------------- ## +## Tested programs. ## +## ---------------- ##" + echo +} >&5 + +# Report what programs are being tested. +for at_program in : $at_tested +do + test "$at_program" = : && continue + case $at_program in + [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;; + * ) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -f "$as_dir/$at_program" && break + done +IFS=$as_save_IFS + + at_program_=$as_dir/$at_program ;; + esac + if test -f "$at_program_"; then + { + $as_echo "$at_srcdir/testsuite.at:30: $at_program_ --version" + "$at_program_" --version </dev/null + echo + } >&5 2>&1 + else + as_fn_error $? "cannot find $at_program" "$LINENO" 5 + fi +done + +{ + $as_echo "## ------------------ ## +## Running the tests. ## +## ------------------ ##" +} >&5 + +at_start_date=`date` +at_start_time=`date +%s 2>/dev/null` +$as_echo "$as_me: starting at: $at_start_date" >&5 + +# Create the master directory if it doesn't already exist. +as_dir="$at_suite_dir"; as_fn_mkdir_p || + as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5 + +# Can we diff with `/dev/null'? DU 5.0 refuses. +if diff /dev/null /dev/null >/dev/null 2>&1; then + at_devnull=/dev/null +else + at_devnull=$at_suite_dir/devnull + >"$at_devnull" +fi + +# Use `diff -u' when possible. +if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff" +then + at_diff='diff -u' +else + at_diff=diff +fi + +# Get the last needed group. +for at_group in : $at_groups; do :; done + +# Extract the start and end lines of each test group at the tail +# of this file +awk ' +BEGIN { FS="" } +/^#AT_START_/ { + start = NR +} +/^#AT_STOP_/ { + test = substr ($ 0, 10) + print "at_sed" test "=\"1," start "d;" (NR-1) "q\"" + if (test == "'"$at_group"'") exit +}' "$at_myself" > "$at_suite_dir/at-source-lines" && +. "$at_suite_dir/at-source-lines" || + as_fn_error $? "cannot create test line number cache" "$LINENO" 5 +rm -f "$at_suite_dir/at-source-lines" + +# Set number of jobs for `-j'; avoid more jobs than test groups. +set X $at_groups; shift; at_max_jobs=$# +if test $at_max_jobs -eq 0; then + at_jobs=1 +fi +if test $at_jobs -ne 1 && + { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then + at_jobs=$at_max_jobs +fi + +# If parallel mode, don't output banners, don't split summary lines. +if test $at_jobs -ne 1; then + at_print_banners=false + at_quiet=: +fi + +# Set up helper dirs. +rm -rf "$at_helper_dir" && +mkdir "$at_helper_dir" && +cd "$at_helper_dir" && +{ test -z "$at_groups" || mkdir $at_groups; } || +as_fn_error $? "testsuite directory setup failed" "$LINENO" 5 + +# Functions for running a test group. We leave the actual +# test group execution outside of a shell function in order +# to avoid hitting zsh 4.x exit status bugs. + +# at_fn_group_prepare +# ------------------- +# Prepare for running a test group. +at_fn_group_prepare () +{ + # The directory for additional per-group helper files. + at_job_dir=$at_helper_dir/$at_group + # The file containing the location of the last AT_CHECK. + at_check_line_file=$at_job_dir/check-line + # The file containing the exit status of the last command. + at_status_file=$at_job_dir/status + # The files containing the output of the tested commands. + at_stdout=$at_job_dir/stdout + at_stder1=$at_job_dir/stder1 + at_stderr=$at_job_dir/stderr + # The file containing the code for a test group. + at_test_source=$at_job_dir/test-source + # The file containing dates. + at_times_file=$at_job_dir/times + + # Be sure to come back to the top test directory. + cd "$at_suite_dir" + + # Clearly separate the test groups when verbose. + $at_first || $at_verbose echo + + at_group_normalized=$at_group + + eval 'while :; do + case $at_group_normalized in #( + '"$at_format"'*) break;; + esac + at_group_normalized=0$at_group_normalized + done' + + + # Create a fresh directory for the next test group, and enter. + # If one already exists, the user may have invoked ./run from + # within that directory; we remove the contents, but not the + # directory itself, so that we aren't pulling the rug out from + # under the shell's notion of the current directory. + at_group_dir=$at_suite_dir/$at_group_normalized + at_group_log=$at_group_dir/$as_me.log + if test -d "$at_group_dir"; then + find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \; + rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??* +fi || + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5 +$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;} + # Be tolerant if the above `rm' was not able to remove the directory. + as_dir="$at_group_dir"; as_fn_mkdir_p + + echo 0 > "$at_status_file" + + # In verbose mode, append to the log file *and* show on + # the standard output; in quiet mode only write to the log. + if test -z "$at_verbose"; then + at_tee_pipe='tee -a "$at_group_log"' + else + at_tee_pipe='cat >> "$at_group_log"' + fi +} + +# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER] +# ------------------------------------------------- +# Declare the test group ORDINAL, located at LINE with group description DESC, +# and residing under BANNER. Use PAD to align the status column. +at_fn_group_banner () +{ + at_setup_line="$2" + test -n "$5" && at_fn_banner $5 + at_desc="$3" + case $1 in + [0-9]) at_desc_line=" $1: ";; + [0-9][0-9]) at_desc_line=" $1: " ;; + *) at_desc_line="$1: " ;; + esac + as_fn_append at_desc_line "$3$4" + $at_quiet $as_echo_n "$at_desc_line" + echo "# -*- compilation -*-" >> "$at_group_log" +} + +# at_fn_group_postprocess +# ----------------------- +# Perform cleanup after running a test group. +at_fn_group_postprocess () +{ + # Be sure to come back to the suite directory, in particular + # since below we might `rm' the group directory we are in currently. + cd "$at_suite_dir" + + if test ! -f "$at_check_line_file"; then + sed "s/^ */$as_me: WARNING: /" <<_ATEOF + A failure happened in a test group before any test could be + run. This means that test suite is improperly designed. Please + report this failure to <atf-devel@NetBSD.org>. +_ATEOF + $as_echo "$at_setup_line" >"$at_check_line_file" + at_status=99 + fi + $at_verbose $as_echo_n "$at_group. $at_setup_line: " + $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log" + case $at_xfail:$at_status in + yes:0) + at_msg="UNEXPECTED PASS" + at_res=xpass + at_errexit=$at_errexit_p + at_color=$at_red + ;; + no:0) + at_msg="ok" + at_res=pass + at_errexit=false + at_color=$at_grn + ;; + *:77) + at_msg='skipped ('`cat "$at_check_line_file"`')' + at_res=skip + at_errexit=false + at_color=$at_blu + ;; + no:* | *:99) + at_msg='FAILED ('`cat "$at_check_line_file"`')' + at_res=fail + at_errexit=$at_errexit_p + at_color=$at_red + ;; + yes:*) + at_msg='expected failure ('`cat "$at_check_line_file"`')' + at_res=xfail + at_errexit=false + at_color=$at_lgn + ;; + esac + echo "$at_res" > "$at_job_dir/$at_res" + # In parallel mode, output the summary line only afterwards. + if test $at_jobs -ne 1 && test -n "$at_verbose"; then + $as_echo "$at_desc_line $at_color$at_msg$at_std" + else + # Make sure there is a separator even with long titles. + $as_echo " $at_color$at_msg$at_std" + fi + at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg" + case $at_status in + 0|77) + # $at_times_file is only available if the group succeeded. + # We're not including the group log, so the success message + # is written in the global log separately. But we also + # write to the group log in case they're using -d. + if test -f "$at_times_file"; then + at_log_msg="$at_log_msg ("`sed 1d "$at_times_file"`')' + rm -f "$at_times_file" + fi + $as_echo "$at_log_msg" >> "$at_group_log" + $as_echo "$at_log_msg" >&5 + + # Cleanup the group directory, unless the user wants the files + # or the success was unexpected. + if $at_debug_p || test $at_res = xpass; then + at_fn_create_debugging_script + if test $at_res = xpass && $at_errexit; then + echo stop > "$at_stop_file" + fi + else + if test -d "$at_group_dir"; then + find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \; + rm -fr "$at_group_dir" + fi + rm -f "$at_test_source" + fi + ;; + *) + # Upon failure, include the log into the testsuite's global + # log. The failure message is written in the group log. It + # is later included in the global log. + $as_echo "$at_log_msg" >> "$at_group_log" + + # Upon failure, keep the group directory for autopsy, and create + # the debugging script. With -e, do not start any further tests. + at_fn_create_debugging_script + if $at_errexit; then + echo stop > "$at_stop_file" + fi + ;; + esac +} + + +## ------------ ## +## Driver loop. ## +## ------------ ## + + +if (set -m && set +m && set +b) >/dev/null 2>&1; then + set +b + at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=- +else + at_job_control_on=: at_job_control_off=: at_job_group= +fi + +for at_signal in 1 2 15; do + trap 'set +x; set +e + $at_job_control_off + at_signal='"$at_signal"' + echo stop > "$at_stop_file" + trap "" $at_signal + at_pgids= + for at_pgid in `jobs -p 2>/dev/null`; do + at_pgids="$at_pgids $at_job_group$at_pgid" + done + test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null + wait + if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then + echo >&2 + fi + at_signame=`kill -l $at_signal 2>&1 || echo $at_signal` + set x $at_signame + test 1 -gt 2 && at_signame=$at_signal + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5 +$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;} + as_fn_arith 128 + $at_signal && exit_status=$as_val + as_fn_exit $exit_status' $at_signal +done + +rm -f "$at_stop_file" +at_first=: + +if test $at_jobs -ne 1 && + rm -f "$at_job_fifo" && + test -n "$at_job_group" && + ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null +then + # FIFO job dispatcher. + + trap 'at_pids= + for at_pid in `jobs -p`; do + at_pids="$at_pids $at_job_group$at_pid" + done + if test -n "$at_pids"; then + at_sig=TSTP + test "${TMOUT+set}" = set && at_sig=STOP + kill -$at_sig $at_pids 2>/dev/null + fi + kill -STOP $$ + test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP + + echo + # Turn jobs into a list of numbers, starting from 1. + at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p` + + set X $at_joblist + shift + for at_group in $at_groups; do + $at_job_control_on 2>/dev/null + ( + # Start one test group. + $at_job_control_off + if $at_first; then + exec 7>"$at_job_fifo" + else + exec 6<&- + fi + trap 'set +x; set +e + trap "" PIPE + echo stop > "$at_stop_file" + echo >&7 + as_fn_exit 141' PIPE + at_fn_group_prepare + if cd "$at_group_dir" && + at_fn_test $at_group && + . "$at_test_source" + then :; else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5 +$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;} + at_failed=: + fi + at_fn_group_postprocess + echo >&7 + ) & + $at_job_control_off + if $at_first; then + at_first=false + exec 6<"$at_job_fifo" 7>"$at_job_fifo" + fi + shift # Consume one token. + if test $# -gt 0; then :; else + read at_token <&6 || break + set x $* + fi + test -f "$at_stop_file" && break + done + exec 7>&- + # Read back the remaining ($at_jobs - 1) tokens. + set X $at_joblist + shift + if test $# -gt 0; then + shift + for at_job + do + read at_token + done <&6 + fi + exec 6<&- + wait +else + # Run serially, avoid forks and other potential surprises. + for at_group in $at_groups; do + at_fn_group_prepare + if cd "$at_group_dir" && + at_fn_test $at_group && + . "$at_test_source"; then :; else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5 +$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;} + at_failed=: + fi + at_fn_group_postprocess + test -f "$at_stop_file" && break + at_first=false + done +fi + +# Wrap up the test suite with summary statistics. +cd "$at_helper_dir" + +# Use ?..???? when the list must remain sorted, the faster * otherwise. +at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'` +at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'` +at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'` +at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do + echo $f; done | sed '/?/d; s,/xpass,,'` +at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do + echo $f; done | sed '/?/d; s,/fail,,'` + +set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list +shift; at_group_count=$# +set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$* +set X $at_xfail_list; shift; at_xfail_count=$# +set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$* +set X $at_skip_list; shift; at_skip_count=$# + +as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val +as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val +as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val + +# Back to the top directory. +cd "$at_dir" +rm -rf "$at_helper_dir" + +# Compute the duration of the suite. +at_stop_date=`date` +at_stop_time=`date +%s 2>/dev/null` +$as_echo "$as_me: ending at: $at_stop_date" >&5 +case $at_start_time,$at_stop_time in + [0-9]*,[0-9]*) + as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val + as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val + as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val + as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val + as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val + at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s" + $as_echo "$as_me: test suite duration: $at_duration" >&5 + ;; +esac + +echo +$as_echo "## ------------- ## +## Test results. ## +## ------------- ##" +echo +{ + echo + $as_echo "## ------------- ## +## Test results. ## +## ------------- ##" + echo +} >&5 + +if test $at_run_count = 1; then + at_result="1 test" + at_were=was +else + at_result="$at_run_count tests" + at_were=were +fi +if $at_errexit_p && test $at_unexpected_count != 0; then + if test $at_xpass_count = 1; then + at_result="$at_result $at_were run, one passed" + else + at_result="$at_result $at_were run, one failed" + fi + at_result="$at_result unexpectedly and inhibited subsequent tests." + at_color=$at_red +else + # Don't you just love exponential explosion of the number of cases? + at_color=$at_red + case $at_xpass_count:$at_fail_count:$at_xfail_count in + # So far, so good. + 0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;; + 0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;; + + # Some unexpected failures + 0:*:0) at_result="$at_result $at_were run, +$at_fail_count failed unexpectedly." ;; + + # Some failures, both expected and unexpected + 0:*:1) at_result="$at_result $at_were run, +$at_total_fail_count failed ($at_xfail_count expected failure)." ;; + 0:*:*) at_result="$at_result $at_were run, +$at_total_fail_count failed ($at_xfail_count expected failures)." ;; + + # No unexpected failures, but some xpasses + *:0:*) at_result="$at_result $at_were run, +$at_xpass_count passed unexpectedly." ;; + + # No expected failures, but failures and xpasses + *:1:0) at_result="$at_result $at_were run, +$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;; + *:*:0) at_result="$at_result $at_were run, +$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;; + + # All of them. + *:*:1) at_result="$at_result $at_were run, +$at_xpass_count passed unexpectedly, +$at_total_fail_count failed ($at_xfail_count expected failure)." ;; + *:*:*) at_result="$at_result $at_were run, +$at_xpass_count passed unexpectedly, +$at_total_fail_count failed ($at_xfail_count expected failures)." ;; + esac + + if test $at_skip_count = 0 && test $at_run_count -gt 1; then + at_result="All $at_result" + fi +fi + +# Now put skips in the mix. +case $at_skip_count in + 0) ;; + 1) at_result="$at_result +1 test was skipped." ;; + *) at_result="$at_result +$at_skip_count tests were skipped." ;; +esac + +if test $at_unexpected_count = 0; then + echo "$at_color$at_result$at_std" + echo "$at_result" >&5 +else + echo "${at_color}ERROR: $at_result$at_std" >&2 + echo "ERROR: $at_result" >&5 + { + echo + $as_echo "## ------------------------ ## +## Summary of the failures. ## +## ------------------------ ##" + + # Summary of failed and skipped tests. + if test $at_fail_count != 0; then + echo "Failed tests:" + $SHELL "$at_myself" $at_fail_list --list + echo + fi + if test $at_skip_count != 0; then + echo "Skipped tests:" + $SHELL "$at_myself" $at_skip_list --list + echo + fi + if test $at_xpass_count != 0; then + echo "Unexpected passes:" + $SHELL "$at_myself" $at_xpass_list --list + echo + fi + if test $at_fail_count != 0; then + $as_echo "## ---------------------- ## +## Detailed failed tests. ## +## ---------------------- ##" + echo + for at_group in $at_fail_list + do + at_group_normalized=$at_group + + eval 'while :; do + case $at_group_normalized in #( + '"$at_format"'*) break;; + esac + at_group_normalized=0$at_group_normalized + done' + + cat "$at_suite_dir/$at_group_normalized/$as_me.log" + echo + done + echo + fi + if test -n "$at_top_srcdir"; then + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## ${at_top_build_prefix}config.log ## +_ASBOX + sed 's/^/| /' ${at_top_build_prefix}config.log + echo + fi + } >&5 + + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## $as_me.log was created. ## +_ASBOX + + echo + if $at_debug_p; then + at_msg='per-test log files' + else + at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'" + fi + $as_echo "Please send $at_msg and all information you think might help: + + To: <atf-devel@NetBSD.org> + Subject: [Automated Testing Framework 0.17] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly} + +You may investigate any problem if you feel able to do so, in which +case the test suite provides a good starting point. Its output may +be found below \`${at_testdir+${at_testdir}/}$as_me.dir'. +" + exit 1 +fi + +exit 0 + +## ------------- ## +## Actual tests. ## +## ------------- ## +#AT_START_1 +at_fn_group_banner 1 't_test_program_filter.at:30' \ + "test_program: filter test cases by name" " " +at_xfail=no +( + $as_echo "1. $at_setup_line: testing $at_desc ..." + $at_traceon + + +for h in tp_basic_c tp_basic_cpp tp_basic_sh; do + +{ set +x +$as_echo "$at_srcdir/t_test_program_filter.at:35: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_\${h} \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap invalid" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_filter.at:35" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_${h} \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap invalid +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_filter.at:35" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_test_program_filter.at:36: grep \"Unknown test case .invalid'\" stderr" +at_fn_check_prepare_trace "t_test_program_filter.at:36" +( $at_check_trace; grep "Unknown test case .invalid'" stderr +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_filter.at:36" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_test_program_filter.at:40: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_\${h} \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap \"*p*\"" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_filter.at:40" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_${h} \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap "*p*" +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_filter.at:40" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_test_program_filter.at:41: grep \"Unknown test case .\\\\*p\\\\*'\" stderr" +at_fn_check_prepare_trace "t_test_program_filter.at:41" +( $at_check_trace; grep "Unknown test case .\\*p\\*'" stderr +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_filter.at:41" +$at_failed && at_fn_log_failure +$at_traceon; } + + +cat >expres <<'_ATEOF' +passed +_ATEOF + +{ set +x +$as_echo "$at_srcdir/t_test_program_filter.at:46: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_\${h} \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -r resout pass" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_filter.at:46" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_${h} \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -r resout pass +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_filter.at:46" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_test_program_filter.at:47: cmp -s resout expres" +at_fn_check_prepare_trace "t_test_program_filter.at:47" +( $at_check_trace; cmp -s resout expres +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_filter.at:47" +$at_failed && at_fn_log_failure +$at_traceon; } + + +cat >expres <<'_ATEOF' +skipped: By design +_ATEOF + +{ set +x +$as_echo "$at_srcdir/t_test_program_filter.at:51: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_\${h} \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -r resout skip" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_filter.at:51" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_${h} \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -r resout skip +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_filter.at:51" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_test_program_filter.at:52: cmp -s resout expres" +at_fn_check_prepare_trace "t_test_program_filter.at:52" +( $at_check_trace; cmp -s resout expres +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_filter.at:52" +$at_failed && at_fn_log_failure +$at_traceon; } + + +cat >expres <<'_ATEOF' +failed: On purpose +_ATEOF + +{ set +x +$as_echo "$at_srcdir/t_test_program_filter.at:56: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_\${h} \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -r resout fail" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_filter.at:56" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_${h} \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -r resout fail +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_filter.at:56" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_test_program_filter.at:57: cmp -s resout expres" +at_fn_check_prepare_trace "t_test_program_filter.at:57" +( $at_check_trace; cmp -s resout expres +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_filter.at:57" +$at_failed && at_fn_log_failure +$at_traceon; } + + +done + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_1 +#AT_START_2 +at_fn_group_banner 2 't_test_program_run.at:30' \ + "test_program: output format and exit codes" " " +at_xfail=no +( + $as_echo "2. $at_setup_line: testing $at_desc ..." + $at_traceon + + +for h in tp_basic_c tp_basic_cpp tp_basic_sh; do + +{ set +x +$as_echo "$at_srcdir/t_test_program_run.at:35: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_\${h} \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -r resout pass" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_run.at:35" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_${h} \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -r resout pass +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +echo stdout:; tee stdout <"$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_run.at:35" +$at_failed && at_fn_log_failure +$at_traceon; } + +echo 'passed' >expres <<EOF +passed +EOF + + { set +x +$as_echo "$at_srcdir/t_test_program_run.at:36: diff -u expres resout" +at_fn_check_prepare_trace "t_test_program_run.at:36" +( $at_check_trace; diff -u expres resout +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_run.at:36" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_test_program_run.at:38: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_\${h} \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -r resout fail" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_run.at:38" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_${h} \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -r resout fail +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +echo stdout:; tee stdout <"$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_run.at:38" +$at_failed && at_fn_log_failure +$at_traceon; } + +echo 'failed' >expres <<EOF +failed +EOF + echo "failed: On purpose" >expres + { set +x +$as_echo "$at_srcdir/t_test_program_run.at:39: diff -u expres resout" +at_fn_check_prepare_trace "t_test_program_run.at:39" +( $at_check_trace; diff -u expres resout +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_run.at:39" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_test_program_run.at:41: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_\${h} \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -r resout skip" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_run.at:41" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_${h} \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -r resout skip +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +echo stdout:; tee stdout <"$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_run.at:41" +$at_failed && at_fn_log_failure +$at_traceon; } + +echo 'skipped' >expres <<EOF +skipped +EOF + echo "skipped: By design" >expres + { set +x +$as_echo "$at_srcdir/t_test_program_run.at:42: diff -u expres resout" +at_fn_check_prepare_trace "t_test_program_run.at:42" +( $at_check_trace; diff -u expres resout +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_run.at:42" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_test_program_run.at:44: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_\${h} \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -r resout default" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_run.at:44" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_${h} \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -r resout default +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +echo stdout:; tee stdout <"$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_run.at:44" +$at_failed && at_fn_log_failure +$at_traceon; } + +echo 'passed' >expres <<EOF +passed +EOF + + { set +x +$as_echo "$at_srcdir/t_test_program_run.at:45: diff -u expres resout" +at_fn_check_prepare_trace "t_test_program_run.at:45" +( $at_check_trace; diff -u expres resout +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_run.at:45" +$at_failed && at_fn_log_failure +$at_traceon; } + + +done + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_2 +#AT_START_3 +at_fn_group_banner 3 't_test_program_list.at:30' \ + "test_program: list test cases" " " +at_xfail=no +( + $as_echo "3. $at_setup_line: testing $at_desc ..." + $at_traceon + + +for h in tp_basic_c tp_basic_cpp tp_basic_sh; do + +cat >expout <<'_ATEOF' +Content-Type: application/X-atf-tp; version="1" + +ident: pass +descr: An empty test case that always passes + +ident: fail +descr: An empty test case that always fails + +ident: skip +descr: An empty test case that is always skipped + +ident: default +descr: A test case that passes without explicitly stating it +_ATEOF + + +{ set +x +$as_echo "$at_srcdir/t_test_program_list.at:49: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_\${h} \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -l" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_list.at:49" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_${h} \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -l +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_list.at:49" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_test_program_list.at:51: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_\${h} \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -l pass" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_list.at:51" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_${h} \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -l pass +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_list.at:51" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_test_program_list.at:52: grep 'Cannot provide test case names with -l' stderr" +at_fn_check_prepare_trace "t_test_program_list.at:52" +( $at_check_trace; grep 'Cannot provide test case names with -l' stderr +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_list.at:52" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_test_program_list.at:55: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_\${h} \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -l pass fail" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_list.at:55" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_${h} \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -l pass fail +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_list.at:55" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_test_program_list.at:56: grep 'Cannot provide test case names with -l' stderr" +at_fn_check_prepare_trace "t_test_program_list.at:56" +( $at_check_trace; grep 'Cannot provide test case names with -l' stderr +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_list.at:56" +$at_failed && at_fn_log_failure +$at_traceon; } + + +done + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_3 +#AT_START_4 +at_fn_group_banner 4 't_test_program_compare.at:30' \ + "test_program: compare the user-visible interfaces" "" +at_xfail=no +( + $as_echo "4. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:33: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_c \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:33" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_c \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:33" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:35: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_cpp \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:35" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_cpp \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:35" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:37: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:37" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:37" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:40: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_c \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -h" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:40" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_c \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -h +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:40" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:42: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_cpp \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -h" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:42" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_cpp \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -h +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:42" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:44: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -h" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:44" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -h +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:44" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:47: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_c \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -Z" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:47" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_c \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -Z +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:47" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:49: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_cpp \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -Z" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:49" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_cpp \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -Z +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:49" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:51: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -Z" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:51" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -Z +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:51" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:54: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_c \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -l" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:54" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_c \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -l +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo stdout:; tee stdout <"$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:54" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:56: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_cpp \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -l" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:56" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_cpp \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -l +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:56" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:58: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -l" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:58" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -l +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:58" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:61: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_c \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:61" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_c \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +echo stdout:; tee stdout <"$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:61" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:65: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_cpp \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:65" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_cpp \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:65" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:69: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:69" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:69" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:73: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_c \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -r resout pass" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:73" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_c \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -r resout pass +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +echo stdout:; tee stdout <"$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:73" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +sed 's,tp_basic_c,tp_basic_cpp,g' <resout >resexp +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:78: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_cpp \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -r resout pass" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:78" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_cpp \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -r resout pass +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:78" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:80: cmp -s resout resexp" +at_fn_check_prepare_trace "t_test_program_compare.at:80" +( $at_check_trace; cmp -s resout resexp +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:80" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +sed 's,tp_basic_c,tp_basic_sh,g' <resout >resexp +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:84: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -r resout pass" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:84" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -r resout pass +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:84" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:86: cmp -s resout resexp" +at_fn_check_prepare_trace "t_test_program_compare.at:86" +( $at_check_trace; cmp -s resout resexp +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:86" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:89: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_c \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -r resout fail" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:89" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_c \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -r resout fail +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +echo stdout:; tee stdout <"$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:89" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +sed 's,tp_basic_c,tp_basic_cpp,g' <resout >resexp +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:94: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_cpp \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -r resout fail" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:94" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_cpp \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -r resout fail +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:94" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:96: cmp -s resout resexp" +at_fn_check_prepare_trace "t_test_program_compare.at:96" +( $at_check_trace; cmp -s resout resexp +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:96" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +sed 's,tp_basic_c,tp_basic_sh,g' <resout >resexp +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:100: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -r resout fail" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:100" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -r resout fail +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:100" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:102: cmp -s resout resexp" +at_fn_check_prepare_trace "t_test_program_compare.at:102" +( $at_check_trace; cmp -s resout resexp +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:102" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:105: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_c \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -r resout skip" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:105" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_c \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -r resout skip +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +echo stdout:; tee stdout <"$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:105" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +sed 's,tp_basic_c,tp_basic_cpp,g' <resout >resexp +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:110: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_cpp \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -r resout skip" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:110" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_cpp \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -r resout skip +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:110" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:112: cmp -s resout resexp" +at_fn_check_prepare_trace "t_test_program_compare.at:112" +( $at_check_trace; cmp -s resout resexp +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:112" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +sed 's,tp_basic_c,tp_basic_sh,g' <resout >resexp +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:116: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -r resout skip" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:116" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -r resout skip +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:116" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:118: cmp -s resout resexp" +at_fn_check_prepare_trace "t_test_program_compare.at:118" +( $at_check_trace; cmp -s resout resexp +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:118" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:121: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_c \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -r resout default" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:121" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_c \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -r resout default +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +echo stdout:; tee stdout <"$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:121" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +sed 's,tp_basic_c,tp_basic_cpp,g' <resout >resexp +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:126: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_cpp \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -r resout default" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:126" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_cpp \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -r resout default +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:126" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:128: cmp -s resout resexp" +at_fn_check_prepare_trace "t_test_program_compare.at:128" +( $at_check_trace; cmp -s resout resexp +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:128" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +sed 's,tp_basic_c,tp_basic_sh,g' <resout >resexp +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:132: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap -r resout default" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:132" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap -r resout default +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:132" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:134: cmp -s resout resexp" +at_fn_check_prepare_trace "t_test_program_compare.at:134" +( $at_check_trace; cmp -s resout resexp +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:134" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:137: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_c \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap pass fail" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:137" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_c \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap pass fail +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +echo stdout:; tee stdout <"$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:137" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:141: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_cpp \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap pass fail" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:141" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_cpp \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap pass fail +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:141" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:145: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap pass fail" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:145" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap pass fail +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:145" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:149: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_c \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap unknown" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:149" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_c \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap unknown +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +echo stdout:; tee stdout <"$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:149" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:153: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_cpp \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap unknown" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:153" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_cpp \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap unknown +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:153" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:157: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap unknown" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:157" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap unknown +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/t_test_program_compare.at:157" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:161: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_c \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap pass:cleanup" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:161" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_c \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap pass:cleanup +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +echo stdout:; tee stdout <"$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:161" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:165: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_cpp \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap pass:cleanup" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:165" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_cpp \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap pass:cleanup +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:165" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:169: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap pass:cleanup" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:169" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap pass:cleanup +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:169" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:173: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_c \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap skip" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:173" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_c \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap skip +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; tee stderr <"$at_stderr" +echo stdout:; tee stdout <"$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:173" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_cpp,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_cpp,g' <stderr >experr +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:177: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_cpp \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap skip" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:177" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_cpp \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap skip +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:177" +$at_failed && at_fn_log_failure +$at_traceon; } + +sed 's,tp_basic_c,tp_basic_sh,g' <stdout >expout +sed 's,tp_basic_c,tp_basic_sh,g' <stderr >experr +{ set +x +$as_echo "$at_srcdir/t_test_program_compare.at:181: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_basic_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap skip" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_test_program_compare.at:181" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_basic_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap skip +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +$at_diff experr "$at_stderr" || at_failed=: +$at_diff expout "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/t_test_program_compare.at:181" +$at_failed && at_fn_log_failure +$at_traceon; } + + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_4 +#AT_START_5 +at_fn_group_banner 5 't_subr_atf_check.at:30' \ + "subr: atf_check function" " " +at_xfail=no +( + $as_echo "5. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:32: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap exitcode_0_0" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:32" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap exitcode_0_0 +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_subr_atf_check.at:32" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:34: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap exitcode_0_1" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:34" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap exitcode_0_1 +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/t_subr_atf_check.at:34" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:36: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap exitcode_1_0" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:36" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap exitcode_1_0 +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/t_subr_atf_check.at:36" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:38: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap exitcode_1_1" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:38" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap exitcode_1_1 +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_subr_atf_check.at:38" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:41: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap stdout_expout_pass" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:41" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap stdout_expout_pass +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_subr_atf_check.at:41" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:43: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap stdout_expout_fail" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:43" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap stdout_expout_fail +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/t_subr_atf_check.at:43" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:45: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap stdout_ignore_empty" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:45" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap stdout_ignore_empty +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_subr_atf_check.at:45" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:47: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap stdout_ignore_sth" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:47" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap stdout_ignore_sth +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_subr_atf_check.at:47" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:49: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap stdout_null_empty" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:49" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap stdout_null_empty +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_subr_atf_check.at:49" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:51: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap stdout_null_sth" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:51" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap stdout_null_sth +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/t_subr_atf_check.at:51" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:53: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap stdout_stdout_written" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:53" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap stdout_stdout_written +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_subr_atf_check.at:53" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:55: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap stdout_match_ok" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:55" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap stdout_match_ok +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_subr_atf_check.at:55" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:57: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap stdout_match_fail" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:57" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap stdout_match_fail +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/t_subr_atf_check.at:57" +$at_failed && at_fn_log_failure +$at_traceon; } + + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:60: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap stderr_experr_pass" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:60" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap stderr_experr_pass +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_subr_atf_check.at:60" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:62: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap stderr_experr_fail" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:62" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap stderr_experr_fail +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/t_subr_atf_check.at:62" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:64: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap stderr_ignore_empty" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:64" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap stderr_ignore_empty +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_subr_atf_check.at:64" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:66: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap stderr_ignore_sth" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:66" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap stderr_ignore_sth +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_subr_atf_check.at:66" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:68: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap stderr_null_empty" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:68" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap stderr_null_empty +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_subr_atf_check.at:68" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:70: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap stderr_null_sth" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:70" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap stderr_null_sth +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/t_subr_atf_check.at:70" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:72: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap stderr_stderr_written" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:72" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap stderr_stderr_written +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_subr_atf_check.at:72" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:74: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap stderr_match_ok" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:74" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap stderr_match_ok +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/t_subr_atf_check.at:74" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/t_subr_atf_check.at:76: \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap/h_tp_atf_check_sh \\ + -s \$({ + old=\$(pwd) + while test \$(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=\$(pwd) + cd \${old} + echo \${topdir} +})/bootstrap stderr_match_fail" +at_fn_check_prepare_notrace 'a $(...) command substitution' "t_subr_atf_check.at:76" +( $at_check_trace; $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap/h_tp_atf_check_sh \ + -s $({ + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +})/bootstrap stderr_match_fail +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/t_subr_atf_check.at:76" +$at_failed && at_fn_log_failure +$at_traceon; } + + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_5 diff --git a/unit/atf-src/bootstrap/testsuite.at b/unit/atf-src/bootstrap/testsuite.at new file mode 100644 index 0000000..f13d391 --- /dev/null +++ b/unit/atf-src/bootstrap/testsuite.at @@ -0,0 +1,80 @@ +dnl Copyright (c) 2007 The NetBSD Foundation, Inc. +dnl All rights reserved. +dnl +dnl Redistribution and use in source and binary forms, with or without +dnl modification, are permitted provided that the following conditions +dnl are met: +dnl 1. Redistributions of source code must retain the above copyright +dnl notice, this list of conditions and the following disclaimer. +dnl 2. Redistributions in binary form must reproduce the above copyright +dnl notice, this list of conditions and the following disclaimer in the +dnl documentation and/or other materials provided with the distribution. +dnl +dnl THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND +dnl CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +dnl INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +dnl IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY +dnl DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +dnl DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +dnl GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +dnl INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +dnl IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +dnl OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +dnl IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +AT_INIT([bootstrap tests]) + +m4_define([GUESS_TOPDIR], { + old=$(pwd) + while test $(pwd) != '/' -a ! -e ./Makefile; do + cd .. + done + topdir=$(pwd) + cd ${old} + echo ${topdir} +}) + +m4_define([APP_HELPER], [$(GUESS_TOPDIR)/bootstrap/h_$1]) + +m4_define([TEST_HELPER_NO_S], [$(GUESS_TOPDIR)/bootstrap/h_$1]) + +m4_define([TEST_HELPER], [$(GUESS_TOPDIR)/bootstrap/h_$1 \ + -s $(GUESS_TOPDIR)/bootstrap]) + +m4_define(COUNT_IN_LINES, + [test @S|@[($1 | wc -l | awk '{ print @S|@1 }')] = $2]) + +m4_define(COUNT_LINES, [test @S|@[(wc -l $1 | awk '{ print @S|@1 }')] = $2]) + +m4_define(TCR_DATA, [echo '$2' >$1 <<EOF +$2 +EOF + m4_ifnblank([$3], [echo "$2: $3" >$1])]) + +m4_define(CHECK_TCR, [TCR_DATA([expres], $2, $3) + AT_CHECK([diff -u expres $1], [0], [], [])]) + +m4_define(CHECK_TCS_TCR, + [AT_CHECK([grep '^tc-end: @<:@0-9. @:>@*, $1, $2' $3], [0], + [ignore], [])]) + +m4_define(CHECK_TPS_TCR, + [AT_CHECK([grep '^tc-end: @<:@0-9. @:>@*, $1, $2' $3], [0], + [ignore], [])]) + +dnl The tests below are sorted depending on how important they are. +m4_include(bootstrap/t_test_program_filter.at) +m4_include(bootstrap/t_test_program_run.at) +m4_include(bootstrap/t_test_program_list.at) +m4_include(bootstrap/t_test_program_compare.at) +m4_include(bootstrap/t_subr_atf_check.at) + +m4_if(ENABLE_TOOLS, yes, [ + m4_include(bootstrap/t_application_opts_args.at) + m4_include(bootstrap/t_application_help.at) + m4_include(bootstrap/t_atf_config.at) + m4_include(bootstrap/t_atf_run.at) +]) + +dnl vim: syntax=m4:expandtab:shiftwidth=4:softtabstop=4 |