Module Name:    src
Committed By:   jmmv
Date:           Wed Oct 14 13:02:04 UTC 2009

Modified Files:
        src/tests/util/sh: t_expand.sh

Log Message:
Add test cases for "prefix $@ suffix" expansion.  From PR bin/33956.
This issue was fixed a while ago but the tests described in the report
were never written as proper test cases.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/tests/util/sh/t_expand.sh

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/util/sh/t_expand.sh
diff -u src/tests/util/sh/t_expand.sh:1.2 src/tests/util/sh/t_expand.sh:1.3
--- src/tests/util/sh/t_expand.sh:1.2	Wed Apr 30 13:11:00 2008
+++ src/tests/util/sh/t_expand.sh	Wed Oct 14 13:02:03 2009
@@ -1,6 +1,6 @@
-# $NetBSD: t_expand.sh,v 1.2 2008/04/30 13:11:00 martin Exp $
+# $NetBSD: t_expand.sh,v 1.3 2009/10/14 13:02:03 jmmv Exp $
 #
-# Copyright (c) 2007 The NetBSD Foundation, Inc.
+# Copyright (c) 2007, 2009 The NetBSD Foundation, Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -29,6 +29,19 @@
 # This file tests the functions in expand.c.
 #
 
+delim_argv() {
+	str=
+	while [ $# -gt 0 ]; do
+		if [ -z "${str}" ]; then
+			str=">$1<"
+		else
+			str="${str} >$1<"
+		fi
+                shift
+	done
+	echo ${str}
+}
+
 atf_test_case dollar_at
 dollar_at_head() {
 	atf_set "descr" "Somewhere between 2.0.2 and 3.0 the expansion" \
@@ -52,6 +65,23 @@
 	atf_check_equal '0' '$n_args'
 }
 
+atf_test_case dollar_at_with_text
+dollar_at_with_text_head() {
+	atf_set "descr" "Test \$@ expansion when it is surrounded by text" \
+	                "within the quotes.  PR bin/33956."
+}
+dollar_at_with_text_body() {
+	set --
+	atf_check_equal '' "$(delim_argv "$@")"
+	atf_check_equal '>foobar<' "$(delim_argv "f...@bar")"
+	atf_check_equal '>foo  bar<' "$(delim_argv "foo $@ bar")"
+
+	set -- a b c
+	atf_check_equal '>a< >b< >c<' "$(delim_argv "$@")"
+	atf_check_equal '>fooa< >b< >cbar<' "$(delim_argv "f...@bar")"
+	atf_check_equal '>foo a< >b< >c bar<' "$(delim_argv "foo $@ bar")"
+}
+
 atf_test_case strip
 strip_head() {
 	atf_set "descr" "Checks that the %% operator works and strips" \
@@ -79,6 +109,7 @@
 
 atf_init_test_cases() {
 	atf_add_test_case dollar_at
+	atf_add_test_case dollar_at_with_text
 	atf_add_test_case strip
 	atf_add_test_case arithmetic
 }

Reply via email to