summaryrefslogtreecommitdiffstats
path: root/tools/regression
diff options
context:
space:
mode:
authorharti <harti@FreeBSD.org>2005-05-20 15:25:04 +0000
committerharti <harti@FreeBSD.org>2005-05-20 15:25:04 +0000
commite533045bcd0864cf0ff78791d82adf7264aa4594 (patch)
tree9e1937b9b08ad08fd153d31b876cd2d1ae9f2d63 /tools/regression
parentb618326a09ec1f8bd6f32814ceeb8a6dad46bed5 (diff)
downloadFreeBSD-src-e533045bcd0864cf0ff78791d82adf7264aa4594.zip
FreeBSD-src-e533045bcd0864cf0ff78791d82adf7264aa4594.tar.gz
Add a test to check whether in compat mode make detectes builtins
on the command line and really executes the shell instead of directly executing the command.
Diffstat (limited to 'tools/regression')
-rw-r--r--tools/regression/usr.bin/make/shell/builtin/Makefile30
-rw-r--r--tools/regression/usr.bin/make/shell/builtin/expected.status1
-rw-r--r--tools/regression/usr.bin/make/shell/builtin/expected.stderr1
-rw-r--r--tools/regression/usr.bin/make/shell/builtin/expected.stdout0
-rw-r--r--tools/regression/usr.bin/make/shell/builtin/sh.sh6
-rw-r--r--tools/regression/usr.bin/make/shell/builtin/test.t13
6 files changed, 51 insertions, 0 deletions
diff --git a/tools/regression/usr.bin/make/shell/builtin/Makefile b/tools/regression/usr.bin/make/shell/builtin/Makefile
new file mode 100644
index 0000000..6fe42ab
--- /dev/null
+++ b/tools/regression/usr.bin/make/shell/builtin/Makefile
@@ -0,0 +1,30 @@
+#
+# 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$
+
+all: sh
+ @MAKEFLAGS= ${MAKE} -B no-builtin
+ @MAKEFLAGS= ${MAKE} -B builtin
+
+sh: sh.sh
+ @cp ${.CURDIR}/sh.sh ${.OBJDIR}/sh
+ @chmod +x ${.OBJDIR}/sh
+
+.ifmake builtin || no-builtin
+
+.SHELL: path="${.OBJDIR}/sh"
+
+.PHONY: builtin no-builtin
+
+builtin:
+ @exec ls -d .
+
+no-builtin:
+ @ls -d .
+
+.endif
diff --git a/tools/regression/usr.bin/make/shell/builtin/expected.status b/tools/regression/usr.bin/make/shell/builtin/expected.status
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/tools/regression/usr.bin/make/shell/builtin/expected.status
@@ -0,0 +1 @@
+2
diff --git a/tools/regression/usr.bin/make/shell/builtin/expected.stderr b/tools/regression/usr.bin/make/shell/builtin/expected.stderr
new file mode 100644
index 0000000..628ea8f
--- /dev/null
+++ b/tools/regression/usr.bin/make/shell/builtin/expected.stderr
@@ -0,0 +1 @@
+make: don't know how to make sh.sh. Stop
diff --git a/tools/regression/usr.bin/make/shell/builtin/expected.stdout b/tools/regression/usr.bin/make/shell/builtin/expected.stdout
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tools/regression/usr.bin/make/shell/builtin/expected.stdout
diff --git a/tools/regression/usr.bin/make/shell/builtin/sh.sh b/tools/regression/usr.bin/make/shell/builtin/sh.sh
new file mode 100644
index 0000000..3a507b87
--- /dev/null
+++ b/tools/regression/usr.bin/make/shell/builtin/sh.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+# $FreeBSD$
+echo "$@"
+if ! test -t 0 ; then
+ cat
+fi
diff --git a/tools/regression/usr.bin/make/shell/builtin/test.t b/tools/regression/usr.bin/make/shell/builtin/test.t
new file mode 100644
index 0000000..a20fb2a
--- /dev/null
+++ b/tools/regression/usr.bin/make/shell/builtin/test.t
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# $FreeBSD$
+
+cd `dirname $0`
+. ../../common.sh
+
+desc_test()
+{
+ echo "Check that a command line with a builtin is passed to the shell."
+}
+
+eval_cmd $1
OpenPOWER on IntegriCloud