summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRuediger Meier2016-03-05 18:51:59 +0100
committerRuediger Meier2016-03-07 23:34:24 +0100
commit7e604f3c804a5718b1c591eb32043d140f052803 (patch)
tree4774fa8814528798eb9971a715bff7315af82597
parenttests: cramfs, fix root group (diff)
downloadkernel-qcow2-util-linux-7e604f3c804a5718b1c591eb32043d140f052803.tar.gz
kernel-qcow2-util-linux-7e604f3c804a5718b1c591eb32043d140f052803.tar.xz
kernel-qcow2-util-linux-7e604f3c804a5718b1c591eb32043d140f052803.zip
tests: don't skip case "output undefined"
Treat missing expected files as empty and let the test fail if there is non-empty output. Expected output may be missing in these cases: 1. forgot to commit the file after changing/adding a (sub)test 2. a bug in a test where we do tricks with TS_EXPECTED 3. and most notable if ts_die() is called before a subtest is initialized, e.g. in ts_scsi_debug_init() I always wondered why we don't treat this as FAILED. Now we do so, ts_finalize and ts_gen_diff looks much cleaner now. The change discovers that tests with subtest were ignoring the "non-sub" expected files which had to be fixed. BTW we removed any zero sized files. Moreover now we respect diff's return value. In past all test succeeded when diff was not able to write to diffdir, e.g. when running tests as normal user after they run as root. Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
-rw-r--r--tests/expected/build-sys/config0
-rw-r--r--tests/expected/colcrt/functional0
-rw-r--r--tests/expected/colcrt/regressions0
-rw-r--r--tests/expected/eject/umount0
-rw-r--r--tests/expected/libmount/context-utab3
-rw-r--r--tests/expected/libmount/context-utab-py3
-rw-r--r--tests/expected/libmount/tabdiff0
-rw-r--r--tests/expected/logger/errors0
-rw-r--r--tests/expected/logger/formats0
-rw-r--r--tests/expected/logger/options0
-rw-r--r--tests/expected/losetup/losetup0
-rw-r--r--tests/expected/minix/mkfs0
-rw-r--r--tests/expected/misc/getopt219
-rw-r--r--tests/expected/misc/getopt30
-rw-r--r--tests/expected/mount/fstab-btrfs1
-rw-r--r--tests/expected/mount/umount-alltargets1
-rw-r--r--tests/expected/script/options0
-rw-r--r--tests/expected/sfdisk/dos0
-rw-r--r--tests/expected/sfdisk/gpt0
-rw-r--r--tests/expected/sfdisk/resize0
-rw-r--r--tests/functions.sh48
-rwxr-xr-xtests/ts/libmount/context-utab47
-rwxr-xr-xtests/ts/libmount/context-utab-py58
-rwxr-xr-xtests/ts/losetup/losetup1
-rwxr-xr-xtests/ts/misc/getopt219
25 files changed, 72 insertions, 128 deletions
diff --git a/tests/expected/build-sys/config b/tests/expected/build-sys/config
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/expected/build-sys/config
+++ /dev/null
diff --git a/tests/expected/colcrt/functional b/tests/expected/colcrt/functional
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/expected/colcrt/functional
+++ /dev/null
diff --git a/tests/expected/colcrt/regressions b/tests/expected/colcrt/regressions
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/expected/colcrt/regressions
+++ /dev/null
diff --git a/tests/expected/eject/umount b/tests/expected/eject/umount
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/expected/eject/umount
+++ /dev/null
diff --git a/tests/expected/libmount/context-utab b/tests/expected/libmount/context-utab
index cde2e3fbb..2149373b8 100644
--- a/tests/expected/libmount/context-utab
+++ b/tests/expected/libmount/context-utab
@@ -1,9 +1,8 @@
-Init device
Create partitions
Create filesystem
Do tests...
Create filesystem [btrfs]
All mount options (btrfs subvolume + utab) ---
-rw,relatime,ssd,uhelper=foo
+rw,relatime,ssd,space_cache,uhelper=foo
---
...done.
diff --git a/tests/expected/libmount/context-utab-py b/tests/expected/libmount/context-utab-py
index cde2e3fbb..2149373b8 100644
--- a/tests/expected/libmount/context-utab-py
+++ b/tests/expected/libmount/context-utab-py
@@ -1,9 +1,8 @@
-Init device
Create partitions
Create filesystem
Do tests...
Create filesystem [btrfs]
All mount options (btrfs subvolume + utab) ---
-rw,relatime,ssd,uhelper=foo
+rw,relatime,ssd,space_cache,uhelper=foo
---
...done.
diff --git a/tests/expected/libmount/tabdiff b/tests/expected/libmount/tabdiff
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/expected/libmount/tabdiff
+++ /dev/null
diff --git a/tests/expected/logger/errors b/tests/expected/logger/errors
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/expected/logger/errors
+++ /dev/null
diff --git a/tests/expected/logger/formats b/tests/expected/logger/formats
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/expected/logger/formats
+++ /dev/null
diff --git a/tests/expected/logger/options b/tests/expected/logger/options
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/expected/logger/options
+++ /dev/null
diff --git a/tests/expected/losetup/losetup b/tests/expected/losetup/losetup
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/expected/losetup/losetup
+++ /dev/null
diff --git a/tests/expected/minix/mkfs b/tests/expected/minix/mkfs
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/expected/minix/mkfs
+++ /dev/null
diff --git a/tests/expected/misc/getopt2 b/tests/expected/misc/getopt2
deleted file mode 100644
index 59ec59bbf..000000000
--- a/tests/expected/misc/getopt2
+++ /dev/null
@@ -1,19 +0,0 @@
-exit value: 0
-exit value: 0
-exit value: 0
-exit value: 1
-exit value: 0
-exit value: 0
-exit value: 0
-exit value: 0
-exit value: 1
-exit value: 0
-exit value: 0
-exit value: 0
-exit value: 0
-exit value: 0
-exit value: 1
-exit value: 1
-exit value: 0
-exit value: 0
-exit value: 1
diff --git a/tests/expected/misc/getopt3 b/tests/expected/misc/getopt3
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/expected/misc/getopt3
+++ /dev/null
diff --git a/tests/expected/mount/fstab-btrfs b/tests/expected/mount/fstab-btrfs
deleted file mode 100644
index 35821117c..000000000
--- a/tests/expected/mount/fstab-btrfs
+++ /dev/null
@@ -1 +0,0 @@
-Success
diff --git a/tests/expected/mount/umount-alltargets b/tests/expected/mount/umount-alltargets
index 53514d1c0..a0e467920 100644
--- a/tests/expected/mount/umount-alltargets
+++ b/tests/expected/mount/umount-alltargets
@@ -1,4 +1,3 @@
-Init device
Create partitions
Create filesystem A
Create filesystem B
diff --git a/tests/expected/script/options b/tests/expected/script/options
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/expected/script/options
+++ /dev/null
diff --git a/tests/expected/sfdisk/dos b/tests/expected/sfdisk/dos
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/expected/sfdisk/dos
+++ /dev/null
diff --git a/tests/expected/sfdisk/gpt b/tests/expected/sfdisk/gpt
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/expected/sfdisk/gpt
+++ /dev/null
diff --git a/tests/expected/sfdisk/resize b/tests/expected/sfdisk/resize
deleted file mode 100644
index e69de29bb..000000000
--- a/tests/expected/sfdisk/resize
+++ /dev/null
diff --git a/tests/functions.sh b/tests/functions.sh
index 9e5d24325..5d54efd96 100644
--- a/tests/functions.sh
+++ b/tests/functions.sh
@@ -378,22 +378,21 @@ function ts_valgrind {
function ts_gen_diff {
local res=0
- if [ -s "$TS_OUTPUT" ]; then
+ [ -f "$TS_OUTPUT" ] || return 1
+ [ -f "$TS_EXPECTED" ] || TS_EXPECTED=/dev/null
- # remove libtool lt- prefixes
- sed --in-place 's/^lt\-\(.*\: \)/\1/g' $TS_OUTPUT
+ # remove libtool lt- prefixes
+ sed --in-place 's/^lt\-\(.*\: \)/\1/g' $TS_OUTPUT
- [ -d "$TS_DIFFDIR" ] || mkdir -p "$TS_DIFFDIR"
- diff -u $TS_EXPECTED $TS_OUTPUT > $TS_DIFF
+ [ -d "$TS_DIFFDIR" ] || mkdir -p "$TS_DIFFDIR"
+ diff -u $TS_EXPECTED $TS_OUTPUT > $TS_DIFF
- if [ -s $TS_DIFF ]; then
- res=1
- else
- rm -f $TS_DIFF;
- fi
- else
+ if [ $? -ne 0 ] || [ -s $TS_DIFF ]; then
res=1
+ else
+ rm -f $TS_DIFF;
fi
+
return $res
}
@@ -409,16 +408,12 @@ function tt_gen_mem_report {
function ts_finalize_subtest {
local res=0
- if [ -s "$TS_EXPECTED" ]; then
- ts_gen_diff
- if [ $? -eq 1 ]; then
- ts_failed_subtest "$1"
- res=1
- else
- ts_ok_subtest "$(tt_gen_mem_report "$1")"
- fi
+ ts_gen_diff
+ if [ $? -eq 1 ]; then
+ ts_failed_subtest "$1"
+ res=1
else
- ts_skip_subtest "output undefined"
+ ts_ok_subtest "$(tt_gen_mem_report "$1")"
fi
[ $res -ne 0 ] && TS_NSUBFAILED=$(( $TS_NSUBFAILED + 1 ))
@@ -433,22 +428,15 @@ function ts_finalize {
ts_cleanup_on_exit
if [ $TS_NSUBTESTS -ne 0 ]; then
- if [ $TS_NSUBFAILED -ne 0 ]; then
+ if ! ts_gen_diff || [ $TS_NSUBFAILED -ne 0 ]; then
ts_failed "$TS_NSUBFAILED from $TS_NSUBTESTS sub-tests"
else
ts_ok "all $TS_NSUBTESTS sub-tests PASSED"
fi
fi
- if [ -s $TS_EXPECTED ]; then
- ts_gen_diff
- if [ $? -eq 1 ]; then
- ts_failed "$1"
- fi
- ts_ok "$1"
- fi
-
- ts_skip "output undefined"
+ ts_gen_diff || ts_failed "$1"
+ ts_ok "$1"
}
function ts_die {
diff --git a/tests/ts/libmount/context-utab b/tests/ts/libmount/context-utab
index 8b93fe990..38bc1701c 100755
--- a/tests/ts/libmount/context-utab
+++ b/tests/ts/libmount/context-utab
@@ -15,6 +15,7 @@ ts_check_test_command "$TS_CMD_UUIDGEN"
ts_skip_nonroot
ts_check_prog "mkfs.ext4"
+ts_check_prog "mkfs.btrfs"
TESTPROG="$TS_HELPER_LIBMOUNT_CONTEXT"
LABEL=libmount-test
@@ -93,35 +94,33 @@ grep -q $DEVICE $LIBMOUNT_UTAB && \
ts_finalize_subtest
-if [ -x "/sbin/mkfs.btrfs" ]; then
- $TS_CMD_WIPEFS -a $DEVICE &> /dev/null
- ts_log "Create filesystem [btrfs]"
- mkfs.btrfs -L "$LABEL" $DEVICE &> /dev/null
- udevadm settle
+$TS_CMD_WIPEFS -a $DEVICE &> /dev/null
+ts_log "Create filesystem [btrfs]"
+mkfs.btrfs -L "$LABEL" $DEVICE &> /dev/null
+udevadm settle
- mount -t btrfs $DEVICE $MOUNTPOINT &> /dev/null
- btrfs subvolume create $MOUNTPOINT/sub &> /dev/null
- umount $MOUNTPOINT &> /dev/null
+mount -t btrfs $DEVICE $MOUNTPOINT &> /dev/null
+btrfs subvolume create $MOUNTPOINT/sub &> /dev/null
+umount $MOUNTPOINT &> /dev/null
- udevadm settle
+udevadm settle
- ts_init_subtest "mount-uhelper-subvol"
- mkdir -p $MOUNTPOINT &> /dev/null
- ts_valgrind $TESTPROG --mount -o uhelper=foo,rw,subvol=sub $DEVICE $MOUNTPOINT >> $TS_OUTPUT 2>&1
- grep -q $DEVICE $LIBMOUNT_UTAB || \
- echo "cannot find $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
- ts_finalize_subtest
+ts_init_subtest "mount-uhelper-subvol"
+mkdir -p $MOUNTPOINT &> /dev/null
+ts_valgrind $TESTPROG --mount -o uhelper=foo,rw,subvol=sub $DEVICE $MOUNTPOINT >> $TS_OUTPUT 2>&1
+grep -q $DEVICE $LIBMOUNT_UTAB || \
+ echo "cannot find $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
+ts_finalize_subtest
- ts_log "All mount options (btrfs subvolume + utab) ---"
- $TS_CMD_FINDMNT --mtab $MOUNTPOINT -o OPTIONS -n >> $TS_OUTPUT 2>&1
- ts_log "---"
+ts_log "All mount options (btrfs subvolume + utab) ---"
+$TS_CMD_FINDMNT --mtab $MOUNTPOINT -o OPTIONS -n >> $TS_OUTPUT 2>&1
+ts_log "---"
- ts_init_subtest "umount-subvol"
- ts_valgrind $TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
- grep -q $DEVICE $LIBMOUNT_UTAB && \
- echo "umount (mountpoint) failed: found $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
- ts_finalize_subtest
-fi
+ts_init_subtest "umount-subvol"
+ts_valgrind $TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
+grep -q $DEVICE $LIBMOUNT_UTAB && \
+ echo "umount (mountpoint) failed: found $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
+ts_finalize_subtest
ts_log "...done."
rmmod scsi_debug
diff --git a/tests/ts/libmount/context-utab-py b/tests/ts/libmount/context-utab-py
index 5337d10b2..fdde63a7a 100755
--- a/tests/ts/libmount/context-utab-py
+++ b/tests/ts/libmount/context-utab-py
@@ -14,6 +14,7 @@ ts_check_test_command "$TS_CMD_UUIDGEN"
ts_skip_nonroot
ts_check_prog "mkfs.ext4"
+ts_check_prog "mkfs.btrfs"
ts_init_py libmount
@@ -93,35 +94,34 @@ grep -q $DEVICE $LIBMOUNT_UTAB && \
echo "umount (mountpoint) failed: found $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
ts_finalize_subtest
-if [ -x "/sbin/mkfs.btrfs" ]; then
- $TS_CMD_WIPEFS -a $DEVICE &> /dev/null
- ts_log "Create filesystem [btrfs]"
- mkfs.btrfs -L "$LABEL" $DEVICE &> /dev/null
- udevadm settle
-
- mount -t btrfs $DEVICE $MOUNTPOINT &> /dev/null
- btrfs subvolume create $MOUNTPOINT/sub &> /dev/null
- umount $MOUNTPOINT &> /dev/null
-
- udevadm settle
-
- ts_init_subtest "mount-uhelper-subvol"
- mkdir -p $MOUNTPOINT &> /dev/null
- $PYTHON $TESTPROG --mount -o uhelper=foo,rw,subvol=sub $DEVICE $MOUNTPOINT >> $TS_OUTPUT 2>&1
- grep -q $DEVICE $LIBMOUNT_UTAB || \
- echo "cannot find $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
- ts_finalize_subtest
-
- ts_log "All mount options (btrfs subvolume + utab) ---"
- $TS_CMD_FINDMNT --mtab $MOUNTPOINT -o OPTIONS -n >> $TS_OUTPUT 2>&1
- ts_log "---"
-
- ts_init_subtest "umount-subvol"
- $PYTHON $TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
- grep -q $DEVICE $LIBMOUNT_UTAB && \
- echo "umount (mountpoint) failed: found $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
- ts_finalize_subtest
-fi
+
+$TS_CMD_WIPEFS -a $DEVICE &> /dev/null
+ts_log "Create filesystem [btrfs]"
+mkfs.btrfs -L "$LABEL" $DEVICE &> /dev/null
+udevadm settle
+
+mount -t btrfs $DEVICE $MOUNTPOINT &> /dev/null
+btrfs subvolume create $MOUNTPOINT/sub &> /dev/null
+umount $MOUNTPOINT &> /dev/null
+
+udevadm settle
+
+ts_init_subtest "mount-uhelper-subvol"
+mkdir -p $MOUNTPOINT &> /dev/null
+$PYTHON $TESTPROG --mount -o uhelper=foo,rw,subvol=sub $DEVICE $MOUNTPOINT >> $TS_OUTPUT 2>&1
+grep -q $DEVICE $LIBMOUNT_UTAB || \
+ echo "cannot find $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
+ts_finalize_subtest
+
+ts_log "All mount options (btrfs subvolume + utab) ---"
+$TS_CMD_FINDMNT --mtab $MOUNTPOINT -o OPTIONS -n >> $TS_OUTPUT 2>&1
+ts_log "---"
+
+ts_init_subtest "umount-subvol"
+$PYTHON $TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
+grep -q $DEVICE $LIBMOUNT_UTAB && \
+ echo "umount (mountpoint) failed: found $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
+ts_finalize_subtest
ts_log "...done."
rmmod scsi_debug
diff --git a/tests/ts/losetup/losetup b/tests/ts/losetup/losetup
index a50d2eb4c..1fec0dd06 100755
--- a/tests/ts/losetup/losetup
+++ b/tests/ts/losetup/losetup
@@ -30,7 +30,6 @@ ts_check_test_command "$TS_CMD_LSBLK"
$TS_CMD_LOSETUP --version >/dev/null 2>$TS_OUTPUT || ts_failed
$TS_CMD_LOSETUP --unknownopt >>$TS_OUTPUT 2>/dev/null && ts_failed
test -s $TS_OUTPUT && ts_failed
-rm -f $TS_OUTPUT
ts_skip_nonroot
ts_check_losetup
diff --git a/tests/ts/misc/getopt2 b/tests/ts/misc/getopt2
index 677131f43..779d15b78 100755
--- a/tests/ts/misc/getopt2
+++ b/tests/ts/misc/getopt2
@@ -27,120 +27,101 @@ $TS_CMD_GETOPT -a -o abcde -l abcde -- -a -ab -abc -ac >> $TS_OUTPUT 2>&1
echo "exit value: $?" >> $TS_OUTPUT
ts_finalize_subtest
-echo "exit value: $?" >> $TS_OUTPUT
ts_init_subtest alternative_option_long
$TS_CMD_GETOPT --alternative -o a -l one,two:,three::,four:: -- -a -one -two=MANDATORY -three=OPTIONAL >> $TS_OUTPUT 2>&1
echo "exit value: $?" >> $TS_OUTPUT
ts_finalize_subtest
-echo "exit value: $?" >> $TS_OUTPUT
ts_init_subtest alternative_option_short
$TS_CMD_GETOPT -a -o a -l one,two:,three::,four:: -- -a -one -two=MANDATORY -three=OPTIONAL >> $TS_OUTPUT 2>&1
echo "exit value: $?" >> $TS_OUTPUT
ts_finalize_subtest
-echo "exit value: $?" >> $TS_OUTPUT
ts_init_subtest invalid_getopt_option
$TS_CMD_GETOPT -b >> $TS_OUTPUT 2>&1
echo "exit value: $?" >> $TS_OUTPUT
sed -i '1,1s/.*\///' $TS_OUTPUT
ts_finalize_subtest
-echo "exit value: $?" >> $TS_OUTPUT
ts_init_subtest invocation_model_one
$TS_CMD_GETOPT abc:d::e::f::g: ARG0 -b ARG1 -d -eOPTIONAL1 -f NOT_OPTIONAL ARG2 -a -c -ISREQUIRED ARG3 -g "BECOMES THREE ARGUMENTS" >> $TS_OUTPUT 2>&1
echo "exit value: $?" >> $TS_OUTPUT
ts_finalize_subtest
-echo "exit value: $?" >> $TS_OUTPUT
ts_init_subtest invocation_model_three_as_one
$TS_CMD_GETOPT -o abc:d::e::f::g: -- ARG0 -b ARG1 -d -eOPTIONAL1 -f NOT_OPTIONAL ARG2 -a -c -ISREQUIRED ARG3 -g "BECOMES THREE ARGUMENTS" >> $TS_OUTPUT 2>&1
echo "exit value: $?" >> $TS_OUTPUT
ts_finalize_subtest
-echo "exit value: $?" >> $TS_OUTPUT
ts_init_subtest invocation_model_two_as_one
$TS_CMD_GETOPT -- abc:d::e::f::g: ARG0 -b ARG1 -d -eOPTIONAL1 -f NOT_OPTIONAL ARG2 -a -c -ISREQUIRED ARG3 -g "BECOMES THREE ARGUMENTS" >> $TS_OUTPUT 2>&1
echo "exit value: $?" >> $TS_OUTPUT
ts_finalize_subtest
-echo "exit value: $?" >> $TS_OUTPUT
ts_init_subtest invocation_without_parameters
$TS_CMD_GETOPT >> $TS_OUTPUT 2>&1
echo "exit value: $?" >> $TS_OUTPUT
ts_finalize_subtest
-echo "exit value: $?" >> $TS_OUTPUT
ts_init_subtest long_option_ambiguous_1
$TS_CMD_GETOPT -o a -l long1,long2 -- --long >> $TS_OUTPUT 2>&1
echo "exit value: $?" >> $TS_OUTPUT
sed -i -e '1,1s/.*\///' -e "1s/ambiguous$/ambiguous; possibilities: '--long1' '--long2'/" $TS_OUTPUT
ts_finalize_subtest
-echo "exit value: $?" >> $TS_OUTPUT
ts_init_subtest longopts
$TS_CMD_GETOPT -o a -l long1,secondlong:,thirdlong::,abbriviation: -- --long1 EXTRA1 --thirdlong=ARGUMENT --secondlong=ARG --abbr ABBRARG -a >> $TS_OUTPUT 2>&1
echo "exit value: $?" >> $TS_OUTPUT
ts_finalize_subtest
-echo "exit value: $?" >> $TS_OUTPUT
ts_init_subtest name_option_long
$TS_CMD_GETOPT -n THIS_PROGRAM -o a -l long -- -b --long --whatever -a >> $TS_OUTPUT 2>&1
echo "exit value: $?" >> $TS_OUTPUT
ts_finalize_subtest
-echo "exit value: $?" >> $TS_OUTPUT
ts_init_subtest name_option_short
$TS_CMD_GETOPT --name THIS_PROGRAM -o a -l long -- -b --long --whatever -a >> $TS_OUTPUT 2>&1
echo "exit value: $?" >> $TS_OUTPUT
ts_finalize_subtest
-echo "exit value: $?" >> $TS_OUTPUT
ts_init_subtest quiet_option_long
$TS_CMD_GETOPT --quiet -o a,b: -l long1,long2 -- -c --unknown --long -b >> $TS_OUTPUT 2>&1
echo "exit value: $?" >> $TS_OUTPUT
ts_finalize_subtest
-echo "exit value: $?" >> $TS_OUTPUT
ts_init_subtest quiet_option_short
$TS_CMD_GETOPT -q -o a,b: -l long1,long2 -- -c --unknown --long -b >> $TS_OUTPUT 2>&1
echo "exit value: $?" >> $TS_OUTPUT
ts_finalize_subtest
-echo "exit value: $?" >> $TS_OUTPUT
ts_init_subtest quiet_output_option_long
$TS_CMD_GETOPT --quiet-output -o a,b: -l long1,long2 -- -c --unknown --long -b >> $TS_OUTPUT 2>&1
echo "exit value: $?" >> $TS_OUTPUT
sed -i -e '1,4s/.*\///' -e "3s/ambiguous$/ambiguous; possibilities: '--long1' '--long2'/" $TS_OUTPUT
ts_finalize_subtest
-echo "exit value: $?" >> $TS_OUTPUT
ts_init_subtest quiet_output_option_short
$TS_CMD_GETOPT -Q -o a,b: -l long1,long2 -- -c --unknown --long -b >> $TS_OUTPUT 2>&1
echo "exit value: $?" >> $TS_OUTPUT
sed -i -e '1,4s/.*\///' -e "3s/ambiguous$/ambiguous; possibilities: '--long1' '--long2'/" $TS_OUTPUT
ts_finalize_subtest
-echo "exit value: $?" >> $TS_OUTPUT
ts_init_subtest same_long_short_options
$TS_CMD_GETOPT -o a -l a -- -a --a >> $TS_OUTPUT 2>&1
echo "exit value: $?" >> $TS_OUTPUT
ts_finalize_subtest
-echo "exit value: $?" >> $TS_OUTPUT
ts_init_subtest test_for_enhanced_getopt
$TS_CMD_GETOPT -T >> $TS_OUTPUT 2>&1
echo "exit value: $?" >> $TS_OUTPUT
ts_finalize_subtest
-echo "exit value: $?" >> $TS_OUTPUT
ts_init_subtest unknown_options
$TS_CMD_GETOPT -o a -l long -- -b --long --whatever -a >> $TS_OUTPUT 2>&1
echo "exit value: $?" >> $TS_OUTPUT
sed -i '1,2s/.*\///' $TS_OUTPUT
ts_finalize_subtest
-echo "exit value: $?" >> $TS_OUTPUT
ts_init_subtest unquoted_option_bash
$TS_CMD_GETOPT -s bash -u -o a: -l long1: -- -a '$?!* ' --long \"\\\' 'More
than