From 007ce9f807c99e14799c6579c8d06f422eccfcb2 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Sun, 13 Aug 2017 02:59:00 +0200 Subject: shell: tweak getopts tests, no code changes Signed-off-by: Denys Vlasenko --- shell/hush_test/hush-getopts/getopt_optarg.tests | 6 ++++++ shell/hush_test/hush-getopts/getopt_positional.tests | 6 ++++++ shell/hush_test/hush-getopts/getopt_silent.tests | 6 ++++++ shell/hush_test/hush-getopts/getopt_simple.tests | 6 ++++++ shell/hush_test/hush-getopts/getopt_test_libc_bug.tests | 10 ++++++++-- 5 files changed, 32 insertions(+), 2 deletions(-) (limited to 'shell/hush_test/hush-getopts') diff --git a/shell/hush_test/hush-getopts/getopt_optarg.tests b/shell/hush_test/hush-getopts/getopt_optarg.tests index 33682e868..881cc7884 100755 --- a/shell/hush_test/hush-getopts/getopt_optarg.tests +++ b/shell/hush_test/hush-getopts/getopt_optarg.tests @@ -1,3 +1,5 @@ +( + set -- -q -w e -r -t -y echo "*** no OPTIND, optstring:'w:et' args:$*" var=QWERTY @@ -16,3 +18,7 @@ while getopts "w:et" var; do OPTARG=ASDFGH done echo "exited: var:'$var' OPTIND:$OPTIND OPTARG:'$OPTARG'" + +) 2>&1 \ +| sed -e 's/ unrecognized option: / invalid option -- /' \ + -e 's/ illegal option -- / invalid option -- /' \ diff --git a/shell/hush_test/hush-getopts/getopt_positional.tests b/shell/hush_test/hush-getopts/getopt_positional.tests index ddf063363..20716bb0c 100755 --- a/shell/hush_test/hush-getopts/getopt_positional.tests +++ b/shell/hush_test/hush-getopts/getopt_positional.tests @@ -1,3 +1,5 @@ +( + set -- -q -w -e r -t -y echo "*** no OPTIND, optstring:'we' args:$*" var=QWERTY @@ -5,3 +7,7 @@ while getopts "we" var; do echo "var:'$var' OPTIND:$OPTIND" done echo "exited: var:'$var' OPTIND:$OPTIND" + +) 2>&1 \ +| sed -e 's/ unrecognized option: / invalid option -- /' \ + -e 's/ illegal option -- / invalid option -- /' \ diff --git a/shell/hush_test/hush-getopts/getopt_silent.tests b/shell/hush_test/hush-getopts/getopt_silent.tests index 097d7ba85..5f255db7f 100755 --- a/shell/hush_test/hush-getopts/getopt_silent.tests +++ b/shell/hush_test/hush-getopts/getopt_silent.tests @@ -11,6 +11,8 @@ # and OPTARG shall be set to the option character found. # """ +( + echo "*** optstring:':ac' args:-a -b -c" getopts ":ac" var -a -b -c; echo "1 rc:$? var:'$var' OPTIND:$OPTIND OPTARG:'$OPTARG'" getopts ":ac" var -a -b -c; echo "2 rc:$? var:'$var' OPTIND:$OPTIND OPTARG:'$OPTARG'" @@ -21,3 +23,7 @@ getopts ":ac" var -a -b -c; echo "4 rc:$? var:'$var' OPTIND:$OPTIND OPTARG:'$OPT # Nevertheless, let's verify that calling it yet another time doesn't do # anything weird: getopts ":ac" var -a -b -c; echo "5 rc:$? var:'$var' OPTIND:$OPTIND OPTARG:'$OPTARG'" + +) 2>&1 \ +| sed -e 's/ unrecognized option: / invalid option -- /' \ + -e 's/ illegal option -- / invalid option -- /' \ diff --git a/shell/hush_test/hush-getopts/getopt_simple.tests b/shell/hush_test/hush-getopts/getopt_simple.tests index 8615ae366..50718cc98 100755 --- a/shell/hush_test/hush-getopts/getopt_simple.tests +++ b/shell/hush_test/hush-getopts/getopt_simple.tests @@ -10,6 +10,8 @@ # We check that loop does not stop on unknown option (sets "?"), # stops on _first_ non-option argument. +( + echo "*** no OPTIND, optstring:'ab' args:-a -b c" var=QWERTY while getopts "ab" var -a -b c; do @@ -73,3 +75,7 @@ while getopts "ab" var -a -c -b d; do echo "var:'$var' OPTIND:$OPTIND" done echo "exited: rc:$? var:'$var' OPTIND:$OPTIND" + +) 2>&1 \ +| sed -e 's/ unrecognized option: / invalid option -- /' \ + -e 's/ illegal option -- / invalid option -- /' \ diff --git a/shell/hush_test/hush-getopts/getopt_test_libc_bug.tests b/shell/hush_test/hush-getopts/getopt_test_libc_bug.tests index 6c0781f20..ab7bc3b09 100755 --- a/shell/hush_test/hush-getopts/getopt_test_libc_bug.tests +++ b/shell/hush_test/hush-getopts/getopt_test_libc_bug.tests @@ -1,10 +1,12 @@ # This test can fail with libc with buggy getopt() implementation. # If getopt() wants to parse multi-option args (-abc), -# it needs to remember a position withit current arg. +# it needs to remember a position within current arg. # # If this position is kept as a POINTER, not an offset, # and if argv[] ADDRESSES (not contents!) change, it blows up. +( + echo "*** optstring:'ac' args:-a -b -c -d e" getopts "ac" var -a -b -c -d e; echo "1 rc:$? var:'$var' OPTIND:$OPTIND OPTARG:'$OPTARG'" getopts "ac" var -a -b -c -d e; echo "2 rc:$? var:'$var' OPTIND:$OPTIND OPTARG:'$OPTARG'" @@ -24,7 +26,7 @@ VAR111=NEWVAL; getopts "ac" var -a -b -c -d e; echo "3 rc:$? var:'$var' OPTIND:$ VAR222=NEWVAL; getopts "ac" var -a -b -c -d e; echo "4 rc:$? var:'$var' OPTIND:$OPTIND OPTARG:'$OPTARG'" VAR333=NEWVAL; getopts "ac" var -a -b -c -d e; echo "5 rc:$? var:'$var' OPTIND:$OPTIND OPTARG:'$OPTARG'" -# Sligntly different attempts to force reallocations +# Slightly different attempts to force reallocations echo echo "*** optstring:'ac' args:-a -b -c -d e" @@ -36,3 +38,7 @@ export VAR222; getopts "ac" var -a -b -c -d e; echo "4 rc:$? var:'$var' OPTIND:$ export VAR333; getopts "ac" var -a -b -c -d e; echo "5 rc:$? var:'$var' OPTIND:$OPTIND OPTARG:'$OPTARG'" # All copies of code above should generate identical output + +) 2>&1 \ +| sed -e 's/ unrecognized option: / invalid option -- /' \ + -e 's/ illegal option -- / invalid option -- /' \ -- cgit v1.2.3