summaryrefslogtreecommitdiff
path: root/regress
diff options
context:
space:
mode:
authorrillig <rillig@pkgsrc.org>2020-05-02 07:24:31 +0000
committerrillig <rillig@pkgsrc.org>2020-05-02 07:24:31 +0000
commita334398ffb7c8dbb9a7ce8c7338d7c65e752b0ee (patch)
tree06a347d9b9a0bed1f952799cfdcac5c6c6839f15 /regress
parentffd84284783cc47100cd8b2b9ac638c5f8876e9b (diff)
downloadpkgsrc-a334398ffb7c8dbb9a7ce8c7338d7c65e752b0ee.tar.gz
regress: move tests for platform tools to tools-platform
Diffstat (limited to 'regress')
-rw-r--r--regress/tools-platform/awk.test (renamed from regress/tools/files/awk-test.sh)2
-rw-r--r--regress/tools-platform/sed.test (renamed from regress/tools/files/sed-test.sh)2
-rw-r--r--regress/tools-platform/sh.test14
-rw-r--r--regress/tools-platform/sort.test (renamed from regress/tools/files/sort-test.sh)2
-rw-r--r--regress/tools-platform/spec14
-rw-r--r--regress/tools-platform/tar.test (renamed from regress/tools/files/tar-test.sh)2
-rw-r--r--regress/tools-platform/tests.subr14
-rw-r--r--regress/tools-platform/tr.test (renamed from regress/tools/files/tr-test.sh)7
-rw-r--r--regress/tools/Makefile4
-rw-r--r--regress/tools/files/sh-test.sh44
10 files changed, 47 insertions, 58 deletions
diff --git a/regress/tools/files/awk-test.sh b/regress/tools-platform/awk.test
index 9249316804e..1f2228496a5 100644
--- a/regress/tools/files/awk-test.sh
+++ b/regress/tools-platform/awk.test
@@ -1,5 +1,5 @@
#! /bin/sh
-# $NetBSD: awk-test.sh,v 1.8 2006/05/31 13:10:49 rillig Exp $
+# $NetBSD: awk.test,v 1.1 2020/05/02 07:24:32 rillig Exp $
#
set -e
diff --git a/regress/tools/files/sed-test.sh b/regress/tools-platform/sed.test
index 26f10bd43e6..693d8d3dd7f 100644
--- a/regress/tools/files/sed-test.sh
+++ b/regress/tools-platform/sed.test
@@ -1,5 +1,5 @@
#! /bin/sh
-# $NetBSD: sed-test.sh,v 1.1 2006/09/20 07:39:55 rillig Exp $
+# $NetBSD: sed.test,v 1.1 2020/05/02 07:24:32 rillig Exp $
#
set -e
diff --git a/regress/tools-platform/sh.test b/regress/tools-platform/sh.test
index 93cebf2aba0..39b06b85dd0 100644
--- a/regress/tools-platform/sh.test
+++ b/regress/tools-platform/sh.test
@@ -1,5 +1,5 @@
#! /bin/sh
-# $NetBSD: sh.test,v 1.1 2020/05/01 18:37:59 rillig Exp $
+# $NetBSD: sh.test,v 1.2 2020/05/02 07:24:32 rillig Exp $
#
# Tests for the shell that is available as ${SH} in Makefiles.
#
@@ -39,3 +39,15 @@ assert_that "%: ${pathname%/*}" --equals "%: first/second/third"
# Make sure that $(...) subshells work.
assert_that "subshell: $(echo world | tr 'world' 'hello')" \
--equals "subshell: hello"
+
+# In NetBSD 7, /bin/sh handled backslashes in word expansions incorrectly.
+# See https://gnats.netbsd.org/43469.
+line='#define bindir "/usr/bin" /* bar */'
+case $MACHINE_PLATFORM in
+(NetBSD-[0-7].*-*)
+ assert_that "${line%%/\**}" --equals '#define bindir "'
+ ;;
+(*)
+ assert_that "${line%%/\**}" --equals '#define bindir "/usr/bin" '
+ ;;
+esac
diff --git a/regress/tools/files/sort-test.sh b/regress/tools-platform/sort.test
index f1bae3a5181..47484ee1985 100644
--- a/regress/tools/files/sort-test.sh
+++ b/regress/tools-platform/sort.test
@@ -1,5 +1,5 @@
#! /bin/sh
-# $NetBSD: sort-test.sh,v 1.1 2006/06/25 21:47:28 rillig Exp $
+# $NetBSD: sort.test,v 1.1 2020/05/02 07:24:32 rillig Exp $
#
set -e
diff --git a/regress/tools-platform/spec b/regress/tools-platform/spec
index 384dcc62dfe..91732b6abde 100644
--- a/regress/tools-platform/spec
+++ b/regress/tools-platform/spec
@@ -1,4 +1,4 @@
-# $NetBSD: spec,v 1.1 2020/05/01 18:37:59 rillig Exp $
+# $NetBSD: spec,v 1.2 2020/05/02 07:24:32 rillig Exp $
#
# Tests for the platform-provided tools.
#
@@ -6,6 +6,10 @@
# In that environment, only the PATH is set, and it points to a
# directory containing only the tools from mk/tools/tools.${OPSYS}.mk.
#
+# Additionally, MACHINE_PLATFORM is set, so that the tests can expect
+# different results depending on the platform. This is used for
+# documenting bugs that have been fixed in a certain version.
+#
# The individual tests may create arbitrary files in their current
# working directory.
#
@@ -22,10 +26,16 @@ do_test() {
-f "$regressdir/zzz-prepare-tools.mk" \
"prepare-platform-tools"
)
+ machine_platform=$(
+ cd ../../pkgtools/digest \
+ && $TEST_MAKE show-var VARNAME=MACHINE_PLATFORM
+ )
for testfile in *.test; do
mkdir "$tmpdir/work"
- (cd "$tmpdir/work" && "$bindir/env" -i PATH="$bindir" \
+ (cd "$tmpdir/work" && "$bindir/env" -i \
+ MACHINE_PLATFORM="$machine_platform" \
+ PATH="$bindir" \
"sh" "$regressdir/$testfile") \
|| TEST_EXITSTATUS=$?
rm -rf "$tmpdir/work"
diff --git a/regress/tools/files/tar-test.sh b/regress/tools-platform/tar.test
index 02573d62509..c549e9ae72c 100644
--- a/regress/tools/files/tar-test.sh
+++ b/regress/tools-platform/tar.test
@@ -1,5 +1,5 @@
#! /bin/sh
-# $NetBSD: tar-test.sh,v 1.1 2007/09/09 08:01:45 rillig Exp $
+# $NetBSD: tar.test,v 1.1 2020/05/02 07:24:32 rillig Exp $
#
set -e
diff --git a/regress/tools-platform/tests.subr b/regress/tools-platform/tests.subr
new file mode 100644
index 00000000000..db2de71c1dc
--- /dev/null
+++ b/regress/tools-platform/tests.subr
@@ -0,0 +1,14 @@
+# $NetBSD: tests.subr,v 1.1 2020/05/02 07:24:32 rillig Exp $
+#
+
+# usage: testcase_start <testname>
+testcase_start() {
+ printf " Running testcase %s\\n" "$1"
+}
+
+# usage: assert_equal <testname> <expected> <got>
+assert_equal() {
+ [ "x$2" = "x$3" ] && return 0
+ printf "error: assert_equal failed for \"%s\":\nexpected: %s\nbut got: %s\n" "$1" "$2" "$3" 1>&2
+ return 1
+}
diff --git a/regress/tools/files/tr-test.sh b/regress/tools-platform/tr.test
index 32366311a55..18bf2fe62ac 100644
--- a/regress/tools/files/tr-test.sh
+++ b/regress/tools-platform/tr.test
@@ -1,5 +1,5 @@
#! /bin/sh
-# $NetBSD: tr-test.sh,v 1.2 2005/11/24 19:46:45 rillig Exp $
+# $NetBSD: tr.test,v 1.1 2020/05/02 07:24:32 rillig Exp $
#
set -e
@@ -38,9 +38,8 @@ tr_test "eat-newlines" \
"foo${nl}bar${nl}" "foobar" -d "\\n"
tr_test "eat-minus" \
"describe-function" "describefunction" -d "-"
-# The following test does not work on NetBSD 1.6.2.
-#tr_test "eat-minus-d" \
-# "describe-function" "escribefunction" -d "-d"
+tr_test "eat-minus-d" \
+ "describe-function" "escribefunction" -d -- "-d"
tr_test "eat-d-minus" \
"describe-function" "escribefunction" -d "d-"
diff --git a/regress/tools/Makefile b/regress/tools/Makefile
index 14751360895..0d60b0c057b 100644
--- a/regress/tools/Makefile
+++ b/regress/tools/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.15 2019/03/24 11:29:19 rillig Exp $
+# $NetBSD: Makefile,v 1.16 2020/05/02 07:24:31 rillig Exp $
#
DISTNAME= # not applicable
@@ -15,8 +15,6 @@ WRKSRC= ${WRKDIR}
NO_CHECKSUM= yes
PLIST_SRC= # none
REGRESS_TESTS+= logging shquote
-REGRESS_TESTS+= awk sed sh sort tar tr
-USE_TOOLS+= awk sed sh sort tar tr
TOOLS_CREATE+= script-dquot
TOOLS_SCRIPT.script-dquot= \
diff --git a/regress/tools/files/sh-test.sh b/regress/tools/files/sh-test.sh
deleted file mode 100644
index 93cd2211d35..00000000000
--- a/regress/tools/files/sh-test.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#! /bin/sh
-# $NetBSD: sh-test.sh,v 1.3 2018/12/05 19:01:40 rillig Exp $
-#
-
-set -e
-
-mydir=`dirname "$0"`
-. "${mydir}/tests.subr"
-
-#
-# Functions specific for the sh testsuite.
-#
-
-# usage: sh_test <testname> <input> <expected-output> <args...>
-sh_test() {
- testname=$1; input=$2; expected=$3; shift 3;
-
- testcase_start "${testname}"
- output=`sh ${1+"$@"} <<EOF
-$input
-EOF
-`
- assert_equal "${testname}" "${expected}" "${output}"
-}
-
-# usage: sh_assert_equals "testname" "expected" "got"
-sh_assert_equals() {
-
- testcase_start "$1"
- assert_equal "$1" "$2" "$3"
-}
-
-#
-# The actual test.
-#
-
-nl="
-"
-
-# If this test fails because the result is "#define bindir \"", the
-# tested shell may be from NetBSD 7.0, which is known to have this bug.
-# Since NetBSD 8, this bug is fixed. See https://gnats.netbsd.org/43469.
-line="#define bindir \"/usr/bin\" /* bar */"
-sh_assert_equals "removing C comments" "#define bindir \"/usr/bin\" " "${line%%/\**}"