diff options
Diffstat (limited to 'usr.bin/bmake/tests')
320 files changed, 2774 insertions, 0 deletions
diff --git a/usr.bin/bmake/tests/Makefile b/usr.bin/bmake/tests/Makefile new file mode 100644 index 0000000..e225034 --- /dev/null +++ b/usr.bin/bmake/tests/Makefile @@ -0,0 +1,18 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake + +FILESDIR= ${TESTSDIR} +FILES= common.sh +FILES+= test-new.mk + +TESTS_SUBDIRS= archives +TESTS_SUBDIRS+= basic +TESTS_SUBDIRS+= execution +TESTS_SUBDIRS+= shell +TESTS_SUBDIRS+= suffixes +TESTS_SUBDIRS+= syntax +TESTS_SUBDIRS+= sysmk +TESTS_SUBDIRS+= variables + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/README b/usr.bin/bmake/tests/README new file mode 100644 index 0000000..1ac209b --- /dev/null +++ b/usr.bin/bmake/tests/README @@ -0,0 +1,174 @@ +$FreeBSD$ + +This directory contains regression tests for make(1). + +To invoke the tests, please refer to tests(7). + +---------------------------------------------------------------------------- + +The rest of this file is intended for developers. + +The tests are invoked via the test.sh script or prove(1) from p5-Test-Harness. +Tests are normally executed in a special test directory that is built under +/tmp. The reason for this is, that make tests are generally influenced by +all file in a directory, by files in one of make's obscure object directories +as well as in other directories make happens to look into. Therefor the +test scripts build a clean environment in the temp directory and the +tests are executed by cd-ing into that directory and invoking make. The +output of the make run (standard output, standard error and the exit status) +are written into files that are created in another directory. So the layout +for the shell/builtin test looks like: + + ./shell/builtin/ - directory with test stuff + /tmp/make.${USER}/shell/builtin - actual test directory + /tmp/make.${USER}/shell/builtin.OUTPUT - output files + +So a full test consists of the following steps: + + setup - Set up the test environment by creating the test directory + and populating it with the needed files. If the test + directory already exists an error is printed. + + run - Run the test and produce the output into the output + directory. + + show - Show the result files on the screen. + + compare - Compare the results in the output directory with those + in the test source directory. This just prints whether + the test was ok or not in the format used by prove(1). + + diff - Diff the output files and the expected output files. + + reset - Reset the test to its initial state. + + clean - Remove both the test directory and the output directory. + +Each of these steps can independently be invoked with the test script +contained in each directory. These test scripts are called test.t. +Additionally the scripts understand the following commands: + + test - Run setup, run and compare. + + prove - Run setup, run, compare and clean. This is identically + to invoking the script without an argument. + + desc - Print a short test description. + + update - Update the expected results from the actual results. + +The test script has the following syntax: + + % test.t [-v] [-m path_to_make_binary] command + +To invoke it via prove(1) use: + + % [MAKE_PROG=path_to_make_binary] prove [options] [files/directories] + +Example: + % sh test.t -m `pwd`/../obj/make run + % MAKE_PROG=/usr/obj/usr/src/usr.bin/make/make prove -r + +The test scripts use the following environment variables that can be set +by the user in the test script's environment: + + WORK_BASE + - Base directory for working files. If not set + /tmp/make.${USER} is used. + + MAKE_PROG + - Path to the make program to test. If not set + /usr/bin/make is used. + +The following variables are available to test scripts: + + SRC_BASE + - test source base directory. This is determined by + repeatedly doing cd .. and checking for common.sh. + Therefor this can fail if a test source directory is + actually a symbolic link and is physically not located + below the directory containing common.sh. + + SUBDIR + - subdirectory below WORK_BASE and SRC_BASE for current test + + WORK_DIR + - ${WORK_BASE}/${SUBDIR} + + SRC_DIR + - ${SRC_BASE}/${SUBDIR} + +The following variables and functions may be defined by the test script. +This also lists special filenames. + + DESC + A one-line description of the test. + + TEST_MAKE_DIRS + A list of pairs of directory names and modes. These + directories are created during setup and reset. When + the directory already exists (during reset) only the + mode change is applied. + + TEST_MAKE_DIRS="subdir 775 subdir/sub 555" + + TEST_COPY_FILES + A list of pairs of file names and modes. These files + are copied from the source to the working directory + during setup and reset. When the file already exists + (during reset) only the mode change is applied. Files + may be copied from/to sub-directories. The sub-directory + in the working directory must already exists (see + TEST_MAKE_DIRS). + + TEST_COPY_FILES="libtest.a 444 subdir/libfoo.a 444" + + TEST_TOUCH + List of pairs of file names and arguments to touch(1). + During setup and reset for each list element touch(1) + is executed. + + TEST_TOUCH="file1 '-t 200501011257'" + + TEST_LINK + List of pairs of filenames. Each pair is passed to ln(1). + All names are prefixed with the working directory. + + Makefile + If a file with this name exists in the source directory + it is automatically copied to the working directory. + + setup_test() + If this function exists it is executed at the end of the + setup. + + reset_test() + If this function exists it is executed at the end of the + reset. + + TEST_CLEAN_FILES + A list of file to be deleted when resetting. + + TEST_N + Number of tests in this script. If not set this is assumed + to be 1. + + TEST_<number> + Arguments to make for test number <number>. If not set + the default argument of test<number> is used. To run a test + without argument to make, set TEST_<number> to the empty string. + + TEST_<number>_SKIP + To skip a test (for whatever reason) this should be set + to a string explaining the reason for skipping the test. + + TEST_<number>_TODO + For a test that should fail this is a short string describing + what the problem in make(1) is that should be fixed. + + run_test() + Function to run a test. This function gets a single argument + which is the number of the test to executed. The default + function evaluates the variable TEST_<number> and calls + make with the arguments in this variable. + diff --git a/usr.bin/bmake/tests/archives/Makefile b/usr.bin/bmake/tests/archives/Makefile new file mode 100644 index 0000000..f80ffc2 --- /dev/null +++ b/usr.bin/bmake/tests/archives/Makefile @@ -0,0 +1,7 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/archives + +TESTS_SUBDIRS= fmt_44bsd fmt_44bsd_mod fmt_oldbsd + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/Makefile b/usr.bin/bmake/tests/archives/fmt_44bsd/Makefile new file mode 100644 index 0000000..15389c8 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/Makefile @@ -0,0 +1,32 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/archives/fmt_44bsd + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.status.2 +FILES+= expected.status.3 +FILES+= expected.status.4 +FILES+= expected.status.5 +FILES+= expected.status.6 +FILES+= expected.status.7 +FILES+= expected.stderr.1 +FILES+= expected.stderr.2 +FILES+= expected.stderr.3 +FILES+= expected.stderr.4 +FILES+= expected.stderr.5 +FILES+= expected.stderr.6 +FILES+= expected.stderr.7 +FILES+= expected.stdout.1 +FILES+= expected.stdout.2 +FILES+= expected.stdout.3 +FILES+= expected.stdout.4 +FILES+= expected.stdout.5 +FILES+= expected.stdout.6 +FILES+= expected.stdout.7 +FILES+= libtest.a + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/Makefile.test b/usr.bin/bmake/tests/archives/fmt_44bsd/Makefile.test new file mode 100644 index 0000000..5a8b065 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/Makefile.test @@ -0,0 +1,61 @@ +# $FreeBSD$ +# This test checks the code reading archive files. The archive file +# is a BSD4.4 file with __.SYMTAB and #1/N long file names. + +############################################################################# + +# should be ok +test1: libtest.a(short.o) + @: + +libtest.a(short.o): ood + @: + +############################################################################# + +# should be ok +test2: libtest.a(exactly15char.o) + @: + +libtest.a(exactly15char.o): ood + @: + +############################################################################# + +# should be ok +test3: libtest.a(exactly16chars.o) + @: + +libtest.a(exactly16chars.o): ood + @: + +############################################################################# + +# should be ok +test4: libtest.a(verylongobjectname.o) + @: + +libtest.a(verylongobjectname.o): ood + @: + +############################################################################# + +# Truncated to 16 characters +# should fail +test5: libtest.a(verylongobjectna) + @: + +############################################################################# + +# Truncated to 15 characters +# should fail +test6: libtest.a(verylongobjectn) + @: + +############################################################################# + +# should fail +test7: libtest.a(\#1/20) + @: + +ood: diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.1 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.2 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.2 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.2 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.3 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.3 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.3 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.4 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.4 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.4 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.5 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.5 new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.5 @@ -0,0 +1 @@ +2 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.6 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.6 new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.6 @@ -0,0 +1 @@ +2 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.7 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.7 new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.status.7 @@ -0,0 +1 @@ +2 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.1 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.1 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.2 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.2 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.2 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.3 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.3 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.3 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.4 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.4 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.4 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.5 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.5 new file mode 100644 index 0000000..7b91643 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.5 @@ -0,0 +1 @@ +make: don't know how to make verylongobjectna. Stop diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.6 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.6 new file mode 100644 index 0000000..fd15190 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.6 @@ -0,0 +1 @@ +make: don't know how to make verylongobjectn. Stop diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.7 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.7 new file mode 100644 index 0000000..cb572e1 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stderr.7 @@ -0,0 +1 @@ +make: don't know how to make #1/20. Stop diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.1 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.1 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.2 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.2 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.2 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.3 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.3 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.3 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.4 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.4 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.4 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.5 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.5 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.5 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.6 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.6 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.6 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.7 b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.7 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/expected.stdout.7 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/legacy_test.sh b/usr.bin/bmake/tests/archives/fmt_44bsd/legacy_test.sh new file mode 100644 index 0000000..2604c96 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/legacy_test.sh @@ -0,0 +1,15 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Archive parsing (BSD4.4 format)." + +# Setup +TEST_COPY_FILES="libtest.a 644" + +# Run +TEST_N=7 + +eval_cmd $* diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd/libtest.a b/usr.bin/bmake/tests/archives/fmt_44bsd/libtest.a Binary files differnew file mode 100644 index 0000000..891ce6e --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd/libtest.a diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/Makefile b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/Makefile new file mode 100644 index 0000000..1d2f6e2 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/Makefile @@ -0,0 +1,32 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/archives/fmt_44bsd_mod + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.status.2 +FILES+= expected.status.3 +FILES+= expected.status.4 +FILES+= expected.status.5 +FILES+= expected.status.6 +FILES+= expected.status.7 +FILES+= expected.stderr.1 +FILES+= expected.stderr.2 +FILES+= expected.stderr.3 +FILES+= expected.stderr.4 +FILES+= expected.stderr.5 +FILES+= expected.stderr.6 +FILES+= expected.stderr.7 +FILES+= expected.stdout.1 +FILES+= expected.stdout.2 +FILES+= expected.stdout.3 +FILES+= expected.stdout.4 +FILES+= expected.stdout.5 +FILES+= expected.stdout.6 +FILES+= expected.stdout.7 +FILES+= libtest.a + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/Makefile.test b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/Makefile.test new file mode 100644 index 0000000..cd999da --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/Makefile.test @@ -0,0 +1,64 @@ +# $FreeBSD$ +# This test checks the code reading archive files. The archive file +# is a BSD4.4 file with __.SYMTAB and #1/N long file names. +# +# The modification of the archive consists in slashes appended to short names. +# + +############################################################################# + +# must be ok +test1: libtest.a(short.o) + @: + +libtest.a(short.o): ood + @: + +############################################################################# + +# must be ok +test2: libtest.a(exactly15char.o) + @: + +libtest.a(exactly15char.o): ood + @: + +############################################################################# + +# must be ok +test3: libtest.a(exactly16chars.o) + @: + +libtest.a(exactly16chars.o): ood + @: + +############################################################################# + +# must be ok +test4: libtest.a(verylongobjectname.o) + @: + +libtest.a(verylongobjectname.o): ood + @: + +############################################################################# + +# Truncated to 16 characters +# must fail +test5: libtest.a(verylongobjectna) + @: + +############################################################################# + +# Truncated to 15 characters +# must fail +test6: libtest.a(verylongobjectn) + @: + +############################################################################# + +# must fail +test7: libtest.a(\#1/20) + @: + +ood: diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.1 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.2 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.2 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.2 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.3 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.3 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.3 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.4 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.4 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.4 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.5 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.5 new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.5 @@ -0,0 +1 @@ +2 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.6 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.6 new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.6 @@ -0,0 +1 @@ +2 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.7 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.7 new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.status.7 @@ -0,0 +1 @@ +2 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.1 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.1 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.2 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.2 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.2 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.3 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.3 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.3 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.4 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.4 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.4 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.5 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.5 new file mode 100644 index 0000000..7b91643 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.5 @@ -0,0 +1 @@ +make: don't know how to make verylongobjectna. Stop diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.6 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.6 new file mode 100644 index 0000000..fd15190 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.6 @@ -0,0 +1 @@ +make: don't know how to make verylongobjectn. Stop diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.7 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.7 new file mode 100644 index 0000000..cb572e1 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stderr.7 @@ -0,0 +1 @@ +make: don't know how to make #1/20. Stop diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.1 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.1 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.2 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.2 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.2 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.3 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.3 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.3 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.4 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.4 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.4 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.5 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.5 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.5 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.6 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.6 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.6 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.7 b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.7 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/expected.stdout.7 diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/legacy_test.sh b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/legacy_test.sh new file mode 100644 index 0000000..bf13f22 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/legacy_test.sh @@ -0,0 +1,15 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Archive parsing (modified BSD4.4 format)." + +# Setup +TEST_COPY_FILES="libtest.a 644" + +# Run +TEST_N=7 + +eval_cmd $* diff --git a/usr.bin/bmake/tests/archives/fmt_44bsd_mod/libtest.a b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/libtest.a Binary files differnew file mode 100644 index 0000000..57bc407 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_44bsd_mod/libtest.a diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/Makefile b/usr.bin/bmake/tests/archives/fmt_oldbsd/Makefile new file mode 100644 index 0000000..2a96124 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/Makefile @@ -0,0 +1,32 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/archives/fmt_oldbsd + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.status.2 +FILES+= expected.status.3 +FILES+= expected.status.4 +FILES+= expected.status.5 +FILES+= expected.status.6 +FILES+= expected.status.7 +FILES+= expected.stderr.1 +FILES+= expected.stderr.2 +FILES+= expected.stderr.3 +FILES+= expected.stderr.4 +FILES+= expected.stderr.5 +FILES+= expected.stderr.6 +FILES+= expected.stderr.7 +FILES+= expected.stdout.1 +FILES+= expected.stdout.2 +FILES+= expected.stdout.3 +FILES+= expected.stdout.4 +FILES+= expected.stdout.5 +FILES+= expected.stdout.6 +FILES+= expected.stdout.7 +FILES+= libtest.a + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/Makefile.test b/usr.bin/bmake/tests/archives/fmt_oldbsd/Makefile.test new file mode 100644 index 0000000..b8f5116 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/Makefile.test @@ -0,0 +1,62 @@ +# $FreeBSD$ +# This test checks the code reading archive files. The archive file +# is an old BSD file with __.SYMTAB and no long file names. Filenames +# are truncated to 16 characters. + +############################################################################# + +# must be ok +test1: libtest.a(short.o) + @: + +libtest.a(short.o): ood + @: + +############################################################################# + +# must be ok +test2: libtest.a(exactly15char.o) + @: + +libtest.a(exactly15char.o): ood + @: + +############################################################################# + +# must be ok +test3: libtest.a(exactly16chars.o) + @: + +libtest.a(exactly16chars.o): ood + @: + +############################################################################# + +# must be ok +test4: libtest.a(verylongobjectname.o) + @: + +libtest.a(verylongobjectname.o): ood + @: + +############################################################################# + +# Truncated to 16 characters +# must be ok +test5: libtest.a(verylongobjectna) + @: + +############################################################################# + +# Truncated to 15 characters +# must fail +test6: libtest.a(verylongobjectn) + @: + +############################################################################# + +# must fail +test7: libtest.a(\#1/20) + @: + +ood: diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.1 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.2 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.2 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.2 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.3 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.3 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.3 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.4 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.4 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.4 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.5 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.5 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.5 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.6 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.6 new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.6 @@ -0,0 +1 @@ +2 diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.7 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.7 new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.status.7 @@ -0,0 +1 @@ +2 diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.1 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.1 diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.2 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.2 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.2 diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.3 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.3 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.3 diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.4 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.4 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.4 diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.5 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.5 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.5 diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.6 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.6 new file mode 100644 index 0000000..fd15190 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.6 @@ -0,0 +1 @@ +make: don't know how to make verylongobjectn. Stop diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.7 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.7 new file mode 100644 index 0000000..cb572e1 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stderr.7 @@ -0,0 +1 @@ +make: don't know how to make #1/20. Stop diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.1 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.1 diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.2 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.2 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.2 diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.3 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.3 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.3 diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.4 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.4 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.4 diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.5 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.5 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.5 diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.6 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.6 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.6 diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.7 b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.7 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/expected.stdout.7 diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/legacy_test.sh b/usr.bin/bmake/tests/archives/fmt_oldbsd/legacy_test.sh new file mode 100644 index 0000000..c7980c5 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/legacy_test.sh @@ -0,0 +1,15 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Archive parsing (old BSD format)." + +# Setup +TEST_COPY_FILES="libtest.a 644" + +# Run +TEST_N=7 + +eval_cmd $* diff --git a/usr.bin/bmake/tests/archives/fmt_oldbsd/libtest.a b/usr.bin/bmake/tests/archives/fmt_oldbsd/libtest.a Binary files differnew file mode 100644 index 0000000..3434c53 --- /dev/null +++ b/usr.bin/bmake/tests/archives/fmt_oldbsd/libtest.a diff --git a/usr.bin/bmake/tests/basic/Makefile b/usr.bin/bmake/tests/basic/Makefile new file mode 100644 index 0000000..56dfb33 --- /dev/null +++ b/usr.bin/bmake/tests/basic/Makefile @@ -0,0 +1,7 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/basic + +TESTS_SUBDIRS= t0 t1 t2 t3 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/basic/t0/Makefile b/usr.bin/bmake/tests/basic/t0/Makefile new file mode 100644 index 0000000..1235659 --- /dev/null +++ b/usr.bin/bmake/tests/basic/t0/Makefile @@ -0,0 +1,12 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/basic/t0 + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= expected.status.1 +FILES+= expected.stderr.1 +FILES+= expected.stdout.1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/basic/t0/expected.status.1 b/usr.bin/bmake/tests/basic/t0/expected.status.1 new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/usr.bin/bmake/tests/basic/t0/expected.status.1 @@ -0,0 +1 @@ +2 diff --git a/usr.bin/bmake/tests/basic/t0/expected.stderr.1 b/usr.bin/bmake/tests/basic/t0/expected.stderr.1 new file mode 100644 index 0000000..90280c8 --- /dev/null +++ b/usr.bin/bmake/tests/basic/t0/expected.stderr.1 @@ -0,0 +1 @@ +make: no target to make. diff --git a/usr.bin/bmake/tests/basic/t0/expected.stdout.1 b/usr.bin/bmake/tests/basic/t0/expected.stdout.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/basic/t0/expected.stdout.1 diff --git a/usr.bin/bmake/tests/basic/t0/legacy_test.sh b/usr.bin/bmake/tests/basic/t0/legacy_test.sh new file mode 100644 index 0000000..d23418a --- /dev/null +++ b/usr.bin/bmake/tests/basic/t0/legacy_test.sh @@ -0,0 +1,16 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="An empty Makefile file and no target given." + +# Setup +TEST_TOUCH="Makefile ''" + +# Run +TEST_N=1 +TEST_1= + +eval_cmd $* diff --git a/usr.bin/bmake/tests/basic/t1/Makefile b/usr.bin/bmake/tests/basic/t1/Makefile new file mode 100644 index 0000000..732dc65 --- /dev/null +++ b/usr.bin/bmake/tests/basic/t1/Makefile @@ -0,0 +1,13 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/basic/t1 + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.stderr.1 +FILES+= expected.stdout.1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/basic/t1/Makefile.test b/usr.bin/bmake/tests/basic/t1/Makefile.test new file mode 100644 index 0000000..d120087 --- /dev/null +++ b/usr.bin/bmake/tests/basic/t1/Makefile.test @@ -0,0 +1,5 @@ +# $FreeBSD$ +# +# Just a target and nothing else. No target on command line. +# +all: diff --git a/usr.bin/bmake/tests/basic/t1/expected.status.1 b/usr.bin/bmake/tests/basic/t1/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/basic/t1/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/basic/t1/expected.stderr.1 b/usr.bin/bmake/tests/basic/t1/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/basic/t1/expected.stderr.1 diff --git a/usr.bin/bmake/tests/basic/t1/expected.stdout.1 b/usr.bin/bmake/tests/basic/t1/expected.stdout.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/basic/t1/expected.stdout.1 diff --git a/usr.bin/bmake/tests/basic/t1/legacy_test.sh b/usr.bin/bmake/tests/basic/t1/legacy_test.sh new file mode 100644 index 0000000..b07f927 --- /dev/null +++ b/usr.bin/bmake/tests/basic/t1/legacy_test.sh @@ -0,0 +1,13 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="A Makefile file with only a 'all:' file dependency specification." + +# Run +TEST_N=1 +TEST_1= + +eval_cmd $* diff --git a/usr.bin/bmake/tests/basic/t2/Makefile b/usr.bin/bmake/tests/basic/t2/Makefile new file mode 100644 index 0000000..58c36ff --- /dev/null +++ b/usr.bin/bmake/tests/basic/t2/Makefile @@ -0,0 +1,13 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/basic/t2 + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.stderr.1 +FILES+= expected.stdout.1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/basic/t2/Makefile.test b/usr.bin/bmake/tests/basic/t2/Makefile.test new file mode 100644 index 0000000..ab8fe49 --- /dev/null +++ b/usr.bin/bmake/tests/basic/t2/Makefile.test @@ -0,0 +1,6 @@ +# $FreeBSD$ +# +# Just a target and a command. No command line targets. +# +all: + echo hello diff --git a/usr.bin/bmake/tests/basic/t2/expected.status.1 b/usr.bin/bmake/tests/basic/t2/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/basic/t2/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/basic/t2/expected.stderr.1 b/usr.bin/bmake/tests/basic/t2/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/basic/t2/expected.stderr.1 diff --git a/usr.bin/bmake/tests/basic/t2/expected.stdout.1 b/usr.bin/bmake/tests/basic/t2/expected.stdout.1 new file mode 100644 index 0000000..e618540 --- /dev/null +++ b/usr.bin/bmake/tests/basic/t2/expected.stdout.1 @@ -0,0 +1,2 @@ +echo hello +hello diff --git a/usr.bin/bmake/tests/basic/t2/legacy_test.sh b/usr.bin/bmake/tests/basic/t2/legacy_test.sh new file mode 100644 index 0000000..da4c60a --- /dev/null +++ b/usr.bin/bmake/tests/basic/t2/legacy_test.sh @@ -0,0 +1,13 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="A Makefile file with only a 'all:' file dependency specification, and shell command." + +# Run +TEST_N=1 +TEST_1= + +eval_cmd $* diff --git a/usr.bin/bmake/tests/basic/t3/Makefile b/usr.bin/bmake/tests/basic/t3/Makefile new file mode 100644 index 0000000..a173414 --- /dev/null +++ b/usr.bin/bmake/tests/basic/t3/Makefile @@ -0,0 +1,12 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/basic/t3 + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= expected.status.1 +FILES+= expected.stderr.1 +FILES+= expected.stdout.1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/basic/t3/expected.status.1 b/usr.bin/bmake/tests/basic/t3/expected.status.1 new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/usr.bin/bmake/tests/basic/t3/expected.status.1 @@ -0,0 +1 @@ +2 diff --git a/usr.bin/bmake/tests/basic/t3/expected.stderr.1 b/usr.bin/bmake/tests/basic/t3/expected.stderr.1 new file mode 100644 index 0000000..90280c8 --- /dev/null +++ b/usr.bin/bmake/tests/basic/t3/expected.stderr.1 @@ -0,0 +1 @@ +make: no target to make. diff --git a/usr.bin/bmake/tests/basic/t3/expected.stdout.1 b/usr.bin/bmake/tests/basic/t3/expected.stdout.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/basic/t3/expected.stdout.1 diff --git a/usr.bin/bmake/tests/basic/t3/legacy_test.sh b/usr.bin/bmake/tests/basic/t3/legacy_test.sh new file mode 100644 index 0000000..3c41bb3 --- /dev/null +++ b/usr.bin/bmake/tests/basic/t3/legacy_test.sh @@ -0,0 +1,13 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="No Makefile file, no command line target." + +# Run +TEST_N=1 +TEST_1= + +eval_cmd $* diff --git a/usr.bin/bmake/tests/common.sh b/usr.bin/bmake/tests/common.sh new file mode 100644 index 0000000..5c5df1e --- /dev/null +++ b/usr.bin/bmake/tests/common.sh @@ -0,0 +1,533 @@ +# $FreeBSD$ +# +# Common code used run regression tests for usr.bin/make. + +# +# Output a message and exit with an error. +# +fatal() +{ + echo "fatal: $*" >/dev/stderr + exit 1 +} + +make_is_fmake() { + # This test is not very reliable but works for now: the old fmake + # does have a -v option while bmake doesn't. + ${MAKE_PROG} -f Makefile.non-existent -v 2>&1 | \ + grep -q "cannot open.*non-existent" +} + +# +# Check whether the working directory exists - it must. +# +ensure_workdir() +{ + if [ ! -d ${WORK_DIR} ] ; then + fatal "working directory ${WORK_DIR} does not exist." + fi +} + +# +# Make sure all tests have been run +# +ensure_run() +{ + if [ -z "${TEST_N}" ] ; then + TEST_N=1 + fi + + FAIL= + N=1 + while [ ${N} -le ${TEST_N} ] ; do + if ! skip_test ${N} ; then + if [ ! -f ${OUTPUT_DIR}/status.${N} -o \ + ! -f ${OUTPUT_DIR}/stdout.${N} -o \ + ! -f ${OUTPUT_DIR}/stderr.${N} ] ; then + echo "Test ${SUBDIR}/${N} no yet run" + FAIL=yes + fi + fi + N=$((N + 1)) + done + + if [ ! -z "${FAIL}" ] ; then + exit 1 + fi +} + +# +# Output usage messsage. +# +print_usage() +{ + echo "Usage: sh -v -m <path> -w <dir> $0 command(s)" + echo " setup - setup working directory" + echo " run - run the tests" + echo " show - show test results" + echo " compare - compare actual and expected results" + echo " diff - diff actual and expected results" + echo " reset - reset the test to its initial state" + echo " clean - delete working and output directory" + echo " test - setup + run + compare" + echo " prove - setup + run + compare + clean" + echo " desc - print short description" + echo " update - update the expected results with the current results" + echo " help - show this information" +} + +# +# Return 0 if we should skip the test. 1 otherwise +# +skip_test() +{ + eval skip=\${TEST_${1}_SKIP} + if [ -z "${skip}" ] ; then + return 1 + else + return 0 + fi +} + +# +# Common function for setup and reset. +# +common_setup() +{ + # + # If a Makefile exists in the source directory - copy it over + # + if [ -e ${SRC_DIR}/Makefile.test -a ! -e ${WORK_DIR}/Makefile ] ; then + cp ${SRC_DIR}/Makefile.test ${WORK_DIR}/Makefile + fi + + # + # If the TEST_MAKE_DIRS variable is set, create those directories + # + set -- ${TEST_MAKE_DIRS} + while [ $# -ne 0 ] ; do + if [ ! -d ${WORK_DIR}/${1} ] ; then + mkdir -p -m ${2} ${WORK_DIR}/${1} + else + chmod ${2} ${WORK_DIR}/${1} + fi + shift ; shift + done + + # + # If the TEST_COPY_FILES variable is set, copy those files over to + # the working directory. The value is assumed to be pairs of + # filenames and modes. + # + set -- ${TEST_COPY_FILES} + while [ $# -ne 0 ] ; do + local dstname="$(echo ${1} | sed -e 's,Makefile.test,Makefile,')" + if [ ! -e ${WORK_DIR}/${dstname} ] ; then + cp ${SRC_DIR}/${1} ${WORK_DIR}/${dstname} + fi + chmod ${2} ${WORK_DIR}/${dstname} + shift ; shift + done + + # + # If the TEST_TOUCH variable is set, it is taken to be a list + # of pairs of filenames and arguments to touch(1). The arguments + # to touch must be surrounded by single quotes if there are more + # than one argument. + # + eval set -- ${TEST_TOUCH} + while [ $# -ne 0 ] ; do + eval touch ${2} ${WORK_DIR}/${1} + shift ; shift + done + + # + # Now create links + # + eval set -- ${TEST_LINKS} + while [ $# -ne 0 ] ; do + eval ln ${WORK_DIR}/${1} ${WORK_DIR}/${2} + shift ; shift + done +} + +# +# Setup the test. This creates the working and output directories and +# populates it with files. If there is a setup_test() function - call it. +# +eval_setup() +{ + # + # Check whether the working directory exists. If it does exit + # fatally so that we don't clobber a test the user is working on. + # + if [ -d ${WORK_DIR} ] ; then + fatal "working directory ${WORK_DIR} already exists." + fi + + # + # Now create it and the output directory + # + mkdir -p ${WORK_DIR} + rm -rf ${OUTPUT_DIR} + mkdir -p ${OUTPUT_DIR} + + # + # Common stuff + # + common_setup + + # + # Now after all execute the user's setup function if it exists. + # + setup_test +} + +# +# Default setup_test function does nothing. This may be overriden by +# the test. +# +setup_test() +{ +} + +# +# Reset the test. Here we need to rely on information from the test. +# We executed the same steps as in the setup, by try not to clobber existing +# files. +# All files and directories that are listed on the TEST_CLEAN_FILES +# variable are removed. Then the TEST_TOUCH list is executed and finally +# the reset_test() function called if it exists. +# +eval_reset() +{ + ensure_workdir + + # + # Clean the output directory + # + rm -rf ${OUTPUT_DIR}/* + + # + # Common stuff + # + common_setup + + # + # Remove files. + # + for f in ${TEST_CLEAN_FILES} ; do + rm -rf ${WORK_DIR}/${f} + done + + # + # Execute test's function + # + reset_test +} + +# +# Default reset_test function does nothing. This may be overriden by +# the test. +# +reset_test() +{ +} + +# +# Clean the test. This simply removes the working and output directories. +# +eval_clean() +{ + # + # If you have special cleaning needs, provide a 'cleanup' shell script. + # + if [ -n "${TEST_CLEANUP}" ] ; then + . ${SRC_DIR}/cleanup + fi + if [ -z "${NO_TEST_CLEANUP}" ] ; then + rm -rf ${WORK_DIR} + rm -rf ${OUTPUT_DIR} + fi +} + +# +# Run the test. +# +eval_run() +{ + ensure_workdir + + if [ -z "${TEST_N}" ] ; then + TEST_N=1 + fi + + N=1 + while [ ${N} -le ${TEST_N} ] ; do + if ! skip_test ${N} ; then + ( cd ${WORK_DIR} ; + exec 1>${OUTPUT_DIR}/stdout.${N} 2>${OUTPUT_DIR}/stderr.${N} + run_test ${N} + echo $? >${OUTPUT_DIR}/status.${N} + ) + fi + N=$((N + 1)) + done +} + +# +# Default run_test() function. It can be replaced by the +# user specified regression test. The argument to this function is +# the test number. +# +run_test() +{ + eval args=\${TEST_${1}-test${1}} + ${MAKE_PROG} $args +} + +# +# Show test results. +# +eval_show() +{ + ensure_workdir + + if [ -z "${TEST_N}" ] ; then + TEST_N=1 + fi + + N=1 + while [ ${N} -le ${TEST_N} ] ; do + if ! skip_test ${N} ; then + echo "=== Test ${N} Status ==================" + cat ${OUTPUT_DIR}/status.${N} + echo ".......... Stdout .................." + cat ${OUTPUT_DIR}/stdout.${N} + echo ".......... Stderr .................." + cat ${OUTPUT_DIR}/stderr.${N} + fi + N=$((N + 1)) + done +} + +# +# Compare results with expected results +# +eval_compare() +{ + ensure_workdir + ensure_run + + if [ -z "${TEST_N}" ] ; then + TEST_N=1 + fi + + echo "1..${TEST_N}" + N=1 + while [ ${N} -le ${TEST_N} ] ; do + fail= + todo= + skip= + if ! skip_test ${N} ; then + do_compare stdout ${N} || fail="${fail}stdout " + do_compare stderr ${N} || fail="${fail}stderr " + do_compare status ${N} || fail="${fail}status " + eval todo=\${TEST_${N}_TODO} + else + eval skip=\${TEST_${N}_SKIP} + fi + msg= + if [ ! -z "$fail" ]; then + msg="${msg}not " + fi + msg="${msg}ok ${N} ${SUBDIR}/${N}" + if [ ! -z "$fail" -o ! -z "$todo" -o ! -z "$skip" ]; then + msg="${msg} # " + fi + if [ ! -z "$skip" ] ; then + msg="${msg}skip ${skip}; " + fi + if [ ! -z "$todo" ] ; then + msg="${msg}TODO ${todo}; " + fi + if [ ! -z "$fail" ] ; then + msg="${msg}reason: ${fail}" + fi + echo ${msg} + N=$((N + 1)) + done +} + +# +# Check if the test result is the same as the expected result. +# +# $1 Input file +# $2 Test number +# +do_compare() +{ + local EXPECTED RESULT + EXPECTED="${SRC_DIR}/expected.$1.$2" + RESULT="${OUTPUT_DIR}/$1.$2" + + if [ -f $EXPECTED ]; then + cat $RESULT | sed -e "s,^$(basename $MAKE_PROG):,make:," | \ + diff -u $EXPECTED - + #diff -q $EXPECTED - 1>/dev/null 2>/dev/null + return $? + else + return 1 # FAIL + fi +} + +# +# Diff current and expected results +# +eval_diff() +{ + ensure_workdir + ensure_run + + if [ -z "${TEST_N}" ] ; then + TEST_N=1 + fi + + N=1 + while [ ${N} -le ${TEST_N} ] ; do + if ! skip_test ${N} ; then + FAIL= + do_diff stdout ${N} + do_diff stderr ${N} + do_diff status ${N} + fi + N=$((N + 1)) + done +} + +# +# Check if the test result is the same as the expected result. +# +# $1 Input file +# $2 Test number +# +do_diff() +{ + local EXPECTED RESULT + EXPECTED="${SRC_DIR}/expected.$1.$2" + RESULT="${OUTPUT_DIR}/$1.$2" + + echo diff -u $EXPECTED $RESULT + if [ -f $EXPECTED ]; then + diff -u $EXPECTED $RESULT + else + echo "${EXPECTED} does not exist" + fi +} + +# +# Update expected results +# +eval_update() +{ + ensure_workdir + ensure_run + + if [ -z "${TEST_N}" ] ; then + TEST_N=1 + fi + + FAIL= + N=1 + while [ ${N} -le ${TEST_N} ] ; do + if ! skip_test ${N} ; then + cp ${OUTPUT_DIR}/stdout.${N} expected.stdout.${N} + cp ${OUTPUT_DIR}/stderr.${N} expected.stderr.${N} + cp ${OUTPUT_DIR}/status.${N} expected.status.${N} + fi + N=$((N + 1)) + done +} + +# +# Print description +# +eval_desc() +{ + echo "${SUBDIR}: ${DESC}" +} + +# +# Run the test +# +eval_test() +{ + eval_setup + eval_run + eval_compare +} + +# +# Run the test for prove(1) +# +eval_prove() +{ + eval_setup + eval_run + eval_compare + eval_clean +} + +# +# Main function. Execute the command(s) on the command line. +# +eval_cmd() +{ + if [ $# -eq 0 ] ; then + # if no arguments given default to 'prove' + set -- prove + fi + + if ! make_is_fmake ; then + for i in $(jot ${TEST_N:-1}) ; do + eval TEST_${i}_SKIP=\"make is not fmake\" + done + fi + + for i + do + case $i in + + setup | run | compare | diff | clean | reset | show | \ + test | prove | desc | update) + eval eval_$i + ;; + * | help) + print_usage + ;; + esac + done +} + +############################################################################## +# +# Main code +# + +# +# Determine our sub-directory. Argh. +# +SRC_DIR=$(dirname $0) +SRC_BASE=`cd ${SRC_DIR} ; while [ ! -f common.sh ] ; do cd .. ; done ; pwd` +SUBDIR=`echo ${SRC_DIR} | sed "s@${SRC_BASE}/@@"` + +# +# Construct working directory +# +WORK_DIR=$(pwd)/work/${SUBDIR} +OUTPUT_DIR=${WORK_DIR}.OUTPUT + +# +# Make to use +# +MAKE_PROG=${MAKE_PROG:-/usr/bin/make} diff --git a/usr.bin/bmake/tests/execution/Makefile b/usr.bin/bmake/tests/execution/Makefile new file mode 100644 index 0000000..2c91bbb --- /dev/null +++ b/usr.bin/bmake/tests/execution/Makefile @@ -0,0 +1,7 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/execution + +TESTS_SUBDIRS= ellipsis empty joberr plus + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/execution/ellipsis/Makefile b/usr.bin/bmake/tests/execution/ellipsis/Makefile new file mode 100644 index 0000000..5629b4b --- /dev/null +++ b/usr.bin/bmake/tests/execution/ellipsis/Makefile @@ -0,0 +1,13 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/execution/ellipsis + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.stderr.1 +FILES+= expected.stdout.1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/execution/ellipsis/Makefile.test b/usr.bin/bmake/tests/execution/ellipsis/Makefile.test new file mode 100644 index 0000000..d19f642 --- /dev/null +++ b/usr.bin/bmake/tests/execution/ellipsis/Makefile.test @@ -0,0 +1,21 @@ +# $FreeBSD$ + +ELLIPSIS= ... + +check-ellipsis: + @${MAKE} -f ${MAKEFILE} do-$@ + @${MAKE} -f ${MAKEFILE} -j2 do-$@ + @${MAKE} -f ${MAKEFILE} -j2 -B do-$@ + +do-check-ellipsis: do-check-ellipsis-1 do-check-ellipsis-2 +.ORDER: do-check-ellipsis-1 do-check-ellipsis-2 + +do-check-ellipsis-1: + @echo before $@ + ${ELLIPSIS} + @echo after $@ + +do-check-ellipsis-2: + @echo before $@ + ${ELLIPSIS} + @echo after $@ diff --git a/usr.bin/bmake/tests/execution/ellipsis/expected.status.1 b/usr.bin/bmake/tests/execution/ellipsis/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/execution/ellipsis/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/execution/ellipsis/expected.stderr.1 b/usr.bin/bmake/tests/execution/ellipsis/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/execution/ellipsis/expected.stderr.1 diff --git a/usr.bin/bmake/tests/execution/ellipsis/expected.stdout.1 b/usr.bin/bmake/tests/execution/ellipsis/expected.stdout.1 new file mode 100644 index 0000000..a7e5727 --- /dev/null +++ b/usr.bin/bmake/tests/execution/ellipsis/expected.stdout.1 @@ -0,0 +1,12 @@ +before do-check-ellipsis-1 +before do-check-ellipsis-2 +after do-check-ellipsis-1 +after do-check-ellipsis-2 +before do-check-ellipsis-1 +before do-check-ellipsis-2 +after do-check-ellipsis-1 +after do-check-ellipsis-2 +before do-check-ellipsis-1 +before do-check-ellipsis-2 +after do-check-ellipsis-1 +after do-check-ellipsis-2 diff --git a/usr.bin/bmake/tests/execution/ellipsis/legacy_test.sh b/usr.bin/bmake/tests/execution/ellipsis/legacy_test.sh new file mode 100644 index 0000000..9e9cd01 --- /dev/null +++ b/usr.bin/bmake/tests/execution/ellipsis/legacy_test.sh @@ -0,0 +1,13 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Ellipsis command from variable" + +# Run +TEST_N=1 +TEST_1= + +eval_cmd $* diff --git a/usr.bin/bmake/tests/execution/empty/Makefile b/usr.bin/bmake/tests/execution/empty/Makefile new file mode 100644 index 0000000..6421b96 --- /dev/null +++ b/usr.bin/bmake/tests/execution/empty/Makefile @@ -0,0 +1,13 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/execution/empty + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.stderr.1 +FILES+= expected.stdout.1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/execution/empty/Makefile.test b/usr.bin/bmake/tests/execution/empty/Makefile.test new file mode 100644 index 0000000..f687bce --- /dev/null +++ b/usr.bin/bmake/tests/execution/empty/Makefile.test @@ -0,0 +1,13 @@ +# $FreeBSD$ + +EMPTY= + +check-empty: + @${MAKE} -f ${MAKEFILE} do-$@ + @${MAKE} -f ${MAKEFILE} -j2 do-$@ + @${MAKE} -f ${MAKEFILE} -j2 -B do-$@ + +do-check-empty: + ${EMPTY} + @${EMPTY} + @-${EMPTY} diff --git a/usr.bin/bmake/tests/execution/empty/expected.status.1 b/usr.bin/bmake/tests/execution/empty/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/execution/empty/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/execution/empty/expected.stderr.1 b/usr.bin/bmake/tests/execution/empty/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/execution/empty/expected.stderr.1 diff --git a/usr.bin/bmake/tests/execution/empty/expected.stdout.1 b/usr.bin/bmake/tests/execution/empty/expected.stdout.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/execution/empty/expected.stdout.1 diff --git a/usr.bin/bmake/tests/execution/empty/legacy_test.sh b/usr.bin/bmake/tests/execution/empty/legacy_test.sh new file mode 100644 index 0000000..e02d175 --- /dev/null +++ b/usr.bin/bmake/tests/execution/empty/legacy_test.sh @@ -0,0 +1,13 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Empty command (from variable)" + +# Run +TEST_N=1 +TEST_1= + +eval_cmd $* diff --git a/usr.bin/bmake/tests/execution/joberr/Makefile b/usr.bin/bmake/tests/execution/joberr/Makefile new file mode 100644 index 0000000..d183eb1 --- /dev/null +++ b/usr.bin/bmake/tests/execution/joberr/Makefile @@ -0,0 +1,13 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/execution/joberr + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.stderr.1 +FILES+= expected.stdout.1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/execution/joberr/Makefile.test b/usr.bin/bmake/tests/execution/joberr/Makefile.test new file mode 100644 index 0000000..aca86e8 --- /dev/null +++ b/usr.bin/bmake/tests/execution/joberr/Makefile.test @@ -0,0 +1,10 @@ +# $FreeBSD$ + +check-joberr: +.for _t in 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 + @-${MAKE} -f ${MAKEFILE} -j2 do-$@ +.endfor + +do-check-joberr: + @echo "Error: build failed" + @exit 1 diff --git a/usr.bin/bmake/tests/execution/joberr/expected.status.1 b/usr.bin/bmake/tests/execution/joberr/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/execution/joberr/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/execution/joberr/expected.stderr.1 b/usr.bin/bmake/tests/execution/joberr/expected.stderr.1 new file mode 100644 index 0000000..d0c8a2e --- /dev/null +++ b/usr.bin/bmake/tests/execution/joberr/expected.stderr.1 @@ -0,0 +1,30 @@ +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error +1 error diff --git a/usr.bin/bmake/tests/execution/joberr/expected.stdout.1 b/usr.bin/bmake/tests/execution/joberr/expected.stdout.1 new file mode 100644 index 0000000..0ee28f4 --- /dev/null +++ b/usr.bin/bmake/tests/execution/joberr/expected.stdout.1 @@ -0,0 +1,90 @@ +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +Error: build failed +*** [do-check-joberr] Error code 1 +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) +*** [check-joberr] Error code 2 (ignored) diff --git a/usr.bin/bmake/tests/execution/joberr/legacy_test.sh b/usr.bin/bmake/tests/execution/joberr/legacy_test.sh new file mode 100644 index 0000000..429bfe1 --- /dev/null +++ b/usr.bin/bmake/tests/execution/joberr/legacy_test.sh @@ -0,0 +1,13 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Test job make error output" + +# Run +TEST_N=1 +TEST_1= + +eval_cmd $* diff --git a/usr.bin/bmake/tests/execution/plus/Makefile b/usr.bin/bmake/tests/execution/plus/Makefile new file mode 100644 index 0000000..8b489d5 --- /dev/null +++ b/usr.bin/bmake/tests/execution/plus/Makefile @@ -0,0 +1,13 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/execution/plus + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.stderr.1 +FILES+= expected.stdout.1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/execution/plus/Makefile.test b/usr.bin/bmake/tests/execution/plus/Makefile.test new file mode 100644 index 0000000..ae3bdc3 --- /dev/null +++ b/usr.bin/bmake/tests/execution/plus/Makefile.test @@ -0,0 +1,7 @@ +# $FreeBSD$ + +check-+: + @${MAKE} -f ${MAKEFILE} -j2 -n do-$@ + +do-check-+: + @+echo $@ diff --git a/usr.bin/bmake/tests/execution/plus/expected.status.1 b/usr.bin/bmake/tests/execution/plus/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/execution/plus/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/execution/plus/expected.stderr.1 b/usr.bin/bmake/tests/execution/plus/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/execution/plus/expected.stderr.1 diff --git a/usr.bin/bmake/tests/execution/plus/expected.stdout.1 b/usr.bin/bmake/tests/execution/plus/expected.stdout.1 new file mode 100644 index 0000000..b334fc7 --- /dev/null +++ b/usr.bin/bmake/tests/execution/plus/expected.stdout.1 @@ -0,0 +1 @@ +do-check-+ diff --git a/usr.bin/bmake/tests/execution/plus/legacy_test.sh b/usr.bin/bmake/tests/execution/plus/legacy_test.sh new file mode 100644 index 0000000..0737d1b --- /dev/null +++ b/usr.bin/bmake/tests/execution/plus/legacy_test.sh @@ -0,0 +1,13 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Test '+command' execution with -n -jX" + +# Run +TEST_N=1 +TEST_1= + +eval_cmd $* diff --git a/usr.bin/bmake/tests/shell/Makefile b/usr.bin/bmake/tests/shell/Makefile new file mode 100644 index 0000000..13b570e --- /dev/null +++ b/usr.bin/bmake/tests/shell/Makefile @@ -0,0 +1,7 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/shell + +TESTS_SUBDIRS= builtin meta path path_select replace select + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/shell/builtin/Makefile b/usr.bin/bmake/tests/shell/builtin/Makefile new file mode 100644 index 0000000..cd458a9 --- /dev/null +++ b/usr.bin/bmake/tests/shell/builtin/Makefile @@ -0,0 +1,17 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/shell/builtin + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.status.2 +FILES+= expected.stderr.1 +FILES+= expected.stderr.2 +FILES+= expected.stdout.1 +FILES+= expected.stdout.2 +FILES+= sh + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/shell/builtin/Makefile.test b/usr.bin/bmake/tests/shell/builtin/Makefile.test new file mode 100644 index 0000000..0376478 --- /dev/null +++ b/usr.bin/bmake/tests/shell/builtin/Makefile.test @@ -0,0 +1,18 @@ +# +# In compat mode (the default without -j) a line that contains no shell +# meta characters and no shell builtins is not passed to the shell but +# executed directly. In our example the ls line without meta characters +# will really execute ls, while the line with meta characters will execute +# our special shell. +# +# $FreeBSD$ + +.SHELL: path="${.CURDIR}/sh" + +.PHONY: builtin no-builtin + +builtin: + @exec ls -d . + +no-builtin: + @ls -d . diff --git a/usr.bin/bmake/tests/shell/builtin/expected.status.1 b/usr.bin/bmake/tests/shell/builtin/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/shell/builtin/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/shell/builtin/expected.status.2 b/usr.bin/bmake/tests/shell/builtin/expected.status.2 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/shell/builtin/expected.status.2 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/shell/builtin/expected.stderr.1 b/usr.bin/bmake/tests/shell/builtin/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/shell/builtin/expected.stderr.1 diff --git a/usr.bin/bmake/tests/shell/builtin/expected.stderr.2 b/usr.bin/bmake/tests/shell/builtin/expected.stderr.2 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/shell/builtin/expected.stderr.2 diff --git a/usr.bin/bmake/tests/shell/builtin/expected.stdout.1 b/usr.bin/bmake/tests/shell/builtin/expected.stdout.1 new file mode 100644 index 0000000..9c558e3 --- /dev/null +++ b/usr.bin/bmake/tests/shell/builtin/expected.stdout.1 @@ -0,0 +1 @@ +. diff --git a/usr.bin/bmake/tests/shell/builtin/expected.stdout.2 b/usr.bin/bmake/tests/shell/builtin/expected.stdout.2 new file mode 100644 index 0000000..e350eaf --- /dev/null +++ b/usr.bin/bmake/tests/shell/builtin/expected.stdout.2 @@ -0,0 +1 @@ +-ec exec ls -d . diff --git a/usr.bin/bmake/tests/shell/builtin/legacy_test.sh b/usr.bin/bmake/tests/shell/builtin/legacy_test.sh new file mode 100644 index 0000000..6347583 --- /dev/null +++ b/usr.bin/bmake/tests/shell/builtin/legacy_test.sh @@ -0,0 +1,17 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Check that a command line with a builtin is passed to the shell." + +# Setup +TEST_COPY_FILES="sh 755" + +# Run +TEST_N=2 +TEST_1="-B no-builtin" +TEST_2="-B builtin" + +eval_cmd $* diff --git a/usr.bin/bmake/tests/shell/builtin/sh b/usr.bin/bmake/tests/shell/builtin/sh new file mode 100644 index 0000000..3a507b87 --- /dev/null +++ b/usr.bin/bmake/tests/shell/builtin/sh @@ -0,0 +1,6 @@ +#!/bin/sh +# $FreeBSD$ +echo "$@" +if ! test -t 0 ; then + cat +fi diff --git a/usr.bin/bmake/tests/shell/meta/Makefile b/usr.bin/bmake/tests/shell/meta/Makefile new file mode 100644 index 0000000..b342e79 --- /dev/null +++ b/usr.bin/bmake/tests/shell/meta/Makefile @@ -0,0 +1,17 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/shell/meta + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.status.2 +FILES+= expected.stderr.1 +FILES+= expected.stderr.2 +FILES+= expected.stdout.1 +FILES+= expected.stdout.2 +FILES+= sh + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/shell/meta/Makefile.test b/usr.bin/bmake/tests/shell/meta/Makefile.test new file mode 100644 index 0000000..bcf19d0 --- /dev/null +++ b/usr.bin/bmake/tests/shell/meta/Makefile.test @@ -0,0 +1,18 @@ +# +# In compat mode (the default without -j) a line that contains no shell +# meta characters and no shell builtins is not passed to the shell but +# executed directly. In our example the ls line without meta characters +# will really execute ls, while the line with meta characters will execute +# our special shell. +# +# $FreeBSD$ + +.SHELL: path="${.OBJDIR}/sh" + +.PHONY: meta no-meta + +meta: + @ls * + +no-meta: + @ls -d . diff --git a/usr.bin/bmake/tests/shell/meta/expected.status.1 b/usr.bin/bmake/tests/shell/meta/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/shell/meta/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/shell/meta/expected.status.2 b/usr.bin/bmake/tests/shell/meta/expected.status.2 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/shell/meta/expected.status.2 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/shell/meta/expected.stderr.1 b/usr.bin/bmake/tests/shell/meta/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/shell/meta/expected.stderr.1 diff --git a/usr.bin/bmake/tests/shell/meta/expected.stderr.2 b/usr.bin/bmake/tests/shell/meta/expected.stderr.2 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/shell/meta/expected.stderr.2 diff --git a/usr.bin/bmake/tests/shell/meta/expected.stdout.1 b/usr.bin/bmake/tests/shell/meta/expected.stdout.1 new file mode 100644 index 0000000..9c558e3 --- /dev/null +++ b/usr.bin/bmake/tests/shell/meta/expected.stdout.1 @@ -0,0 +1 @@ +. diff --git a/usr.bin/bmake/tests/shell/meta/expected.stdout.2 b/usr.bin/bmake/tests/shell/meta/expected.stdout.2 new file mode 100644 index 0000000..6ac6f19 --- /dev/null +++ b/usr.bin/bmake/tests/shell/meta/expected.stdout.2 @@ -0,0 +1 @@ +-ec ls * diff --git a/usr.bin/bmake/tests/shell/meta/legacy_test.sh b/usr.bin/bmake/tests/shell/meta/legacy_test.sh new file mode 100644 index 0000000..41cd763 --- /dev/null +++ b/usr.bin/bmake/tests/shell/meta/legacy_test.sh @@ -0,0 +1,17 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Check that a command line with meta characters is passed to the shell." + +# Setup +TEST_COPY_FILES="sh 755" + +# Run +TEST_N=2 +TEST_1="-B no-meta" +TEST_2="-B meta" + +eval_cmd $* diff --git a/usr.bin/bmake/tests/shell/meta/sh b/usr.bin/bmake/tests/shell/meta/sh new file mode 100644 index 0000000..3a507b87 --- /dev/null +++ b/usr.bin/bmake/tests/shell/meta/sh @@ -0,0 +1,6 @@ +#!/bin/sh +# $FreeBSD$ +echo "$@" +if ! test -t 0 ; then + cat +fi diff --git a/usr.bin/bmake/tests/shell/path/Makefile b/usr.bin/bmake/tests/shell/path/Makefile new file mode 100644 index 0000000..5a83a1f --- /dev/null +++ b/usr.bin/bmake/tests/shell/path/Makefile @@ -0,0 +1,17 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/shell/path + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.status.2 +FILES+= expected.stderr.1 +FILES+= expected.stderr.2 +FILES+= expected.stdout.1 +FILES+= expected.stdout.2 +FILES+= sh + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/shell/path/Makefile.test b/usr.bin/bmake/tests/shell/path/Makefile.test new file mode 100644 index 0000000..fe40b64 --- /dev/null +++ b/usr.bin/bmake/tests/shell/path/Makefile.test @@ -0,0 +1,31 @@ +# +# Change the path for builtin shells. There are two methods to do this. +# This is the first of them when the basename of the path is equal to +# one of the builtin shells so that the .SHELL target automatically +# also selectes the shell without specifying the name. +# +# Be sure to include a meta-character into the command line, so that +# really our shell is executed. +# +# $FreeBSD$ +# + +.ifmake sh_test + +.SHELL: path=${.OBJDIR}/sh +sh_test: + @: This is the shell. + +.elifmake csh_test + +.SHELL: path=${.OBJDIR}/csh +csh_test: + @: This is the C-shell. + +.elifmake ksh_test + +.SHELL: path=${.OBJDIR}/ksh +ksh_test: + @: This is the Korn-shell. + +.endif diff --git a/usr.bin/bmake/tests/shell/path/expected.status.1 b/usr.bin/bmake/tests/shell/path/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/shell/path/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/shell/path/expected.status.2 b/usr.bin/bmake/tests/shell/path/expected.status.2 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/shell/path/expected.status.2 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/shell/path/expected.stderr.1 b/usr.bin/bmake/tests/shell/path/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/shell/path/expected.stderr.1 diff --git a/usr.bin/bmake/tests/shell/path/expected.stderr.2 b/usr.bin/bmake/tests/shell/path/expected.stderr.2 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/shell/path/expected.stderr.2 diff --git a/usr.bin/bmake/tests/shell/path/expected.stdout.1 b/usr.bin/bmake/tests/shell/path/expected.stdout.1 new file mode 100644 index 0000000..d881364 --- /dev/null +++ b/usr.bin/bmake/tests/shell/path/expected.stdout.1 @@ -0,0 +1 @@ +-ec : This is the shell. diff --git a/usr.bin/bmake/tests/shell/path/expected.stdout.2 b/usr.bin/bmake/tests/shell/path/expected.stdout.2 new file mode 100644 index 0000000..de3fc89 --- /dev/null +++ b/usr.bin/bmake/tests/shell/path/expected.stdout.2 @@ -0,0 +1 @@ +-ec : This is the C-shell. diff --git a/usr.bin/bmake/tests/shell/path/legacy_test.sh b/usr.bin/bmake/tests/shell/path/legacy_test.sh new file mode 100644 index 0000000..9289a8d --- /dev/null +++ b/usr.bin/bmake/tests/shell/path/legacy_test.sh @@ -0,0 +1,20 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="New path for builtin shells." + +# Setup +TEST_COPY_FILES="sh 755" +TEST_LINKS="sh csh sh ksh" + +# Run +TEST_N=3 +TEST_1="sh_test" +TEST_2="csh_test" +TEST_3="ksh_test" +TEST_3_SKIP="no ksh on FreeBSD" + +eval_cmd $* diff --git a/usr.bin/bmake/tests/shell/path/sh b/usr.bin/bmake/tests/shell/path/sh new file mode 100644 index 0000000..46169eb --- /dev/null +++ b/usr.bin/bmake/tests/shell/path/sh @@ -0,0 +1,6 @@ +#!/bin/sh +# $FreeBSD$ +echo $@ +if ! test -t 0 ; then + cat +fi diff --git a/usr.bin/bmake/tests/shell/path_select/Makefile b/usr.bin/bmake/tests/shell/path_select/Makefile new file mode 100644 index 0000000..1819f91 --- /dev/null +++ b/usr.bin/bmake/tests/shell/path_select/Makefile @@ -0,0 +1,17 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/shell/path_select + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.status.2 +FILES+= expected.stderr.1 +FILES+= expected.stderr.2 +FILES+= expected.stdout.1 +FILES+= expected.stdout.2 +FILES+= shell + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/shell/path_select/Makefile.test b/usr.bin/bmake/tests/shell/path_select/Makefile.test new file mode 100644 index 0000000..05cfb27 --- /dev/null +++ b/usr.bin/bmake/tests/shell/path_select/Makefile.test @@ -0,0 +1,31 @@ +# +# Change the path for builtin shells. There are two methods to do this. +# This is the second of them when both a path and a name are specified. +# This selects a builtin shell according to the name, but executes it +# from the specified path. +# +# Be sure to include a meta-character into the command line, so that +# really our shell is executed. +# +# $FreeBSD$ +# + +.ifmake sh_test + +.SHELL: name=sh path=${.CURDIR}/shell +sh_test: + @: This is the shell. + +.elifmake csh_test + +.SHELL: name=csh path=${.CURDIR}/shell +csh_test: + @: This is the C-shell. + +.elifmake ksh_test + +.SHELL: name=ksh path=${.CURDIR}/shell +ksh_test: + @: This is the Korn-shell. + +.endif diff --git a/usr.bin/bmake/tests/shell/path_select/expected.status.1 b/usr.bin/bmake/tests/shell/path_select/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/shell/path_select/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/shell/path_select/expected.status.2 b/usr.bin/bmake/tests/shell/path_select/expected.status.2 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/shell/path_select/expected.status.2 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/shell/path_select/expected.stderr.1 b/usr.bin/bmake/tests/shell/path_select/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/shell/path_select/expected.stderr.1 diff --git a/usr.bin/bmake/tests/shell/path_select/expected.stderr.2 b/usr.bin/bmake/tests/shell/path_select/expected.stderr.2 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/shell/path_select/expected.stderr.2 diff --git a/usr.bin/bmake/tests/shell/path_select/expected.stdout.1 b/usr.bin/bmake/tests/shell/path_select/expected.stdout.1 new file mode 100644 index 0000000..d881364 --- /dev/null +++ b/usr.bin/bmake/tests/shell/path_select/expected.stdout.1 @@ -0,0 +1 @@ +-ec : This is the shell. diff --git a/usr.bin/bmake/tests/shell/path_select/expected.stdout.2 b/usr.bin/bmake/tests/shell/path_select/expected.stdout.2 new file mode 100644 index 0000000..de3fc89 --- /dev/null +++ b/usr.bin/bmake/tests/shell/path_select/expected.stdout.2 @@ -0,0 +1 @@ +-ec : This is the C-shell. diff --git a/usr.bin/bmake/tests/shell/path_select/legacy_test.sh b/usr.bin/bmake/tests/shell/path_select/legacy_test.sh new file mode 100644 index 0000000..6b75b90 --- /dev/null +++ b/usr.bin/bmake/tests/shell/path_select/legacy_test.sh @@ -0,0 +1,19 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="New path for builtin shells (2)." + +# Setup +TEST_COPY_FILES="shell 755" + +# Run +TEST_N=3 +TEST_1="sh_test" +TEST_2="csh_test" +TEST_3="ksh_test" +TEST_3_SKIP="no ksh on FreeBSD" + +eval_cmd $* diff --git a/usr.bin/bmake/tests/shell/path_select/shell b/usr.bin/bmake/tests/shell/path_select/shell new file mode 100644 index 0000000..46169eb --- /dev/null +++ b/usr.bin/bmake/tests/shell/path_select/shell @@ -0,0 +1,6 @@ +#!/bin/sh +# $FreeBSD$ +echo $@ +if ! test -t 0 ; then + cat +fi diff --git a/usr.bin/bmake/tests/shell/replace/Makefile b/usr.bin/bmake/tests/shell/replace/Makefile new file mode 100644 index 0000000..0dae915 --- /dev/null +++ b/usr.bin/bmake/tests/shell/replace/Makefile @@ -0,0 +1,17 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/shell/replace + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.status.2 +FILES+= expected.stderr.1 +FILES+= expected.stderr.2 +FILES+= expected.stdout.1 +FILES+= expected.stdout.2 +FILES+= shell + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/shell/replace/Makefile.test b/usr.bin/bmake/tests/shell/replace/Makefile.test new file mode 100644 index 0000000..2160dbf --- /dev/null +++ b/usr.bin/bmake/tests/shell/replace/Makefile.test @@ -0,0 +1,21 @@ +# +# Test that we can replace the shell and set all the shell parameters +# (except meta and builtin which have their own test). This is done by +# using a shell script for the shell that echoes all command line +# arguments and its standard input. The shell name should not be one of +# the builtin shells. +# +# XXX There seems to be a problem here in -j1 mode: for the line without +# @- make should switch on echoing again, but it doesn't. +# +# $FreeBSD$ + +.SHELL: name="shell" path="${.CURDIR}/shell" \ + quiet="be quiet" echo="be verbose" filter="be verbose" \ + echoFlag="x" errFlag="y" \ + hasErrCtl=y check="check errors" ignore="ignore errors" + +.PHONY: test1 +test1: + -@funny $$ + funnier $$ diff --git a/usr.bin/bmake/tests/shell/replace/expected.status.1 b/usr.bin/bmake/tests/shell/replace/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/shell/replace/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/shell/replace/expected.status.2 b/usr.bin/bmake/tests/shell/replace/expected.status.2 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/shell/replace/expected.status.2 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/shell/replace/expected.stderr.1 b/usr.bin/bmake/tests/shell/replace/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/shell/replace/expected.stderr.1 diff --git a/usr.bin/bmake/tests/shell/replace/expected.stderr.2 b/usr.bin/bmake/tests/shell/replace/expected.stderr.2 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/shell/replace/expected.stderr.2 diff --git a/usr.bin/bmake/tests/shell/replace/expected.stdout.1 b/usr.bin/bmake/tests/shell/replace/expected.stdout.1 new file mode 100644 index 0000000..eff99ea --- /dev/null +++ b/usr.bin/bmake/tests/shell/replace/expected.stdout.1 @@ -0,0 +1,3 @@ +-c funny $ +funnier $ +-ec funnier $ diff --git a/usr.bin/bmake/tests/shell/replace/expected.stdout.2 b/usr.bin/bmake/tests/shell/replace/expected.stdout.2 new file mode 100644 index 0000000..c79a09a --- /dev/null +++ b/usr.bin/bmake/tests/shell/replace/expected.stdout.2 @@ -0,0 +1,6 @@ +-yx +be quiet +ignore errors +funny $ +check errors +funnier $ diff --git a/usr.bin/bmake/tests/shell/replace/legacy_test.sh b/usr.bin/bmake/tests/shell/replace/legacy_test.sh new file mode 100644 index 0000000..880ca78 --- /dev/null +++ b/usr.bin/bmake/tests/shell/replace/legacy_test.sh @@ -0,0 +1,17 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Check that the shell can be replaced." + +# Setup +TEST_COPY_FILES="shell 755" + +# Run +TEST_N=2 +TEST_1= +TEST_2=-j2 + +eval_cmd $* diff --git a/usr.bin/bmake/tests/shell/replace/shell b/usr.bin/bmake/tests/shell/replace/shell new file mode 100644 index 0000000..46169eb --- /dev/null +++ b/usr.bin/bmake/tests/shell/replace/shell @@ -0,0 +1,6 @@ +#!/bin/sh +# $FreeBSD$ +echo $@ +if ! test -t 0 ; then + cat +fi diff --git a/usr.bin/bmake/tests/shell/select/Makefile b/usr.bin/bmake/tests/shell/select/Makefile new file mode 100644 index 0000000..45e6d72 --- /dev/null +++ b/usr.bin/bmake/tests/shell/select/Makefile @@ -0,0 +1,16 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/shell/select + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.status.2 +FILES+= expected.stderr.1 +FILES+= expected.stderr.2 +FILES+= expected.stdout.1 +FILES+= expected.stdout.2 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/shell/select/Makefile.test b/usr.bin/bmake/tests/shell/select/Makefile.test new file mode 100644 index 0000000..74d96e1 --- /dev/null +++ b/usr.bin/bmake/tests/shell/select/Makefile.test @@ -0,0 +1,28 @@ +# +# We just select the builtin shells and check whether it is really +# executed. This should print just the shell paths. Because we +# normally don't have a ksh, we make this test conditional. This means +# one has to recreate the test results once ksh is installed. +# +# $FreeBSD$ +# + +.ifmake sh_test + +.SHELL: name=sh +sh_test: print_path + +.elifmake csh_test + +.SHELL: name=csh +csh_test: print_path + +.elifmake ksh_test + +.SHELL: name=ksh +ksh_test: print_path + +.endif + +print_path: + @ps -x -opid,command | awk '$$1=='$$$$' { print $$2; }' diff --git a/usr.bin/bmake/tests/shell/select/expected.status.1 b/usr.bin/bmake/tests/shell/select/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/shell/select/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/shell/select/expected.status.2 b/usr.bin/bmake/tests/shell/select/expected.status.2 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/shell/select/expected.status.2 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/shell/select/expected.stderr.1 b/usr.bin/bmake/tests/shell/select/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/shell/select/expected.stderr.1 diff --git a/usr.bin/bmake/tests/shell/select/expected.stderr.2 b/usr.bin/bmake/tests/shell/select/expected.stderr.2 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/shell/select/expected.stderr.2 diff --git a/usr.bin/bmake/tests/shell/select/expected.stdout.1 b/usr.bin/bmake/tests/shell/select/expected.stdout.1 new file mode 100644 index 0000000..c2cdaa0 --- /dev/null +++ b/usr.bin/bmake/tests/shell/select/expected.stdout.1 @@ -0,0 +1 @@ +/bin/sh diff --git a/usr.bin/bmake/tests/shell/select/expected.stdout.2 b/usr.bin/bmake/tests/shell/select/expected.stdout.2 new file mode 100644 index 0000000..5a831e8 --- /dev/null +++ b/usr.bin/bmake/tests/shell/select/expected.stdout.2 @@ -0,0 +1 @@ +/bin/csh diff --git a/usr.bin/bmake/tests/shell/select/legacy_test.sh b/usr.bin/bmake/tests/shell/select/legacy_test.sh new file mode 100644 index 0000000..46d3eaf --- /dev/null +++ b/usr.bin/bmake/tests/shell/select/legacy_test.sh @@ -0,0 +1,16 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Select the builtin sh shell." + +# Run +TEST_N=3 +TEST_1="sh_test" +TEST_2="csh_test" +TEST_3="ksh_test" +TEST_3_SKIP="no ksh on FreeBSD" + +eval_cmd $* diff --git a/usr.bin/bmake/tests/suffixes/Makefile b/usr.bin/bmake/tests/suffixes/Makefile new file mode 100644 index 0000000..60ec86e --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/Makefile @@ -0,0 +1,7 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/suffixes + +TESTS_SUBDIRS= basic src_wild1 src_wild2 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/suffixes/basic/Makefile b/usr.bin/bmake/tests/suffixes/basic/Makefile new file mode 100644 index 0000000..9ae720e --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/basic/Makefile @@ -0,0 +1,14 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/suffixes/basic + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= TEST1.a +FILES+= expected.status.1 +FILES+= expected.stderr.1 +FILES+= expected.stdout.1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/suffixes/basic/Makefile.test b/usr.bin/bmake/tests/suffixes/basic/Makefile.test new file mode 100644 index 0000000..45d9130 --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/basic/Makefile.test @@ -0,0 +1,13 @@ +# $FreeBSD$ +# +# Check that a simple suffix rule is correctly processed. + +test1: TEST1.b + diff -u TEST1.a TEST1.b + +.SUFFIXES: + +.SUFFIXES: .a .b + +.a.b: + cat ${.IMPSRC} >${.TARGET} diff --git a/usr.bin/bmake/tests/suffixes/basic/TEST1.a b/usr.bin/bmake/tests/suffixes/basic/TEST1.a new file mode 100644 index 0000000..da5569b --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/basic/TEST1.a @@ -0,0 +1 @@ +I'm test file 1. diff --git a/usr.bin/bmake/tests/suffixes/basic/expected.status.1 b/usr.bin/bmake/tests/suffixes/basic/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/basic/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/suffixes/basic/expected.stderr.1 b/usr.bin/bmake/tests/suffixes/basic/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/basic/expected.stderr.1 diff --git a/usr.bin/bmake/tests/suffixes/basic/expected.stdout.1 b/usr.bin/bmake/tests/suffixes/basic/expected.stdout.1 new file mode 100644 index 0000000..582927e --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/basic/expected.stdout.1 @@ -0,0 +1,2 @@ +cat TEST1.a >TEST1.b +diff -u TEST1.a TEST1.b diff --git a/usr.bin/bmake/tests/suffixes/basic/legacy_test.sh b/usr.bin/bmake/tests/suffixes/basic/legacy_test.sh new file mode 100644 index 0000000..3446bf0 --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/basic/legacy_test.sh @@ -0,0 +1,19 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Basic suffix operation." + +# Setup +TEST_COPY_FILES="TEST1.a 644" + +# Reset +TEST_CLEAN="Test1.b" + +# Run +TEST_N=1 +TEST_1="-r test1" + +eval_cmd $* diff --git a/usr.bin/bmake/tests/suffixes/src_wild1/Makefile b/usr.bin/bmake/tests/suffixes/src_wild1/Makefile new file mode 100644 index 0000000..00be930 --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/src_wild1/Makefile @@ -0,0 +1,15 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/suffixes/src_wild1 + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= TEST1.a +FILES+= TEST2.a +FILES+= expected.status.1 +FILES+= expected.stderr.1 +FILES+= expected.stdout.1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/suffixes/src_wild1/Makefile.test b/usr.bin/bmake/tests/suffixes/src_wild1/Makefile.test new file mode 100644 index 0000000..d0258ad --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/src_wild1/Makefile.test @@ -0,0 +1,7 @@ +# $FreeBSD$ + +test1: TEST1.b + cat TEST1.a TEST2.a | diff -u - TEST1.b + +TEST1.b: *.a + cat ${.ALLSRC} >${.TARGET} diff --git a/usr.bin/bmake/tests/suffixes/src_wild1/TEST1.a b/usr.bin/bmake/tests/suffixes/src_wild1/TEST1.a new file mode 100644 index 0000000..da5569b --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/src_wild1/TEST1.a @@ -0,0 +1 @@ +I'm test file 1. diff --git a/usr.bin/bmake/tests/suffixes/src_wild1/TEST2.a b/usr.bin/bmake/tests/suffixes/src_wild1/TEST2.a new file mode 100644 index 0000000..34f8508 --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/src_wild1/TEST2.a @@ -0,0 +1 @@ +I'm test file 2. diff --git a/usr.bin/bmake/tests/suffixes/src_wild1/expected.status.1 b/usr.bin/bmake/tests/suffixes/src_wild1/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/src_wild1/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/suffixes/src_wild1/expected.stderr.1 b/usr.bin/bmake/tests/suffixes/src_wild1/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/src_wild1/expected.stderr.1 diff --git a/usr.bin/bmake/tests/suffixes/src_wild1/expected.stdout.1 b/usr.bin/bmake/tests/suffixes/src_wild1/expected.stdout.1 new file mode 100644 index 0000000..3cd2129 --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/src_wild1/expected.stdout.1 @@ -0,0 +1,2 @@ +cat TEST1.a TEST2.a >TEST1.b +cat TEST1.a TEST2.a | diff -u - TEST1.b diff --git a/usr.bin/bmake/tests/suffixes/src_wild1/legacy_test.sh b/usr.bin/bmake/tests/suffixes/src_wild1/legacy_test.sh new file mode 100644 index 0000000..053cc6c --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/src_wild1/legacy_test.sh @@ -0,0 +1,19 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Source wildcard expansion." + +# Setup +TEST_COPY_FILES="TEST1.a 644 TEST2.a 644" + +# Reset +TEST_CLEAN="TEST1.b" + +# Run +TEST_N=1 +TEST_1="-r test1" + +eval_cmd $* diff --git a/usr.bin/bmake/tests/suffixes/src_wild2/Makefile b/usr.bin/bmake/tests/suffixes/src_wild2/Makefile new file mode 100644 index 0000000..34aad07 --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/src_wild2/Makefile @@ -0,0 +1,15 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/suffixes/src_wild2 + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= TEST1.a +FILES+= TEST2.a +FILES+= expected.status.1 +FILES+= expected.stderr.1 +FILES+= expected.stdout.1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/suffixes/src_wild2/Makefile.test b/usr.bin/bmake/tests/suffixes/src_wild2/Makefile.test new file mode 100644 index 0000000..1dea7ea --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/src_wild2/Makefile.test @@ -0,0 +1,12 @@ +# $FreeBSD$ +# +# Source expansion with the source in a macro +# + +SRC=*.a + +test1: TEST1.b + cat TEST1.a TEST2.a | diff -u - TEST1.b + +TEST1.b: ${SRC} + cat ${.ALLSRC} >${.TARGET} diff --git a/usr.bin/bmake/tests/suffixes/src_wild2/TEST1.a b/usr.bin/bmake/tests/suffixes/src_wild2/TEST1.a new file mode 100644 index 0000000..da5569b --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/src_wild2/TEST1.a @@ -0,0 +1 @@ +I'm test file 1. diff --git a/usr.bin/bmake/tests/suffixes/src_wild2/TEST2.a b/usr.bin/bmake/tests/suffixes/src_wild2/TEST2.a new file mode 100644 index 0000000..34f8508 --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/src_wild2/TEST2.a @@ -0,0 +1 @@ +I'm test file 2. diff --git a/usr.bin/bmake/tests/suffixes/src_wild2/expected.status.1 b/usr.bin/bmake/tests/suffixes/src_wild2/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/src_wild2/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/suffixes/src_wild2/expected.stderr.1 b/usr.bin/bmake/tests/suffixes/src_wild2/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/src_wild2/expected.stderr.1 diff --git a/usr.bin/bmake/tests/suffixes/src_wild2/expected.stdout.1 b/usr.bin/bmake/tests/suffixes/src_wild2/expected.stdout.1 new file mode 100644 index 0000000..3cd2129 --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/src_wild2/expected.stdout.1 @@ -0,0 +1,2 @@ +cat TEST1.a TEST2.a >TEST1.b +cat TEST1.a TEST2.a | diff -u - TEST1.b diff --git a/usr.bin/bmake/tests/suffixes/src_wild2/legacy_test.sh b/usr.bin/bmake/tests/suffixes/src_wild2/legacy_test.sh new file mode 100644 index 0000000..03cff93 --- /dev/null +++ b/usr.bin/bmake/tests/suffixes/src_wild2/legacy_test.sh @@ -0,0 +1,19 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Source wildcard expansion (2)." + +# Setup +TEST_COPY_FILES="TEST1.a 644 TEST2.a 644" + +# Reset +TEST_CLEAN="TEST1.b" + +# Run +TEST_N=1 +TEST_1="-r test1" + +eval_cmd $* diff --git a/usr.bin/bmake/tests/syntax/Makefile b/usr.bin/bmake/tests/syntax/Makefile new file mode 100644 index 0000000..3cd89f8 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/Makefile @@ -0,0 +1,7 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/syntax + +TESTS_SUBDIRS= directive-t0 enl funny-targets semi + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/syntax/directive-t0/Makefile b/usr.bin/bmake/tests/syntax/directive-t0/Makefile new file mode 100644 index 0000000..66e1f32 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/directive-t0/Makefile @@ -0,0 +1,13 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/syntax/directive-t0 + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.stderr.1 +FILES+= expected.stdout.1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/syntax/directive-t0/Makefile.test b/usr.bin/bmake/tests/syntax/directive-t0/Makefile.test new file mode 100644 index 0000000..0f95a21 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/directive-t0/Makefile.test @@ -0,0 +1,8 @@ +# $FreeBSD$ +# +# A typo'ed directive. +# + +.uudef foo + +all: diff --git a/usr.bin/bmake/tests/syntax/directive-t0/expected.status.1 b/usr.bin/bmake/tests/syntax/directive-t0/expected.status.1 new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/usr.bin/bmake/tests/syntax/directive-t0/expected.status.1 @@ -0,0 +1 @@ +1 diff --git a/usr.bin/bmake/tests/syntax/directive-t0/expected.stderr.1 b/usr.bin/bmake/tests/syntax/directive-t0/expected.stderr.1 new file mode 100644 index 0000000..de66fcc --- /dev/null +++ b/usr.bin/bmake/tests/syntax/directive-t0/expected.stderr.1 @@ -0,0 +1,2 @@ +"Makefile", line 6: Unknown directive +make: fatal errors encountered -- cannot continue diff --git a/usr.bin/bmake/tests/syntax/directive-t0/expected.stdout.1 b/usr.bin/bmake/tests/syntax/directive-t0/expected.stdout.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/directive-t0/expected.stdout.1 diff --git a/usr.bin/bmake/tests/syntax/directive-t0/legacy_test.sh b/usr.bin/bmake/tests/syntax/directive-t0/legacy_test.sh new file mode 100644 index 0000000..451c876 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/directive-t0/legacy_test.sh @@ -0,0 +1,13 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="A typo'ed directive." + +# Run +TEST_N=1 +TEST_1= + +eval_cmd $* diff --git a/usr.bin/bmake/tests/syntax/enl/Makefile b/usr.bin/bmake/tests/syntax/enl/Makefile new file mode 100644 index 0000000..743e88f --- /dev/null +++ b/usr.bin/bmake/tests/syntax/enl/Makefile @@ -0,0 +1,25 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/syntax/enl + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.status.2 +FILES+= expected.status.3 +FILES+= expected.status.4 +FILES+= expected.status.5 +FILES+= expected.stderr.1 +FILES+= expected.stderr.2 +FILES+= expected.stderr.3 +FILES+= expected.stderr.4 +FILES+= expected.stderr.5 +FILES+= expected.stdout.1 +FILES+= expected.stdout.2 +FILES+= expected.stdout.3 +FILES+= expected.stdout.4 +FILES+= expected.stdout.5 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/syntax/enl/Makefile.test b/usr.bin/bmake/tests/syntax/enl/Makefile.test new file mode 100644 index 0000000..a7c6955 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/enl/Makefile.test @@ -0,0 +1,59 @@ +# $FreeBSD$ +# +# Test handling of escaped newlines. +# + +.ifmake test1 + +# This should succeed +\ +\ +\ +test1: + @echo ok + +.elifmake test2 + +# This should print ok because the second assignment to foo is actually +# a continued comment. +FOO=ok +#\ +\ +FOO=not ok +test2: + @echo "${FOO}" + +.elifmake test3 + +# Make sure an escaped newline inserts a space +test3: a\ +b + +a: + @echo a + +b: + @echo b + +.elifmake test4 + +# Make sure an escaped newline inserts exactly one space +FOO=a\ + b + +test4: + @echo "${FOO}" + +.elifmake test5 + +# Make sure each escaped newline inserts exactly one space +FOO=a\ +\ +\ +\ +b + +test5: + @echo "${FOO}" + +.endif diff --git a/usr.bin/bmake/tests/syntax/enl/expected.status.1 b/usr.bin/bmake/tests/syntax/enl/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/syntax/enl/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/syntax/enl/expected.status.2 b/usr.bin/bmake/tests/syntax/enl/expected.status.2 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/syntax/enl/expected.status.2 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/syntax/enl/expected.status.3 b/usr.bin/bmake/tests/syntax/enl/expected.status.3 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/syntax/enl/expected.status.3 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/syntax/enl/expected.status.4 b/usr.bin/bmake/tests/syntax/enl/expected.status.4 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/syntax/enl/expected.status.4 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/syntax/enl/expected.status.5 b/usr.bin/bmake/tests/syntax/enl/expected.status.5 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/syntax/enl/expected.status.5 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stderr.1 b/usr.bin/bmake/tests/syntax/enl/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/enl/expected.stderr.1 diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stderr.2 b/usr.bin/bmake/tests/syntax/enl/expected.stderr.2 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/enl/expected.stderr.2 diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stderr.3 b/usr.bin/bmake/tests/syntax/enl/expected.stderr.3 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/enl/expected.stderr.3 diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stderr.4 b/usr.bin/bmake/tests/syntax/enl/expected.stderr.4 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/enl/expected.stderr.4 diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stderr.5 b/usr.bin/bmake/tests/syntax/enl/expected.stderr.5 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/enl/expected.stderr.5 diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stdout.1 b/usr.bin/bmake/tests/syntax/enl/expected.stdout.1 new file mode 100644 index 0000000..9766475 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/enl/expected.stdout.1 @@ -0,0 +1 @@ +ok diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stdout.2 b/usr.bin/bmake/tests/syntax/enl/expected.stdout.2 new file mode 100644 index 0000000..9766475 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/enl/expected.stdout.2 @@ -0,0 +1 @@ +ok diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stdout.3 b/usr.bin/bmake/tests/syntax/enl/expected.stdout.3 new file mode 100644 index 0000000..422c2b7 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/enl/expected.stdout.3 @@ -0,0 +1,2 @@ +a +b diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stdout.4 b/usr.bin/bmake/tests/syntax/enl/expected.stdout.4 new file mode 100644 index 0000000..b2901ea --- /dev/null +++ b/usr.bin/bmake/tests/syntax/enl/expected.stdout.4 @@ -0,0 +1 @@ +a b diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stdout.5 b/usr.bin/bmake/tests/syntax/enl/expected.stdout.5 new file mode 100644 index 0000000..5120076 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/enl/expected.stdout.5 @@ -0,0 +1 @@ +a b diff --git a/usr.bin/bmake/tests/syntax/enl/legacy_test.sh b/usr.bin/bmake/tests/syntax/enl/legacy_test.sh new file mode 100644 index 0000000..307c1f0 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/enl/legacy_test.sh @@ -0,0 +1,13 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Test escaped new-lines handling." + +# Run +TEST_N=5 +TEST_2_TODO="bug in parser" + +eval_cmd $* diff --git a/usr.bin/bmake/tests/syntax/funny-targets/Makefile b/usr.bin/bmake/tests/syntax/funny-targets/Makefile new file mode 100644 index 0000000..53a3e4d --- /dev/null +++ b/usr.bin/bmake/tests/syntax/funny-targets/Makefile @@ -0,0 +1,16 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/syntax/funny-targets + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.status.2 +FILES+= expected.stderr.1 +FILES+= expected.stderr.2 +FILES+= expected.stdout.1 +FILES+= expected.stdout.2 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/syntax/funny-targets/Makefile.test b/usr.bin/bmake/tests/syntax/funny-targets/Makefile.test new file mode 100644 index 0000000..064ab3a --- /dev/null +++ b/usr.bin/bmake/tests/syntax/funny-targets/Makefile.test @@ -0,0 +1,14 @@ +# $FreeBSD$ +# +# PR bin/6612 / GRN r102178 +# + +test1: colons::colons::target + +colons::colons::target: + @echo '${.TARGET}' + +test2: exclamation!target + +exclamation!target: + @echo '${.TARGET} diff --git a/usr.bin/bmake/tests/syntax/funny-targets/expected.status.1 b/usr.bin/bmake/tests/syntax/funny-targets/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/syntax/funny-targets/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/syntax/funny-targets/expected.status.2 b/usr.bin/bmake/tests/syntax/funny-targets/expected.status.2 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/syntax/funny-targets/expected.status.2 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/syntax/funny-targets/expected.stderr.1 b/usr.bin/bmake/tests/syntax/funny-targets/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/funny-targets/expected.stderr.1 diff --git a/usr.bin/bmake/tests/syntax/funny-targets/expected.stderr.2 b/usr.bin/bmake/tests/syntax/funny-targets/expected.stderr.2 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/funny-targets/expected.stderr.2 diff --git a/usr.bin/bmake/tests/syntax/funny-targets/expected.stdout.1 b/usr.bin/bmake/tests/syntax/funny-targets/expected.stdout.1 new file mode 100644 index 0000000..09cb232 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/funny-targets/expected.stdout.1 @@ -0,0 +1 @@ +colons::colons::target diff --git a/usr.bin/bmake/tests/syntax/funny-targets/expected.stdout.2 b/usr.bin/bmake/tests/syntax/funny-targets/expected.stdout.2 new file mode 100644 index 0000000..b2f0364 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/funny-targets/expected.stdout.2 @@ -0,0 +1 @@ +exclamation!target diff --git a/usr.bin/bmake/tests/syntax/funny-targets/legacy_test.sh b/usr.bin/bmake/tests/syntax/funny-targets/legacy_test.sh new file mode 100644 index 0000000..e9cd317 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/funny-targets/legacy_test.sh @@ -0,0 +1,12 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC='Target names with "funny" embeded characters.' + +# Run +TEST_N=2 + +eval_cmd $* diff --git a/usr.bin/bmake/tests/syntax/semi/Makefile b/usr.bin/bmake/tests/syntax/semi/Makefile new file mode 100644 index 0000000..00a7f1e --- /dev/null +++ b/usr.bin/bmake/tests/syntax/semi/Makefile @@ -0,0 +1,16 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/syntax/semi + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.status.2 +FILES+= expected.stderr.1 +FILES+= expected.stderr.2 +FILES+= expected.stdout.1 +FILES+= expected.stdout.2 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/syntax/semi/Makefile.test b/usr.bin/bmake/tests/syntax/semi/Makefile.test new file mode 100644 index 0000000..12f5225 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/semi/Makefile.test @@ -0,0 +1,26 @@ +# $FreeBSD$ +# +# Test handling of escaped newlines. +# + +.ifmake test1 + +FOO= +BAR=bar +FOO != echo ${FOO} ; echo ${BAR} + +test1: + echo ${FOO} + +.endif + +.ifmake test2 + +FOO=foo +BAR=bar +FOO != echo ${FOO} ; echo ${BAR} + +test2: + echo ${FOO} + +.endif diff --git a/usr.bin/bmake/tests/syntax/semi/expected.status.1 b/usr.bin/bmake/tests/syntax/semi/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/syntax/semi/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/syntax/semi/expected.status.2 b/usr.bin/bmake/tests/syntax/semi/expected.status.2 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/syntax/semi/expected.status.2 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/syntax/semi/expected.stderr.1 b/usr.bin/bmake/tests/syntax/semi/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/semi/expected.stderr.1 diff --git a/usr.bin/bmake/tests/syntax/semi/expected.stderr.2 b/usr.bin/bmake/tests/syntax/semi/expected.stderr.2 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/semi/expected.stderr.2 diff --git a/usr.bin/bmake/tests/syntax/semi/expected.stdout.1 b/usr.bin/bmake/tests/syntax/semi/expected.stdout.1 new file mode 100644 index 0000000..12b9617 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/semi/expected.stdout.1 @@ -0,0 +1,2 @@ +echo bar +bar diff --git a/usr.bin/bmake/tests/syntax/semi/expected.stdout.2 b/usr.bin/bmake/tests/syntax/semi/expected.stdout.2 new file mode 100644 index 0000000..be0fa55 --- /dev/null +++ b/usr.bin/bmake/tests/syntax/semi/expected.stdout.2 @@ -0,0 +1,2 @@ +echo foo bar +foo bar diff --git a/usr.bin/bmake/tests/syntax/semi/legacy_test.sh b/usr.bin/bmake/tests/syntax/semi/legacy_test.sh new file mode 100644 index 0000000..092635a --- /dev/null +++ b/usr.bin/bmake/tests/syntax/semi/legacy_test.sh @@ -0,0 +1,13 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Test semicolon handling." + +# Run +TEST_N=2 +TEST_1_TODO="parser bug" + +eval_cmd $* diff --git a/usr.bin/bmake/tests/sysmk/Makefile b/usr.bin/bmake/tests/sysmk/Makefile new file mode 100644 index 0000000..90d90f1 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/Makefile @@ -0,0 +1,7 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/sysmk + +TESTS_SUBDIRS= t0 t1 t2 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/sysmk/t0/2/1/Makefile b/usr.bin/bmake/tests/sysmk/t0/2/1/Makefile new file mode 100644 index 0000000..5578a9b --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t0/2/1/Makefile @@ -0,0 +1,13 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/sysmk/t0/2/1 + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.stderr.1 +FILES+= expected.stdout.1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/sysmk/t0/2/1/Makefile.test b/usr.bin/bmake/tests/sysmk/t0/2/1/Makefile.test new file mode 100644 index 0000000..fc95f46 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t0/2/1/Makefile.test @@ -0,0 +1,6 @@ +# $FreeBSD$ +# +# Can we traverse up to / and find a 'mk/sys.mk'? +# +all: + @echo ${DASH_M_DOTDOTDOT} diff --git a/usr.bin/bmake/tests/sysmk/t0/2/1/expected.status.1 b/usr.bin/bmake/tests/sysmk/t0/2/1/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t0/2/1/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/sysmk/t0/2/1/expected.stderr.1 b/usr.bin/bmake/tests/sysmk/t0/2/1/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t0/2/1/expected.stderr.1 diff --git a/usr.bin/bmake/tests/sysmk/t0/2/1/expected.stdout.1 b/usr.bin/bmake/tests/sysmk/t0/2/1/expected.stdout.1 new file mode 100644 index 0000000..6f29307 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t0/2/1/expected.stdout.1 @@ -0,0 +1 @@ +Found_DotDotDot_sys_mk diff --git a/usr.bin/bmake/tests/sysmk/t0/2/1/legacy_test.sh b/usr.bin/bmake/tests/sysmk/t0/2/1/legacy_test.sh new file mode 100644 index 0000000..0214842 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t0/2/1/legacy_test.sh @@ -0,0 +1,15 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../../../common.sh + +# Description +DESC="Can we traverse up to / and find a 'mk/sys.mk'?" + +# Run +TEST_N=1 +TEST_1="-m .../mk" +TEST_MAKE_DIRS="../../mk 755" +TEST_COPY_FILES="../../mk/sys.mk 644" + +eval_cmd $* diff --git a/usr.bin/bmake/tests/sysmk/t0/2/Makefile b/usr.bin/bmake/tests/sysmk/t0/2/Makefile new file mode 100644 index 0000000..2204807 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t0/2/Makefile @@ -0,0 +1,7 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/sysmk/t0/2 + +TESTS_SUBDIRS= 1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/sysmk/t0/Makefile b/usr.bin/bmake/tests/sysmk/t0/Makefile new file mode 100644 index 0000000..f38383c --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t0/Makefile @@ -0,0 +1,8 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/sysmk/t0 + +TESTS_SUBDIRS= 2 +SUBDIR= mk + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/sysmk/t0/mk/Makefile b/usr.bin/bmake/tests/sysmk/t0/mk/Makefile new file mode 100644 index 0000000..be1bd5a --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t0/mk/Makefile @@ -0,0 +1,9 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/sysmk/t0/mk + +FILESDIR= ${TESTSDIR} +FILES= sys.mk.test +FILESNAME_sys.mk.test= sys.mk + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/sysmk/t0/mk/sys.mk.test b/usr.bin/bmake/tests/sysmk/t0/mk/sys.mk.test new file mode 100644 index 0000000..60f1955 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t0/mk/sys.mk.test @@ -0,0 +1,3 @@ +# $FreeBSD$ + +DASH_M_DOTDOTDOT=Found_DotDotDot_sys_mk diff --git a/usr.bin/bmake/tests/sysmk/t1/2/1/Makefile b/usr.bin/bmake/tests/sysmk/t1/2/1/Makefile new file mode 100644 index 0000000..c5e2889 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t1/2/1/Makefile @@ -0,0 +1,13 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/sysmk/t1/2/1 + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= cleanup +FILES+= expected.status.1 +FILES+= expected.stderr.1 +FILES+= expected.stdout.1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/sysmk/t1/2/1/cleanup b/usr.bin/bmake/tests/sysmk/t1/2/1/cleanup new file mode 100644 index 0000000..c3d58b7 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t1/2/1/cleanup @@ -0,0 +1,3 @@ +# $FreeBSD$ + +rm -rf ${WORK_DIR}/../../../t0/2/1 diff --git a/usr.bin/bmake/tests/sysmk/t1/2/1/expected.status.1 b/usr.bin/bmake/tests/sysmk/t1/2/1/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t1/2/1/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/sysmk/t1/2/1/expected.stderr.1 b/usr.bin/bmake/tests/sysmk/t1/2/1/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t1/2/1/expected.stderr.1 diff --git a/usr.bin/bmake/tests/sysmk/t1/2/1/expected.stdout.1 b/usr.bin/bmake/tests/sysmk/t1/2/1/expected.stdout.1 new file mode 100644 index 0000000..6f29307 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t1/2/1/expected.stdout.1 @@ -0,0 +1 @@ +Found_DotDotDot_sys_mk diff --git a/usr.bin/bmake/tests/sysmk/t1/2/1/legacy_test.sh b/usr.bin/bmake/tests/sysmk/t1/2/1/legacy_test.sh new file mode 100644 index 0000000..fb73851 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t1/2/1/legacy_test.sh @@ -0,0 +1,17 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../../../common.sh + +# Description +DESC="Can we traverse up to / and find a 'mk/sys.mk' with -C -m?" + +# Run +TEST_N=1 +TEST_1="-C ../../../t0/2/1 -m .../mk" +TEST_MAKE_DIRS="../../mk 755 ../../../t0/mk 755 ../../../t0/2/1 755" +TEST_COPY_FILES="../../mk/sys.mk 644 ../../../t0/mk/sys.mk 644 ../../../t0/2/1/Makefile.test 644" +TEST_CLEAN_FILES="../../../t0/2/1" +TEST_CLEANUP=clean-special + +eval_cmd $* diff --git a/usr.bin/bmake/tests/sysmk/t1/2/Makefile b/usr.bin/bmake/tests/sysmk/t1/2/Makefile new file mode 100644 index 0000000..7c2e619 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t1/2/Makefile @@ -0,0 +1,7 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/sysmk/t1/2 + +TESTS_SUBDIRS= 1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/sysmk/t1/Makefile b/usr.bin/bmake/tests/sysmk/t1/Makefile new file mode 100644 index 0000000..4d32823 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t1/Makefile @@ -0,0 +1,8 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/sysmk/t1 + +TESTS_SUBDIRS= 2 +SUBDIR= mk + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/sysmk/t1/mk/Makefile b/usr.bin/bmake/tests/sysmk/t1/mk/Makefile new file mode 100644 index 0000000..ccfd1b6 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t1/mk/Makefile @@ -0,0 +1,9 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/sysmk/t1/mk + +FILESDIR= ${TESTSDIR} +FILES= sys.mk.test +FILESNAME_sys.mk.test= sys.mk + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/sysmk/t1/mk/sys.mk.test b/usr.bin/bmake/tests/sysmk/t1/mk/sys.mk.test new file mode 100644 index 0000000..99b8ecc --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t1/mk/sys.mk.test @@ -0,0 +1,3 @@ +# $FreeBSD$ + +DASH_M_DOTDOTDOT=Found_WRONG_DotDotDot_sys_mk__with_C_before_m diff --git a/usr.bin/bmake/tests/sysmk/t2/2/1/Makefile b/usr.bin/bmake/tests/sysmk/t2/2/1/Makefile new file mode 100644 index 0000000..e06539a --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t2/2/1/Makefile @@ -0,0 +1,13 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/sysmk/t2/2/1 + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= cleanup +FILES+= expected.status.1 +FILES+= expected.stderr.1 +FILES+= expected.stdout.1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/sysmk/t2/2/1/cleanup b/usr.bin/bmake/tests/sysmk/t2/2/1/cleanup new file mode 100644 index 0000000..c3d58b7 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t2/2/1/cleanup @@ -0,0 +1,3 @@ +# $FreeBSD$ + +rm -rf ${WORK_DIR}/../../../t0/2/1 diff --git a/usr.bin/bmake/tests/sysmk/t2/2/1/expected.status.1 b/usr.bin/bmake/tests/sysmk/t2/2/1/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t2/2/1/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/sysmk/t2/2/1/expected.stderr.1 b/usr.bin/bmake/tests/sysmk/t2/2/1/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t2/2/1/expected.stderr.1 diff --git a/usr.bin/bmake/tests/sysmk/t2/2/1/expected.stdout.1 b/usr.bin/bmake/tests/sysmk/t2/2/1/expected.stdout.1 new file mode 100644 index 0000000..70f1be3 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t2/2/1/expected.stdout.1 @@ -0,0 +1 @@ +Found_DotDotDot_sys_mk__with_m_before_C diff --git a/usr.bin/bmake/tests/sysmk/t2/2/1/legacy_test.sh b/usr.bin/bmake/tests/sysmk/t2/2/1/legacy_test.sh new file mode 100644 index 0000000..ca817d8 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t2/2/1/legacy_test.sh @@ -0,0 +1,17 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../../../common.sh + +# Description +DESC="Can we traverse up to / and find a 'mk/sys.mk' with -m -C?" + +# Run +TEST_N=1 +TEST_1="-m .../mk -C ../../../t0/2/1" +TEST_MAKE_DIRS="../../mk 755 ../../../t0/mk 755 ../../../t0/2/1 755" +TEST_COPY_FILES="../../mk/sys.mk 644 ../../../t0/mk/sys.mk 644 ../../../t0/2/1/Makefile.test 644" +TEST_CLEAN_FILES="../../../t0/2/1" +TEST_CLEANUP=clean-special + +eval_cmd $* diff --git a/usr.bin/bmake/tests/sysmk/t2/2/Makefile b/usr.bin/bmake/tests/sysmk/t2/2/Makefile new file mode 100644 index 0000000..7d1c68e --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t2/2/Makefile @@ -0,0 +1,7 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/sysmk/t2/2 + +TESTS_SUBDIRS= 1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/sysmk/t2/Makefile b/usr.bin/bmake/tests/sysmk/t2/Makefile new file mode 100644 index 0000000..734c7d8 --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t2/Makefile @@ -0,0 +1,8 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/sysmk/t2 + +TESTS_SUBDIRS= 2 +SUBDIR= mk + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/sysmk/t2/mk/Makefile b/usr.bin/bmake/tests/sysmk/t2/mk/Makefile new file mode 100644 index 0000000..29460dc --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t2/mk/Makefile @@ -0,0 +1,9 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/sysmk/t2/mk + +FILESDIR= ${TESTSDIR} +FILES= sys.mk.test +FILESNAME_sys.mk.test= sys.mk + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/sysmk/t2/mk/sys.mk.test b/usr.bin/bmake/tests/sysmk/t2/mk/sys.mk.test new file mode 100644 index 0000000..55632fd --- /dev/null +++ b/usr.bin/bmake/tests/sysmk/t2/mk/sys.mk.test @@ -0,0 +1,3 @@ +# $FreeBSD$ + +DASH_M_DOTDOTDOT=Found_DotDotDot_sys_mk__with_m_before_C diff --git a/usr.bin/bmake/tests/test-new.mk b/usr.bin/bmake/tests/test-new.mk new file mode 100644 index 0000000..f200833 --- /dev/null +++ b/usr.bin/bmake/tests/test-new.mk @@ -0,0 +1,9 @@ +# $FreeBSD$ + +NEW_DIR!= make -C ${.CURDIR}/../../../../usr.bin/make -V .OBJDIR + +all: + rm -rf /tmp/${USER}.make.test + env MAKE_PROG=${NEW_DIR}/make ${.SHELL} ./all.sh + +.include <bsd.obj.mk> diff --git a/usr.bin/bmake/tests/variables/Makefile b/usr.bin/bmake/tests/variables/Makefile new file mode 100644 index 0000000..e010718 --- /dev/null +++ b/usr.bin/bmake/tests/variables/Makefile @@ -0,0 +1,7 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/variables + +TESTS_SUBDIRS= modifier_M modifier_t opt_V t0 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/variables/modifier_M/Makefile b/usr.bin/bmake/tests/variables/modifier_M/Makefile new file mode 100644 index 0000000..2490382 --- /dev/null +++ b/usr.bin/bmake/tests/variables/modifier_M/Makefile @@ -0,0 +1,13 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/variables/modifier_M + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.stderr.1 +FILES+= expected.stdout.1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/variables/modifier_M/Makefile.test b/usr.bin/bmake/tests/variables/modifier_M/Makefile.test new file mode 100644 index 0000000..34d4cd4 --- /dev/null +++ b/usr.bin/bmake/tests/variables/modifier_M/Makefile.test @@ -0,0 +1,18 @@ +# $FreeBSD$ +# +# Test the M modifier. +# +FILES = \ + main.c globals.h \ + util.c util.h \ + map.c map.h \ + parser.y lexer.l \ + cmdman.1 format.5 +test1: + @echo "all files: ${FILES}" + @echo "cfiles: ${FILES:M*.c}" + @echo "hfiles: ${FILES:M*.h}" + @echo "grammar and lexer: ${FILES:M*.[ly]}" + @echo "man page: ${FILES:M*.[1-9]}" + @echo "utility files: ${FILES:Mutil.?}" + @echo "m files: ${FILES:Mm*}" diff --git a/usr.bin/bmake/tests/variables/modifier_M/expected.status.1 b/usr.bin/bmake/tests/variables/modifier_M/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/variables/modifier_M/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/variables/modifier_M/expected.stderr.1 b/usr.bin/bmake/tests/variables/modifier_M/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/variables/modifier_M/expected.stderr.1 diff --git a/usr.bin/bmake/tests/variables/modifier_M/expected.stdout.1 b/usr.bin/bmake/tests/variables/modifier_M/expected.stdout.1 new file mode 100644 index 0000000..b29e6df --- /dev/null +++ b/usr.bin/bmake/tests/variables/modifier_M/expected.stdout.1 @@ -0,0 +1,7 @@ +all files: main.c globals.h util.c util.h map.c map.h parser.y lexer.l cmdman.1 format.5 +cfiles: main.c util.c map.c +hfiles: globals.h util.h map.h +grammar and lexer: parser.y lexer.l +man page: cmdman.1 format.5 +utility files: util.c util.h +m files: main.c map.c map.h diff --git a/usr.bin/bmake/tests/variables/modifier_M/legacy_test.sh b/usr.bin/bmake/tests/variables/modifier_M/legacy_test.sh new file mode 100644 index 0000000..6a3e68f --- /dev/null +++ b/usr.bin/bmake/tests/variables/modifier_M/legacy_test.sh @@ -0,0 +1,9 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Variable expansion with M modifier" + +eval_cmd $* diff --git a/usr.bin/bmake/tests/variables/modifier_t/Makefile b/usr.bin/bmake/tests/variables/modifier_t/Makefile new file mode 100644 index 0000000..d108da4 --- /dev/null +++ b/usr.bin/bmake/tests/variables/modifier_t/Makefile @@ -0,0 +1,19 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/variables/modifier_t + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.status.2 +FILES+= expected.status.3 +FILES+= expected.stderr.1 +FILES+= expected.stderr.2 +FILES+= expected.stderr.3 +FILES+= expected.stdout.1 +FILES+= expected.stdout.2 +FILES+= expected.stdout.3 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/variables/modifier_t/Makefile.test b/usr.bin/bmake/tests/variables/modifier_t/Makefile.test new file mode 100644 index 0000000..53844ee --- /dev/null +++ b/usr.bin/bmake/tests/variables/modifier_t/Makefile.test @@ -0,0 +1,15 @@ +# $FreeBSD$ +# +# Test the t modifier. +# +# below is missing ' +ASCII= !"\#$$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ + +test1: + @echo '${ASCII}' + +test2: + @echo '${ASCII:tl}' + +test3: + @echo '${ASCII:tu}' diff --git a/usr.bin/bmake/tests/variables/modifier_t/expected.status.1 b/usr.bin/bmake/tests/variables/modifier_t/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/variables/modifier_t/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/variables/modifier_t/expected.status.2 b/usr.bin/bmake/tests/variables/modifier_t/expected.status.2 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/variables/modifier_t/expected.status.2 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/variables/modifier_t/expected.status.3 b/usr.bin/bmake/tests/variables/modifier_t/expected.status.3 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/variables/modifier_t/expected.status.3 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/variables/modifier_t/expected.stderr.1 b/usr.bin/bmake/tests/variables/modifier_t/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/variables/modifier_t/expected.stderr.1 diff --git a/usr.bin/bmake/tests/variables/modifier_t/expected.stderr.2 b/usr.bin/bmake/tests/variables/modifier_t/expected.stderr.2 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/variables/modifier_t/expected.stderr.2 diff --git a/usr.bin/bmake/tests/variables/modifier_t/expected.stderr.3 b/usr.bin/bmake/tests/variables/modifier_t/expected.stderr.3 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/variables/modifier_t/expected.stderr.3 diff --git a/usr.bin/bmake/tests/variables/modifier_t/expected.stdout.1 b/usr.bin/bmake/tests/variables/modifier_t/expected.stdout.1 new file mode 100644 index 0000000..dff38fd --- /dev/null +++ b/usr.bin/bmake/tests/variables/modifier_t/expected.stdout.1 @@ -0,0 +1 @@ +!"#$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ diff --git a/usr.bin/bmake/tests/variables/modifier_t/expected.stdout.2 b/usr.bin/bmake/tests/variables/modifier_t/expected.stdout.2 new file mode 100644 index 0000000..71a0f60 --- /dev/null +++ b/usr.bin/bmake/tests/variables/modifier_t/expected.stdout.2 @@ -0,0 +1 @@ +!"#$%&()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ diff --git a/usr.bin/bmake/tests/variables/modifier_t/expected.stdout.3 b/usr.bin/bmake/tests/variables/modifier_t/expected.stdout.3 new file mode 100644 index 0000000..6434c7b --- /dev/null +++ b/usr.bin/bmake/tests/variables/modifier_t/expected.stdout.3 @@ -0,0 +1 @@ +!"#$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~ diff --git a/usr.bin/bmake/tests/variables/modifier_t/legacy_test.sh b/usr.bin/bmake/tests/variables/modifier_t/legacy_test.sh new file mode 100644 index 0000000..7f14571 --- /dev/null +++ b/usr.bin/bmake/tests/variables/modifier_t/legacy_test.sh @@ -0,0 +1,12 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Variable expansion with t modifiers" + +# Run +TEST_N=3 + +eval_cmd $* diff --git a/usr.bin/bmake/tests/variables/opt_V/Makefile b/usr.bin/bmake/tests/variables/opt_V/Makefile new file mode 100644 index 0000000..94a6aff --- /dev/null +++ b/usr.bin/bmake/tests/variables/opt_V/Makefile @@ -0,0 +1,16 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/variables/opt_V + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.status.2 +FILES+= expected.stderr.1 +FILES+= expected.stderr.2 +FILES+= expected.stdout.1 +FILES+= expected.stdout.2 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/variables/opt_V/Makefile.test b/usr.bin/bmake/tests/variables/opt_V/Makefile.test new file mode 100644 index 0000000..128e511 --- /dev/null +++ b/usr.bin/bmake/tests/variables/opt_V/Makefile.test @@ -0,0 +1,15 @@ +# $FreeBSD$ +# +# Test the -V option +# + +FOO= foo +FOOBAR= ${FOO}bar + +test1: + @echo "-V FOOBAR" + @${MAKE} -V FOOBAR + +test2: + @echo '-V "$${FOOBAR}"' + @${MAKE} -V '$${FOOBAR}' diff --git a/usr.bin/bmake/tests/variables/opt_V/expected.status.1 b/usr.bin/bmake/tests/variables/opt_V/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/variables/opt_V/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/variables/opt_V/expected.status.2 b/usr.bin/bmake/tests/variables/opt_V/expected.status.2 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/variables/opt_V/expected.status.2 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/variables/opt_V/expected.stderr.1 b/usr.bin/bmake/tests/variables/opt_V/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/variables/opt_V/expected.stderr.1 diff --git a/usr.bin/bmake/tests/variables/opt_V/expected.stderr.2 b/usr.bin/bmake/tests/variables/opt_V/expected.stderr.2 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/variables/opt_V/expected.stderr.2 diff --git a/usr.bin/bmake/tests/variables/opt_V/expected.stdout.1 b/usr.bin/bmake/tests/variables/opt_V/expected.stdout.1 new file mode 100644 index 0000000..050db40 --- /dev/null +++ b/usr.bin/bmake/tests/variables/opt_V/expected.stdout.1 @@ -0,0 +1,2 @@ +-V FOOBAR +foobar diff --git a/usr.bin/bmake/tests/variables/opt_V/expected.stdout.2 b/usr.bin/bmake/tests/variables/opt_V/expected.stdout.2 new file mode 100644 index 0000000..4da2aef --- /dev/null +++ b/usr.bin/bmake/tests/variables/opt_V/expected.stdout.2 @@ -0,0 +1,2 @@ +-V "${FOOBAR}" +foobar diff --git a/usr.bin/bmake/tests/variables/opt_V/legacy_test.sh b/usr.bin/bmake/tests/variables/opt_V/legacy_test.sh new file mode 100644 index 0000000..4b1122a --- /dev/null +++ b/usr.bin/bmake/tests/variables/opt_V/legacy_test.sh @@ -0,0 +1,12 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Variable expansion using command line '-V'" + +# Run +TEST_N=2 + +eval_cmd $* diff --git a/usr.bin/bmake/tests/variables/t0/Makefile b/usr.bin/bmake/tests/variables/t0/Makefile new file mode 100644 index 0000000..c4b98e6 --- /dev/null +++ b/usr.bin/bmake/tests/variables/t0/Makefile @@ -0,0 +1,13 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/usr.bin/bmake/variables/t0 + +TAP_TESTS_SH= legacy_test + +FILESDIR= ${TESTSDIR} +FILES= Makefile.test +FILES+= expected.status.1 +FILES+= expected.stderr.1 +FILES+= expected.stdout.1 + +.include <bsd.test.mk> diff --git a/usr.bin/bmake/tests/variables/t0/Makefile.test b/usr.bin/bmake/tests/variables/t0/Makefile.test new file mode 100644 index 0000000..1cc58ee --- /dev/null +++ b/usr.bin/bmake/tests/variables/t0/Makefile.test @@ -0,0 +1,23 @@ +# $FreeBSD$ +# +# A unsorted set of macro expansions. This should be sorted out. +# +A = 0 +AV = 1 +test1: + @echo $A + @echo ${AV} + @echo ${A} + @# The following are soo broken why no syntax error? + @echo $( + @echo $) + @echo ${ + @echo ${A + @echo ${A) + @echo ${A){ + @echo ${AV + @echo ${AV) + @echo ${AV){ + @echo ${AV{ + @echo ${A{ + @echo $} diff --git a/usr.bin/bmake/tests/variables/t0/expected.status.1 b/usr.bin/bmake/tests/variables/t0/expected.status.1 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/usr.bin/bmake/tests/variables/t0/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/usr.bin/bmake/tests/variables/t0/expected.stderr.1 b/usr.bin/bmake/tests/variables/t0/expected.stderr.1 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usr.bin/bmake/tests/variables/t0/expected.stderr.1 diff --git a/usr.bin/bmake/tests/variables/t0/expected.stdout.1 b/usr.bin/bmake/tests/variables/t0/expected.stdout.1 new file mode 100644 index 0000000..e2c70de --- /dev/null +++ b/usr.bin/bmake/tests/variables/t0/expected.stdout.1 @@ -0,0 +1,15 @@ +0 +1 +0 + + + + + + + + + + + + diff --git a/usr.bin/bmake/tests/variables/t0/legacy_test.sh b/usr.bin/bmake/tests/variables/t0/legacy_test.sh new file mode 100644 index 0000000..8c78e2d --- /dev/null +++ b/usr.bin/bmake/tests/variables/t0/legacy_test.sh @@ -0,0 +1,9 @@ +#! /bin/sh +# $FreeBSD$ + +. $(dirname $0)/../../common.sh + +# Description +DESC="Variable expansion." + +eval_cmd $* |