summaryrefslogtreecommitdiffstats
path: root/unit/atf-src/bootstrap
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-05 18:37:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-05 18:37:14 +0000
commitea648e70a989cca190cd7403fe892fd2dcc290b4 (patch)
treee2b6b1c647da68b0d4d66082835e256eb30970e8 /unit/atf-src/bootstrap
parentInitial commit. (diff)
downloadbind9-upstream.tar.xz
bind9-upstream.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 '')
-rw-r--r--unit/atf-src/bootstrap/Makefile.am.inc114
-rw-r--r--unit/atf-src/bootstrap/h_app_empty.cpp62
-rw-r--r--unit/atf-src/bootstrap/h_app_opts_args.cpp102
-rw-r--r--unit/atf-src/bootstrap/h_tp_atf_check_sh.sh300
-rw-r--r--unit/atf-src/bootstrap/h_tp_basic_c.c79
-rw-r--r--unit/atf-src/bootstrap/h_tp_basic_cpp.cpp82
-rw-r--r--unit/atf-src/bootstrap/h_tp_basic_sh.sh75
-rw-r--r--unit/atf-src/bootstrap/h_tp_fail.sh43
-rw-r--r--unit/atf-src/bootstrap/h_tp_pass.sh43
-rw-r--r--unit/atf-src/bootstrap/package.m47
-rw-r--r--unit/atf-src/bootstrap/t_application_help.at40
-rw-r--r--unit/atf-src/bootstrap/t_application_opts_args.at86
-rw-r--r--unit/atf-src/bootstrap/t_atf_config.at108
-rw-r--r--unit/atf-src/bootstrap/t_atf_run.at178
-rw-r--r--unit/atf-src/bootstrap/t_subr_atf_check.at77
-rw-r--r--unit/atf-src/bootstrap/t_test_program_compare.at182
-rw-r--r--unit/atf-src/bootstrap/t_test_program_filter.at59
-rw-r--r--unit/atf-src/bootstrap/t_test_program_list.at59
-rw-r--r--unit/atf-src/bootstrap/t_test_program_run.at47
-rwxr-xr-xunit/atf-src/bootstrap/testsuite5873
-rw-r--r--unit/atf-src/bootstrap/testsuite.at80
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