svn commit: r291903 - head/bin/sh/tests/parameters

Jilles Tjoelker jilles at FreeBSD.org
Sun Dec 6 14:09:33 UTC 2015


Author: jilles
Date: Sun Dec  6 14:09:31 2015
New Revision: 291903
URL: https://svnweb.freebsd.org/changeset/base/291903

Log:
  sh: Add limited test for ${#@} and ${#*}.
  
  POSIX leaves the result of expanding ${#@} and ${#*} unspecified, but ensure
  it is numeric.

Added:
  head/bin/sh/tests/parameters/positional9.0   (contents, props changed)
Modified:
  head/bin/sh/tests/parameters/Makefile

Modified: head/bin/sh/tests/parameters/Makefile
==============================================================================
--- head/bin/sh/tests/parameters/Makefile	Sun Dec  6 14:07:57 2015	(r291902)
+++ head/bin/sh/tests/parameters/Makefile	Sun Dec  6 14:09:31 2015	(r291903)
@@ -21,6 +21,7 @@ FILES+=		positional5.0
 FILES+=		positional6.0
 FILES+=		positional7.0
 FILES+=		positional8.0
+FILES+=		positional9.0
 FILES+=		pwd1.0
 FILES+=		pwd2.0
 

Added: head/bin/sh/tests/parameters/positional9.0
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/bin/sh/tests/parameters/positional9.0	Sun Dec  6 14:09:31 2015	(r291903)
@@ -0,0 +1,18 @@
+# $FreeBSD$
+# Although POSIX leaves the result of expanding ${#@} and ${#*} unspecified,
+# make sure it is at least numeric.
+
+set -- bb cc ddd
+set -f
+lengths=${#*}${#@}"${#*}${#@}"$(echo ${#*}${#@}"${#*}${#@}")
+IFS=
+lengths=$lengths${#*}${#@}"${#*}${#@}"$(echo ${#*}${#@}"${#*}${#@}")
+case $lengths in
+*[!0-9]*)
+	printf 'bad: %s\n' "$lengths"
+	exit 3 ;;
+????????????????*) ;;
+*)
+	printf 'too short: %s\n' "$lengths"
+	exit 3 ;;
+esac


More information about the svn-src-all mailing list