Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Dec 2013 04:09:18 +0000 (UTC)
From:      Julio Merino <jmmv@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r259210 - in head: bin bin/date bin/date/tests bin/mv bin/mv/tests bin/pax bin/pax/tests bin/sh bin/sh/tests bin/sh/tests/builtins bin/sh/tests/errors bin/sh/tests/execution bin/sh/test...
Message-ID:  <201312110409.rBB49Ir6074961@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jmmv
Date: Wed Dec 11 04:09:17 2013
New Revision: 259210
URL: http://svnweb.freebsd.org/changeset/base/259210

Log:
  Migrate tools/regression/bin/ tests to the new layout.
  
  This change is a proof of concept on how to easily integrate existing
  tests from the tools/regression/ hierarchy into the /usr/tests/ test
  suite and on how to adapt them to the new layout for src.
  
  To achieve these goals, this change:
  
  - Moves tests from tools/regression/bin/<tool>/ to bin/<tool>/tests/.
  - Renames the previous regress.sh files to legacy_test.sh.
  - Adds Makefiles to build and install the tests and all their supporting
    data files into /usr/tests/bin/.
  - Plugs the legacy_test test programs into the test suite using the new
    TAP backend for Kyua (appearing in 0.8) so that the code of the test
    programs does not have to change.
  - Registers the new directories in the BSD.test.dist mtree file.
  
  Reviewed by:	freebsd-testing
  Approved by:	rpaulo (mentor)

Added:
  head/bin/date/tests/
  head/bin/date/tests/Makefile   (contents, props changed)
  head/bin/date/tests/legacy_test.sh
     - copied unchanged from r259205, head/tools/regression/bin/date/regress.sh
  head/bin/mv/tests/
  head/bin/mv/tests/Makefile   (contents, props changed)
  head/bin/mv/tests/legacy_test.sh
     - copied unchanged from r258552, head/tools/regression/bin/mv/regress.sh
  head/bin/pax/tests/
  head/bin/pax/tests/Makefile   (contents, props changed)
     - copied unchanged from r258552, head/tools/regression/bin/pax/regress.t
  head/bin/sh/tests/
  head/bin/sh/tests/Makefile   (contents, props changed)
  head/bin/sh/tests/builtins/
     - copied from r258552, head/tools/regression/bin/sh/builtins/
  head/bin/sh/tests/builtins/Makefile   (contents, props changed)
  head/bin/sh/tests/errors/
     - copied from r258552, head/tools/regression/bin/sh/errors/
  head/bin/sh/tests/errors/Makefile   (contents, props changed)
  head/bin/sh/tests/execution/
     - copied from r258552, head/tools/regression/bin/sh/execution/
  head/bin/sh/tests/execution/Makefile   (contents, props changed)
  head/bin/sh/tests/expansion/
     - copied from r258552, head/tools/regression/bin/sh/expansion/
  head/bin/sh/tests/expansion/Makefile   (contents, props changed)
  head/bin/sh/tests/legacy_test.sh
     - copied, changed from r258552, head/tools/regression/bin/sh/regress.sh
  head/bin/sh/tests/parameters/
     - copied from r258552, head/tools/regression/bin/sh/parameters/
  head/bin/sh/tests/parameters/Makefile   (contents, props changed)
  head/bin/sh/tests/parser/
     - copied from r258552, head/tools/regression/bin/sh/parser/
  head/bin/sh/tests/parser/Makefile   (contents, props changed)
  head/bin/sh/tests/set-e/
     - copied from r258552, head/tools/regression/bin/sh/set-e/
  head/bin/sh/tests/set-e/Makefile   (contents, props changed)
  head/bin/test/tests/
  head/bin/test/tests/Makefile   (contents, props changed)
  head/bin/test/tests/legacy_test.sh
     - copied unchanged from r258552, head/tools/regression/bin/test/regress.sh
  head/bin/tests/
  head/bin/tests/Makefile   (contents, props changed)
Directory Properties:
  head/bin/pax/tests/legacy_test.sh   (props changed)
Deleted:
  head/tools/regression/bin/
Modified:
  head/bin/Makefile
  head/bin/date/Makefile
  head/bin/mv/Makefile
  head/bin/pax/Makefile
  head/bin/sh/Makefile
  head/bin/test/Makefile
  head/etc/mtree/BSD.tests.dist

Modified: head/bin/Makefile
==============================================================================
--- head/bin/Makefile	Wed Dec 11 03:41:07 2013	(r259209)
+++ head/bin/Makefile	Wed Dec 11 04:09:17 2013	(r259210)
@@ -52,6 +52,10 @@ SUBDIR+=	rmail
 SUBDIR+=	csh
 .endif
 
+.if ${MK_TESTS} != "no"
+SUBDIR+=	tests
+.endif
+
 .include <bsd.arch.inc.mk>
 
 SUBDIR:=	${SUBDIR:O}

Modified: head/bin/date/Makefile
==============================================================================
--- head/bin/date/Makefile	Wed Dec 11 03:41:07 2013	(r259209)
+++ head/bin/date/Makefile	Wed Dec 11 04:09:17 2013	(r259210)
@@ -1,7 +1,13 @@
 #	@(#)Makefile	8.1 (Berkeley) 5/31/93
 # $FreeBSD$
 
+.include <bsd.own.mk>
+
 PROG=	date
 SRCS=	date.c netdate.c vary.c
 
+.if ${MK_TESTS} != "no"
+SUBDIR+=    tests
+.endif
+
 .include <bsd.prog.mk>

Added: head/bin/date/tests/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/bin/date/tests/Makefile	Wed Dec 11 04:09:17 2013	(r259210)
@@ -0,0 +1,9 @@
+# $FreeBSD$
+
+.include <bsd.own.mk>
+
+TESTSDIR=	${TESTSBASE}/bin/date
+
+TAP_TESTS_SH=	legacy_test
+
+.include <tap.test.mk>

Copied: head/bin/date/tests/legacy_test.sh (from r259205, head/tools/regression/bin/date/regress.sh)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/bin/date/tests/legacy_test.sh	Wed Dec 11 04:09:17 2013	(r259210, copy of r259205, head/tools/regression/bin/date/regress.sh)
@@ -0,0 +1,91 @@
+#!/bin/sh
+
+#
+# Regression tests for date(1)
+#
+# Submitted by Edwin Groothuis <edwin@FreeBSD.org>
+#
+# $FreeBSD$
+#
+
+#
+# These two date/times have been chosen carefully, they
+# create both the single digit and double/multidigit version of
+# the values.
+#
+# To create a new one, make sure you are using the UTC timezone!
+#
+
+TEST1=3222243		# 1970-02-07 07:04:03
+TEST2=1005600000	# 2001-11-12 21:11:12
+
+export LC_ALL=C
+export TZ=UTC
+count=0
+
+check()
+{
+	S=$1
+	A1=$2
+	A2=$3
+
+	count=`expr ${count} + 1`
+
+	if [ -z "${A2}" ]; then A2=${A1}; fi
+
+	R=`date -r ${TEST1} +%${S}`
+	if [ "${R}" = "${A1}" ]; then
+		echo "ok ${S}{t1}"
+	else
+		echo "no ok ${S}{t1} - (got ${R}, expected ${A1})"
+	fi
+
+	R=`date -r ${TEST2} +%${S}`
+	if [ "${R}" = "${A2}" ]; then
+		echo "ok ${S}{t2}"
+	else
+		echo "no ok ${S}{t2} - (got ${R}, expected ${A2})"
+	fi
+}
+
+echo "1..78"
+
+check A Saturday Monday
+check a Sat Mon
+check B February November
+check b Feb Nov
+check C 19 20
+check c "Sat Feb  7 07:04:03 1970" "Mon Nov 12 21:20:00 2001"
+check D 02/07/70 11/12/01
+check d 07 12
+check e " 7" 12
+check F "1970-02-07" "2001-11-12"
+check G 1970 2001
+check g 70 01
+check H 07 21
+check h Feb Nov
+check I 07 09
+check j 038 316
+check k " 7" 21
+check l " 7" " 9"
+check M 04 20
+check m 02 11
+check p AM PM
+check R 07:04 21:20
+check r "07:04:03 AM" "09:20:00 PM"
+check S 03 00
+check s ${TEST1} ${TEST2}
+check U 05 45
+check u 6 1
+check V 06 46
+check v " 7-Feb-1970" "12-Nov-2001"
+check W 05 46
+check w 6 1
+check X "07:04:03" "21:20:00"
+check x "02/07/70" "11/12/01"
+check Y 1970 2001
+check y 70 01
+check Z UTC UTC
+check z +0000 +0000
+check % % %
+check + "Sat Feb  7 07:04:03 UTC 1970" "Mon Nov 12 21:20:00 UTC 2001"

Modified: head/bin/mv/Makefile
==============================================================================
--- head/bin/mv/Makefile	Wed Dec 11 03:41:07 2013	(r259209)
+++ head/bin/mv/Makefile	Wed Dec 11 04:09:17 2013	(r259210)
@@ -1,6 +1,12 @@
 #	@(#)Makefile	8.2 (Berkeley) 4/2/94
 # $FreeBSD$
 
+.include <bsd.own.mk>
+
 PROG=	mv
 
+.if ${MK_TESTS} != "no"
+SUBDIR+=    tests
+.endif
+
 .include <bsd.prog.mk>

Added: head/bin/mv/tests/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/bin/mv/tests/Makefile	Wed Dec 11 04:09:17 2013	(r259210)
@@ -0,0 +1,9 @@
+# $FreeBSD$
+
+.include <bsd.own.mk>
+
+TESTSDIR=	${TESTSBASE}/bin/mv
+
+TAP_TESTS_SH=	legacy_test
+
+.include <tap.test.mk>

Copied: head/bin/mv/tests/legacy_test.sh (from r258552, head/tools/regression/bin/mv/regress.sh)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/bin/mv/tests/legacy_test.sh	Wed Dec 11 04:09:17 2013	(r259210, copy of r258552, head/tools/regression/bin/mv/regress.sh)
@@ -0,0 +1,296 @@
+#!/bin/sh
+# $FreeBSD$
+
+# A directory in a device different from that where the tests are run
+TMPDIR=/tmp/regress.$$
+COUNT=0
+
+# Begin an individual test
+begin()
+{
+	COUNT=`expr $COUNT + 1`
+	OK=1
+	if [ -z "$FS" ]
+	then
+		NAME="$1"
+	else
+		NAME="$1 (cross device)"
+	fi
+	rm -rf testdir $TMPDIR/testdir
+	mkdir -p testdir $TMPDIR/testdir
+	cd testdir
+}
+
+# End an individual test
+end()
+{
+	if [ $OK = 1 ]
+	then
+		printf 'ok '
+	else
+		printf 'not ok '
+	fi
+	echo "$COUNT - $NAME"
+	cd ..
+	rm -rf testdir $TMPDIR/testdir
+}
+
+# Make a file that can later be verified
+mkf()
+{
+	CN=`basename $1`
+	echo "$CN-$CN" >$1
+}
+
+# Verify that the file specified is correct
+ckf()
+{
+	if [ -f $2 ] && echo "$1-$1" | diff - $2 >/dev/null
+	then
+		ok
+	else
+		notok
+	fi
+}
+
+# Make a fifo that can later be verified
+mkp()
+{
+	mkfifo $1
+}
+
+# Verify that the file specified is correct
+ckp()
+{
+	if [ -p $2 ]
+	then
+		ok
+	else
+		notok
+	fi
+}
+
+# Make a directory that can later be verified
+mkd()
+{
+	CN=`basename $1`
+	mkdir -p $1/"$CN-$CN"
+}
+
+# Verify that the directory specified is correct
+ckd()
+{
+	if [ -d $2/$1-$1 ]
+	then
+		ok
+	else
+		notok
+	fi
+}
+
+# Verify that the specified file does not exist
+# (is not there)
+cknt()
+{
+	if [ -r $1 ]
+	then
+		notok
+	else
+		ok
+	fi
+}
+
+# A part of a test succeeds
+ok()
+{
+	:
+}
+
+# A part of a test fails
+notok()
+{
+	OK=0
+}
+
+# Verify that the exit code passed is for unsuccessful termination
+ckfail()
+{
+	if [ $1 -gt 0 ]
+	then
+		ok
+	else
+		notok
+	fi
+}
+
+# Verify that the exit code passed is for successful termination
+ckok()
+{
+	if [ $1 -eq 0 ]
+	then
+		ok
+	else
+		notok
+	fi
+}
+
+# Run all tests locally and across devices
+echo 1..32
+for FS in '' $TMPDIR/testdir/
+do
+	begin 'Rename file'
+	mkf fa
+	mv fa ${FS}fb
+	ckok $?
+	ckf fa ${FS}fb
+	cknt fa
+	end
+
+	begin 'Move files into directory'
+	mkf fa
+	mkf fb
+	mkdir -p ${FS}1/2/3
+	mv fa fb ${FS}1/2/3
+	ckok $?
+	ckf fa ${FS}1/2/3/fa
+	ckf fb ${FS}1/2/3/fb
+	cknt fa
+	cknt fb
+	end
+
+	begin 'Move file from directory to file'
+	mkdir -p 1/2/3
+	mkf 1/2/3/fa
+	mv 1/2/3/fa ${FS}fb
+	ckok $?
+	ckf fa ${FS}fb
+	cknt 1/2/3/fa
+	end
+
+	begin 'Move file from directory to existing file'
+	mkdir -p 1/2/3
+	mkf 1/2/3/fa
+	:> ${FS}fb
+	mv 1/2/3/fa ${FS}fb
+	ckok $?
+	ckf fa ${FS}fb
+	cknt 1/2/3/fa
+	end
+
+	begin 'Move file from directory to existing directory'
+	mkdir -p 1/2/3
+	mkf 1/2/3/fa
+	mkdir -p ${FS}db/fa
+	# Should fail per POSIX step 3a:
+	# Destination path is a file of type directory and
+	# source_file is not a file of type directory
+	mv 1/2/3/fa ${FS}db 2>/dev/null
+	ckfail $?
+	ckf fa 1/2/3/fa
+	end
+
+	begin 'Move file from directory to directory'
+	mkdir -p da1/da2/da3
+	mkdir -p ${FS}db1/db2/db3
+	mkf da1/da2/da3/fa
+	mv da1/da2/da3/fa ${FS}db1/db2/db3/fb
+	ckok $?
+	ckf fa ${FS}db1/db2/db3/fb
+	cknt da1/da2/da3/fa
+	end
+
+	begin 'Rename directory'
+	mkd da
+	mv da ${FS}db
+	ckok $?
+	ckd da ${FS}db
+	cknt da
+	end
+
+	begin 'Move directory to directory name'
+	mkd da1/da2/da3/da
+	mkdir -p ${FS}db1/db2/db3
+	mv da1/da2/da3/da ${FS}db1/db2/db3/db
+	ckok $?
+	ckd da ${FS}db1/db2/db3/db
+	cknt da1/da2/da3/da
+	end
+
+	begin 'Move directory to directory'
+	mkd da1/da2/da3/da
+	mkdir -p ${FS}db1/db2/db3
+	mv da1/da2/da3/da ${FS}db1/db2/db3
+	ckok $?
+	ckd da ${FS}db1/db2/db3/da
+	cknt da1/da2/da3/da
+	end
+
+	begin 'Move directory to existing empty directory'
+	mkd da1/da2/da3/da
+	mkdir -p ${FS}db1/db2/db3/da
+	mv da1/da2/da3/da ${FS}db1/db2/db3
+	ckok $?
+	ckd da ${FS}db1/db2/db3/da
+	cknt da1/da2/da3/da
+	end
+
+	begin 'Move directory to existing non-empty directory'
+	mkd da1/da2/da3/da
+	mkdir -p ${FS}db1/db2/db3/da/full
+	# Should fail (per the semantics of rename(2))
+	mv da1/da2/da3/da ${FS}db1/db2/db3 2>/dev/null
+	ckfail $?
+	ckd da da1/da2/da3/da
+	end
+
+	begin 'Move directory to existing file'
+	mkd da1/da2/da3/da
+	mkdir -p ${FS}db1/db2/db3
+	:> ${FS}db1/db2/db3/da
+	# Should fail per POSIX step 3b:
+	# Destination path is a file not of type directory
+	# and source_file is a file of type directory
+	mv da1/da2/da3/da ${FS}db1/db2/db3/da 2>/dev/null
+	ckfail $?
+	ckd da da1/da2/da3/da
+	end
+
+	begin 'Rename fifo'
+	mkp fa
+	mv fa ${FS}fb
+	ckok $?
+	ckp fa ${FS}fb
+	cknt fa
+	end
+
+	begin 'Move fifos into directory'
+	mkp fa
+	mkp fb
+	mkdir -p ${FS}1/2/3
+	mv fa fb ${FS}1/2/3
+	ckok $?
+	ckp fa ${FS}1/2/3/fa
+	ckp fb ${FS}1/2/3/fb
+	cknt fa
+	cknt fb
+	end
+
+	begin 'Move fifo from directory to fifo'
+	mkdir -p 1/2/3
+	mkp 1/2/3/fa
+	mv 1/2/3/fa ${FS}fb
+	ckok $?
+	ckp fa ${FS}fb
+	cknt 1/2/3/fa
+	end
+
+	begin 'Move fifo from directory to directory'
+	mkdir -p da1/da2/da3
+	mkdir -p ${FS}db1/db2/db3
+	mkp da1/da2/da3/fa
+	mv da1/da2/da3/fa ${FS}db1/db2/db3/fb
+	ckok $?
+	ckp fa ${FS}db1/db2/db3/fb
+	cknt da1/da2/da3/fa
+	end
+done

Modified: head/bin/pax/Makefile
==============================================================================
--- head/bin/pax/Makefile	Wed Dec 11 03:41:07 2013	(r259209)
+++ head/bin/pax/Makefile	Wed Dec 11 04:09:17 2013	(r259210)
@@ -1,6 +1,8 @@
 #       @(#)Makefile	8.1 (Berkeley) 5/31/93
 # $FreeBSD$
 
+.include <bsd.own.mk>
+
 # To install on versions prior to BSD 4.4 the following may have to be
 # defined with CFLAGS +=
 #
@@ -30,4 +32,8 @@ SRCS=	ar_io.c ar_subs.c buf_subs.c cache
 	gen_subs.c getoldopt.c options.c pat_rep.c pax.c sel_subs.c \
 	tables.c tar.c tty_subs.c
 
+.if ${MK_TESTS} != "no"
+SUBDIR+=    tests
+.endif
+
 .include <bsd.prog.mk>

Added: head/bin/pax/tests/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/bin/pax/tests/Makefile	Wed Dec 11 04:09:17 2013	(r259210)
@@ -0,0 +1,9 @@
+# $FreeBSD$
+
+.include <bsd.own.mk>
+
+TESTSDIR=	${TESTSBASE}/bin/pax
+
+TAP_TESTS_SH=	legacy_test
+
+.include <tap.test.mk>

Copied: head/bin/pax/tests/legacy_test.sh (from r258552, head/tools/regression/bin/pax/regress.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/bin/pax/tests/legacy_test.sh	Wed Dec 11 04:09:17 2013	(r259210, copy of r258552, head/tools/regression/bin/pax/regress.t)
@@ -0,0 +1,91 @@
+#! /usr/bin/perl
+#
+# $FreeBSD$
+
+use strict;
+use warnings;
+
+use Test::More tests => 6;
+use File::Path qw(rmtree mkpath);
+use Cwd;
+
+my $n = 0;
+sub create_file {
+    my $fn = shift;
+
+    $n++;
+    (my $dir = $fn) =~ s,/[^/]+$,,;
+    mkpath $dir;
+    open my $fd, ">", $fn or die "$fn: $!";
+    print $fd "file $n\n";
+}
+
+
+ustar_pathnames: { SKIP: {
+    # Prove that pax breaks up ustar pathnames properly
+
+    my $top = getcwd . "/ustar-pathnames-1";
+    skip "Current path is too long", 6 if length $top > 92;
+    rmtree $top;
+    my $subdir = "x" . "x" x (92 - length $top);
+    my $work94 = "$top/$subdir";
+    mkpath $work94;		# $work is 94 characters long
+
+    my $x49 = "x" x 49;
+    my $x50 = "x" x 50;
+    my $x60 = "x" x 60;
+    my $x95 = "x" x 95;
+
+    my @paths = (
+	"$work94/x099",		# 99 chars
+	"$work94/xx100",		# 100 chars
+	"$work94/xxx101",		# 101 chars
+	"$work94/$x49/${x50}x199",	# 199 chars
+	"$work94/$x49/${x50}xx200",	# 200 chars
+	"$work94/$x49/${x50}xxx201",	# 201 chars
+	"$work94/$x60/${x95}254",	# 254 chars
+	"$work94/$x60/${x95}x255",	# 255 chars
+    );
+
+    my @l = map { length } @paths;
+
+    my $n = 0;
+    create_file $_ for @paths;
+    system "pax -wf ustar.ok $work94";
+    ok($? == 0, "Wrote 'ustar.ok' containing files with lengths @l");
+
+    (my $orig = $top) =~ s,1$,2,;
+    rmtree $orig;
+    rename $top, $orig;
+
+    system "pax -rf ustar.ok";
+    ok($? == 0, "Restored 'ustar.ok' containing files with lengths @l");
+
+    system "diff -ru $orig $top";
+    ok($? == 0, "Restored files are identical");
+
+    rmtree $top;
+    rename $orig, $top;
+
+    # 256 chars (with components < 100 chars) should not work
+    push @paths, "$work94/x$x60/${x95}x256";	# 256 chars
+    push @l, length $paths[-1];
+    create_file $paths[-1];
+    system "pax -wf ustar.fail1 $work94";
+    ok($?, "Failed to write 'ustar.fail1' containing files with lengths @l");
+
+    # Components with 100 chars shouldn't work
+    unlink $paths[-1];
+    $paths[-1] = "$work94/${x95}xc100";		# 100 char filename
+    $l[-1] = length $paths[-1];
+    create_file $paths[-1];
+    system "pax -wf ustar.fail2 $work94";
+    ok($?, "Failed to write 'ustar.fail2' with a 100 char filename");
+
+    unlink $paths[-1];
+    $paths[-1] = "$work94/${x95}xc100/x";	# 100 char component
+    $l[-1] = length $paths[-1];
+    create_file $paths[-1];
+    system "pax -wf ustar.fail3 $work94";
+    ok($?, "Failed to write 'ustar.fail3' with a 100 char component");
+}}

Modified: head/bin/sh/Makefile
==============================================================================
--- head/bin/sh/Makefile	Wed Dec 11 03:41:07 2013	(r259209)
+++ head/bin/sh/Makefile	Wed Dec 11 04:09:17 2013	(r259210)
@@ -1,6 +1,8 @@
 #	@(#)Makefile	8.4 (Berkeley) 5/5/95
 # $FreeBSD$
 
+.include <bsd.own.mk>
+
 PROG=	sh
 INSTALLFLAGS= -S
 SHSRCS=	alias.c arith_yacc.c arith_yylex.c cd.c echo.c error.c eval.c \
@@ -59,7 +61,8 @@ syntax.c syntax.h: mksyntax
 token.h: mktokens
 	sh ${.CURDIR}/mktokens
 
-regress:
-	cd ${.CURDIR}/../../tools/regression/bin/sh && ${MAKE} SH=${.OBJDIR}/sh
+.if ${MK_TESTS} != "no"
+SUBDIR+=    tests
+.endif
 
 .include <bsd.prog.mk>

Added: head/bin/sh/tests/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/bin/sh/tests/Makefile	Wed Dec 11 04:09:17 2013	(r259210)
@@ -0,0 +1,12 @@
+# $FreeBSD$
+
+.include <bsd.own.mk>
+
+TESTSDIR=	${TESTSBASE}/bin/sh
+
+TAP_TESTS_SH=	legacy_test
+TAP_TESTS_SH_SED_legacy_test=	-e 's,__SH__,/bin/sh,g'
+
+SUBDIR+=	builtins errors execution expansion parameters parser set-e
+
+.include <tap.test.mk>

Added: head/bin/sh/tests/builtins/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/bin/sh/tests/builtins/Makefile	Wed Dec 11 04:09:17 2013	(r259210)
@@ -0,0 +1,147 @@
+# $FreeBSD$
+
+.include <bsd.own.mk>
+
+FILESDIR=	${TESTSBASE}/bin/sh/builtins
+KYUAFILE=	no
+
+FILES=		alias.0 alias.0.stdout
+FILES+=		alias.1 alias.1.stderr
+FILES+=		alias3.0 alias3.0.stdout
+FILES+=		alias4.0
+FILES+=		break1.0
+FILES+=		break2.0 break2.0.stdout
+FILES+=		break3.0
+FILES+=		break4.4
+FILES+=		break5.4
+FILES+=		builtin1.0
+FILES+=		case1.0
+FILES+=		case2.0
+FILES+=		case3.0
+FILES+=		case4.0
+FILES+=		case5.0
+FILES+=		case6.0
+FILES+=		case7.0
+FILES+=		case8.0
+FILES+=		case9.0
+FILES+=		case10.0
+FILES+=		case11.0
+FILES+=		case12.0
+FILES+=		case13.0
+FILES+=		case14.0
+FILES+=		case15.0
+FILES+=		case16.0
+FILES+=		case17.0
+FILES+=		case18.0
+FILES+=		case19.0
+FILES+=		cd1.0
+FILES+=		cd2.0
+FILES+=		cd3.0
+FILES+=		cd4.0
+FILES+=		cd5.0
+FILES+=		cd6.0
+FILES+=		cd7.0
+FILES+=		cd8.0
+FILES+=		command1.0
+FILES+=		command2.0
+FILES+=		command3.0
+FILES+=		command3.0.stdout
+FILES+=		command4.0
+FILES+=		command5.0
+FILES+=		command5.0.stdout
+FILES+=		command6.0
+FILES+=		command6.0.stdout
+FILES+=		command7.0
+FILES+=		command8.0
+FILES+=		command9.0
+FILES+=		command10.0
+FILES+=		command11.0
+FILES+=		command12.0
+FILES+=		dot1.0
+FILES+=		dot2.0
+FILES+=		dot3.0
+FILES+=		dot4.0
+FILES+=		eval1.0
+FILES+=		eval2.0
+FILES+=		eval3.0
+FILES+=		eval4.0
+FILES+=		eval5.0
+FILES+=		eval6.0
+FILES+=		exec1.0
+FILES+=		exec2.0
+FILES+=		exit1.0
+FILES+=		exit2.8
+FILES+=		exit3.0
+FILES+=		export1.0
+FILES+=		fc1.0
+FILES+=		fc2.0
+FILES+=		for1.0
+FILES+=		for2.0
+FILES+=		for3.0
+FILES+=		getopts1.0 getopts1.0.stdout
+FILES+=		getopts2.0 getopts2.0.stdout
+FILES+=		hash1.0 hash1.0.stdout
+FILES+=		hash2.0 hash2.0.stdout
+FILES+=		hash3.0 hash3.0.stdout
+FILES+=		hash4.0
+FILES+=		jobid1.0
+FILES+=		jobid2.0
+FILES+=		lineno.0 lineno.0.stdout
+FILES+=		local1.0
+FILES+=		local2.0
+FILES+=		local3.0
+FILES+=		local4.0
+FILES+=		locale1.0
+FILES+=		printf1.0
+FILES+=		printf2.0
+FILES+=		printf3.0
+FILES+=		printf4.0
+FILES+=		read1.0 read1.0.stdout
+FILES+=		read2.0
+FILES+=		read3.0 read3.0.stdout
+FILES+=		read4.0 read4.0.stdout
+FILES+=		read5.0
+FILES+=		read6.0
+FILES+=		read7.0
+FILES+=		return1.0
+FILES+=		return2.1
+FILES+=		return3.1
+FILES+=		return4.0
+FILES+=		return5.0
+FILES+=		return6.4
+FILES+=		return7.4
+FILES+=		return8.0
+FILES+=		set1.0
+FILES+=		set2.0
+FILES+=		trap1.0
+FILES+=		trap10.0
+FILES+=		trap11.0
+FILES+=		trap12.0
+FILES+=		trap13.0
+FILES+=		trap14.0
+FILES+=		trap2.0
+FILES+=		trap3.0
+FILES+=		trap4.0
+FILES+=		trap5.0
+FILES+=		trap6.0
+FILES+=		trap7.0
+FILES+=		trap8.0
+FILES+=		trap9.0
+FILES+=		type1.0 type1.0.stderr
+FILES+=		type2.0
+FILES+=		type3.0
+FILES+=		unalias.0
+FILES+=		var-assign.0
+FILES+=		var-assign2.0
+FILES+=		wait1.0
+FILES+=		wait2.0
+FILES+=		wait3.0
+FILES+=		wait4.0
+FILES+=		wait5.0
+FILES+=		wait6.0
+FILES+=		wait7.0
+FILES+=		wait8.0
+FILES+=		wait9.127
+FILES+=		wait10.0
+
+.include <bsd.test.mk>

Added: head/bin/sh/tests/errors/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/bin/sh/tests/errors/Makefile	Wed Dec 11 04:09:17 2013	(r259210)
@@ -0,0 +1,30 @@
+# $FreeBSD$
+
+.include <bsd.own.mk>
+
+FILESDIR=	${TESTSBASE}/bin/sh/errors
+KYUAFILE=	no
+
+FILES=		assignment-error1.0
+FILES+=		assignment-error2.0
+FILES+=		backquote-error1.0
+FILES+=		backquote-error2.0
+FILES+=		bad-binary1.126
+FILES+=		bad-keyword1.0
+FILES+=		bad-parm-exp1.0
+FILES+=		bad-parm-exp2.2 bad-parm-exp2.2.stderr
+FILES+=		bad-parm-exp3.2 bad-parm-exp3.2.stderr
+FILES+=		bad-parm-exp4.2 bad-parm-exp4.2.stderr
+FILES+=		bad-parm-exp5.2 bad-parm-exp5.2.stderr
+FILES+=		bad-parm-exp6.2 bad-parm-exp6.2.stderr
+FILES+=		option-error.0
+FILES+=		redirection-error.0
+FILES+=		redirection-error2.2
+FILES+=		redirection-error3.0
+FILES+=		redirection-error4.0
+FILES+=		redirection-error5.0
+FILES+=		redirection-error6.0
+FILES+=		redirection-error7.0
+FILES+=		write-error1.0
+
+.include <bsd.test.mk>

Added: head/bin/sh/tests/execution/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/bin/sh/tests/execution/Makefile	Wed Dec 11 04:09:17 2013	(r259210)
@@ -0,0 +1,53 @@
+# $FreeBSD$
+
+.include <bsd.own.mk>
+
+FILESDIR=	${TESTSBASE}/bin/sh/execution
+KYUAFILE=	no
+
+FILES=		bg1.0
+FILES+=		bg2.0
+FILES+=		bg3.0
+FILES+=		bg4.0
+FILES+=		bg5.0
+FILES+=		bg6.0 bg6.0.stdout
+FILES+=		bg7.0
+FILES+=		bg8.0
+FILES+=		bg9.0
+FILES+=		bg10.0 bg10.0.stdout
+FILES+=		fork1.0
+FILES+=		fork2.0
+FILES+=		fork3.0
+FILES+=		func1.0
+FILES+=		func2.0
+FILES+=		func3.0
+FILES+=		hash1.0
+FILES+=		int-cmd1.0
+FILES+=		killed1.0
+FILES+=		killed2.0
+FILES+=		not1.0
+FILES+=		not2.0
+FILES+=		path1.0
+FILES+=		redir1.0
+FILES+=		redir2.0
+FILES+=		redir3.0
+FILES+=		redir4.0
+FILES+=		redir5.0
+FILES+=		redir6.0
+FILES+=		redir7.0
+FILES+=		set-n1.0
+FILES+=		set-n2.0
+FILES+=		set-n3.0
+FILES+=		set-n4.0
+FILES+=		set-x1.0
+FILES+=		set-x2.0
+FILES+=		set-x3.0
+FILES+=		shellproc1.0
+FILES+=		subshell1.0 subshell1.0.stdout
+FILES+=		subshell2.0
+FILES+=		subshell3.0
+FILES+=		subshell4.0
+FILES+=		unknown1.0
+FILES+=		var-assign1.0
+
+.include <bsd.test.mk>

Added: head/bin/sh/tests/expansion/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/bin/sh/tests/expansion/Makefile	Wed Dec 11 04:09:17 2013	(r259210)
@@ -0,0 +1,86 @@
+# $FreeBSD$
+
+.include <bsd.own.mk>
+
+FILESDIR=	${TESTSBASE}/bin/sh/expansion
+KYUAFILE=	no
+
+FILES=		arith1.0
+FILES+=		arith2.0
+FILES+=		arith3.0
+FILES+=		arith4.0
+FILES+=		arith5.0
+FILES+=		arith6.0
+FILES+=		arith7.0
+FILES+=		arith8.0
+FILES+=		arith9.0
+FILES+=		arith10.0
+FILES+=		arith11.0
+FILES+=		arith12.0
+FILES+=		arith13.0
+FILES+=		assign1.0
+FILES+=		cmdsubst1.0
+FILES+=		cmdsubst2.0
+FILES+=		cmdsubst3.0
+FILES+=		cmdsubst4.0
+FILES+=		cmdsubst5.0
+FILES+=		cmdsubst6.0
+FILES+=		cmdsubst7.0
+FILES+=		cmdsubst8.0
+FILES+=		cmdsubst9.0
+FILES+=		cmdsubst10.0
+FILES+=		cmdsubst11.0
+FILES+=		cmdsubst12.0
+FILES+=		cmdsubst13.0
+FILES+=		cmdsubst14.0
+FILES+=		cmdsubst15.0
+FILES+=		cmdsubst16.0
+FILES+=		cmdsubst17.0
+FILES+=		export1.0
+FILES+=		export2.0
+FILES+=		export3.0
+FILES+=		heredoc1.0
+FILES+=		heredoc2.0
+FILES+=		ifs1.0
+FILES+=		ifs2.0
+FILES+=		ifs3.0
+FILES+=		ifs4.0
+FILES+=		length1.0
+FILES+=		length2.0
+FILES+=		length3.0
+FILES+=		length4.0
+FILES+=		length5.0
+FILES+=		length6.0
+FILES+=		length7.0
+FILES+=		length8.0
+FILES+=		local1.0
+FILES+=		local2.0
+FILES+=		pathname1.0
+FILES+=		pathname2.0
+FILES+=		pathname3.0
+FILES+=		pathname4.0
+FILES+=		plus-minus1.0
+FILES+=		plus-minus2.0
+FILES+=		plus-minus3.0
+FILES+=		plus-minus4.0
+FILES+=		plus-minus5.0
+FILES+=		plus-minus6.0
+FILES+=		plus-minus7.0
+FILES+=		plus-minus8.0
+FILES+=		question1.0
+FILES+=		readonly1.0
+FILES+=		set-u1.0
+FILES+=		set-u2.0
+FILES+=		set-u3.0
+FILES+=		tilde1.0
+FILES+=		tilde2.0
+FILES+=		trim1.0
+FILES+=		trim2.0
+FILES+=		trim3.0
+FILES+=		trim4.0
+FILES+=		trim5.0
+FILES+=		trim6.0
+FILES+=		trim7.0
+FILES+=		trim8.0
+
+.include <bsd.test.mk>

Copied and modified: head/bin/sh/tests/legacy_test.sh (from r258552, head/tools/regression/bin/sh/regress.sh)
==============================================================================
--- head/tools/regression/bin/sh/regress.sh	Mon Nov 25 13:30:06 2013	(r258552, copy source)
+++ head/bin/sh/tests/legacy_test.sh	Wed Dec 11 04:09:17 2013	(r259210)
@@ -1,10 +1,13 @@
 # $FreeBSD$
 
-if [ -z "${SH}" ]; then
-	echo '${SH} is not set, please correct and re-run.'
-	exit 1
-fi
-export SH=${SH}
+: ${SH:="__SH__"}
+export SH
+
+# TODO(jmmv): The Kyua TAP interface should be passing us the value of
+# "srcdir" as an environment variable, just as it does with the ATF
+# interface in the form of a configuration variable.  For now, just try
+# to guess this.
+: ${TESTS_DATA:=$(dirname ${0})}
 
 COUNTER=1
 
@@ -17,6 +20,7 @@ do_test() {
 		rm tmp.stdout tmp.stderr
 		return
 	fi
+	sed -I '' -e "s|^${TESTS_DATA}|.|" tmp.stderr
 	for i in stdout stderr; do
 		if [ -f ${1}.${i} ]; then
 			if ! cmp -s tmp.${i} ${1}.${i}; then
@@ -34,7 +38,7 @@ do_test() {
 	rm tmp.stdout tmp.stderr
 }
 
-TESTS=$(find -Es . -regex ".*\.[0-9]+")
+TESTS=$(find -Es ${TESTS_DATA} -regex ".*\.[0-9]+")
 printf "1..%d\n" $(echo ${TESTS} | wc -w)
 
 for i in ${TESTS} ; do

Added: head/bin/sh/tests/parameters/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/bin/sh/tests/parameters/Makefile	Wed Dec 11 04:09:17 2013	(r259210)
@@ -0,0 +1,18 @@
+# $FreeBSD$
+
+.include <bsd.own.mk>
+
+FILESDIR=	${TESTSBASE}/bin/sh/parameters
+KYUAFILE=	no
+

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201312110409.rBB49Ir6074961>