diff --git a/bin/sh/tests/Makefile b/bin/sh/tests/Makefile index d93e19aea7e..59835cb7352 100644 --- a/bin/sh/tests/Makefile +++ b/bin/sh/tests/Makefile @@ -6,6 +6,7 @@ TESTS_SUBDIRS+= builtins TESTS_SUBDIRS+= errors TESTS_SUBDIRS+= execution TESTS_SUBDIRS+= expansion +TESTS_SUBDIRS+= invocation TESTS_SUBDIRS+= parameters TESTS_SUBDIRS+= parser TESTS_SUBDIRS+= set-e diff --git a/bin/sh/tests/invocation/Makefile b/bin/sh/tests/invocation/Makefile new file mode 100644 index 00000000000..cd234bb7d42 --- /dev/null +++ b/bin/sh/tests/invocation/Makefile @@ -0,0 +1,15 @@ +# $FreeBSD$ + +PACKAGE= tests + +TESTSDIR= ${TESTSBASE}/bin/sh/${.CURDIR:T} + +.PATH: ${.CURDIR:H} +ATF_TESTS_SH= functional_test + +${PACKAGE}FILES+= sh-ac1.0 +${PACKAGE}FILES+= sh-c1.0 +${PACKAGE}FILES+= sh-ca1.0 +${PACKAGE}FILES+= sh-fca1.0 + +.include diff --git a/bin/sh/tests/invocation/sh-ac1.0 b/bin/sh/tests/invocation/sh-ac1.0 new file mode 100644 index 00000000000..0e0818b8a2c --- /dev/null +++ b/bin/sh/tests/invocation/sh-ac1.0 @@ -0,0 +1,7 @@ +# $FreeBSD$ +# Test that attached options before c are processed + +case `${SH} -ac 'echo $-:$0' moo` in +*a*:moo) true ;; +*) false ;; +esac diff --git a/bin/sh/tests/invocation/sh-c1.0 b/bin/sh/tests/invocation/sh-c1.0 new file mode 100644 index 00000000000..6bda19837b9 --- /dev/null +++ b/bin/sh/tests/invocation/sh-c1.0 @@ -0,0 +1,4 @@ +# $FreeBSD$ +# Test that -c executes command_string with the given name and arg + +${SH} -c 'echo $0 $@' moo foo | grep -qx -- "moo foo" diff --git a/bin/sh/tests/invocation/sh-ca1.0 b/bin/sh/tests/invocation/sh-ca1.0 new file mode 100644 index 00000000000..188b6453db2 --- /dev/null +++ b/bin/sh/tests/invocation/sh-ca1.0 @@ -0,0 +1,7 @@ +# $FreeBSD$ +# Test that attached options after c are processed + +case `${SH} -ca 'echo $-:$0' moo` in +*a*:moo) true ;; +*) false ;; +esac diff --git a/bin/sh/tests/invocation/sh-fca1.0 b/bin/sh/tests/invocation/sh-fca1.0 new file mode 100644 index 00000000000..c010a5ebacd --- /dev/null +++ b/bin/sh/tests/invocation/sh-fca1.0 @@ -0,0 +1,7 @@ +# $FreeBSD$ +# Test that attached options before and after c are processed + +case `${SH} -fca 'echo $-:$-:$0:$@' foo -bar` in +*f*:*a*:foo:-bar) true ;; +*) false ;; +esac diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist index 30b04def22f..632e4d70e90 100644 --- a/etc/mtree/BSD.tests.dist +++ b/etc/mtree/BSD.tests.dist @@ -39,6 +39,8 @@ .. expansion .. + invocation + .. parameters .. parser