summaryrefslogtreecommitdiff
path: root/t/t0040-parse-options.sh
diff options
context:
space:
mode:
Diffstat (limited to 't/t0040-parse-options.sh')
-rwxr-xr-xt/t0040-parse-options.sh93
1 files changed, 66 insertions, 27 deletions
diff --git a/t/t0040-parse-options.sh b/t/t0040-parse-options.sh
index 2fe3522305..ca55ea8228 100755
--- a/t/t0040-parse-options.sh
+++ b/t/t0040-parse-options.sh
@@ -22,8 +22,10 @@ usage: test-tool parse-options <options>
-i, --[no-]integer <n>
get a integer
+ --[no-]i16 <n> get a 16 bit integer
-j <n> get a integer, too
- -m, --magnitude <n> get a magnitude
+ -u, --unsigned <n> get an unsigned integer
+ --u16 <n> get a 16 bit unsigned integer
--[no-]set23 set integer to 23
--mode1 set integer to 1 (cmdmode option)
--mode2 set integer to 2 (cmdmode option)
@@ -111,32 +113,36 @@ test_expect_success 'OPT_BOOL() no negation #2' 'check_unknown_i18n --no-no-fear
test_expect_success 'OPT_BOOL() positivation' 'check boolean: 0 -D --doubt'
-test_expect_success 'OPT_INT() negative' 'check integer: -2345 -i -2345'
+test_expect_success 'OPT_INTEGER() negative' 'check integer: -2345 -i -2345'
+test_expect_success 'OPT_INTEGER() kilo' 'check integer: 239616 -i 234k'
+test_expect_success 'OPT_INTEGER() negative kilo' 'check integer: -239616 -i -234k'
-test_expect_success 'OPT_MAGNITUDE() simple' '
- check magnitude: 2345678 -m 2345678
+test_expect_success 'OPT_UNSIGNED() simple' '
+ check unsigned: 2345678 -u 2345678
'
-test_expect_success 'OPT_MAGNITUDE() kilo' '
- check magnitude: 239616 -m 234k
+test_expect_success 'OPT_UNSIGNED() kilo' '
+ check unsigned: 239616 -u 234k
'
-test_expect_success 'OPT_MAGNITUDE() mega' '
- check magnitude: 104857600 -m 100m
+test_expect_success 'OPT_UNSIGNED() mega' '
+ check unsigned: 104857600 -u 100m
'
-test_expect_success 'OPT_MAGNITUDE() giga' '
- check magnitude: 1073741824 -m 1g
+test_expect_success 'OPT_UNSIGNED() giga' '
+ check unsigned: 1073741824 -u 1g
'
-test_expect_success 'OPT_MAGNITUDE() 3giga' '
- check magnitude: 3221225472 -m 3g
+test_expect_success 'OPT_UNSIGNED() 3giga' '
+ check unsigned: 3221225472 -u 3g
'
cat >expect <<\EOF
boolean: 2
integer: 1729
-magnitude: 16384
+i16: 0
+unsigned: 16384
+u16: 0
timestamp: 0
string: 123
abbrev: 7
@@ -147,7 +153,7 @@ file: prefix/my.file
EOF
test_expect_success 'short options' '
- test-tool parse-options -s123 -b -i 1729 -m 16k -b -vv -n -F my.file \
+ test-tool parse-options -s123 -b -i 1729 -u 16k -b -vv -n -F my.file \
>output 2>output.err &&
test_cmp expect output &&
test_must_be_empty output.err
@@ -156,7 +162,9 @@ test_expect_success 'short options' '
cat >expect <<\EOF
boolean: 2
integer: 1729
-magnitude: 16384
+i16: 9000
+unsigned: 16384
+u16: 32768
timestamp: 0
string: 321
abbrev: 10
@@ -167,8 +175,8 @@ file: prefix/fi.le
EOF
test_expect_success 'long options' '
- test-tool parse-options --boolean --integer 1729 --magnitude 16k \
- --boolean --string2=321 --verbose --verbose --no-dry-run \
+ test-tool parse-options --boolean --integer 1729 --i16 9000 --unsigned 16k \
+ --u16 32k --boolean --string2=321 --verbose --verbose --no-dry-run \
--abbrev=10 --file fi.le --obsolete \
>output 2>output.err &&
test_must_be_empty output.err &&
@@ -179,7 +187,9 @@ test_expect_success 'abbreviate to something longer than SHA1 length' '
cat >expect <<-EOF &&
boolean: 0
integer: 0
- magnitude: 0
+ i16: 0
+ unsigned: 0
+ u16: 0
timestamp: 0
string: (not set)
abbrev: 100
@@ -253,7 +263,9 @@ test_expect_success 'superfluous value provided: cmdmode' '
cat >expect <<\EOF
boolean: 1
integer: 13
-magnitude: 0
+i16: 0
+unsigned: 0
+u16: 0
timestamp: 0
string: 123
abbrev: 7
@@ -276,7 +288,9 @@ test_expect_success 'intermingled arguments' '
cat >expect <<\EOF
boolean: 0
integer: 2
-magnitude: 0
+i16: 0
+unsigned: 0
+u16: 0
timestamp: 0
string: (not set)
abbrev: 7
@@ -343,7 +357,9 @@ cat >expect <<\EOF
Callback: "four", 0
boolean: 5
integer: 4
-magnitude: 0
+i16: 0
+unsigned: 0
+u16: 0
timestamp: 0
string: (not set)
abbrev: 7
@@ -368,7 +384,9 @@ test_expect_success 'OPT_CALLBACK() and callback errors work' '
cat >expect <<\EOF
boolean: 1
integer: 23
-magnitude: 0
+i16: 0
+unsigned: 0
+u16: 0
timestamp: 0
string: (not set)
abbrev: 7
@@ -447,7 +465,9 @@ test_expect_success 'OPT_NUMBER_CALLBACK() works' '
cat >expect <<\EOF
boolean: 0
integer: 0
-magnitude: 0
+i16: 0
+unsigned: 0
+u16: 0
timestamp: 0
string: (not set)
abbrev: 7
@@ -771,16 +791,35 @@ test_expect_success 'subcommands are incompatible with KEEP_DASHDASH unless in c
grep ^BUG err
'
-test_expect_success 'negative magnitude' '
- test_must_fail test-tool parse-options --magnitude -1 >out 2>err &&
+test_expect_success 'negative unsigned' '
+ test_must_fail test-tool parse-options --unsigned -1 >out 2>err &&
grep "non-negative integer" err &&
test_must_be_empty out
'
-test_expect_success 'magnitude with units but no numbers' '
- test_must_fail test-tool parse-options --magnitude m >out 2>err &&
+test_expect_success 'unsigned with units but no numbers' '
+ test_must_fail test-tool parse-options --unsigned m >out 2>err &&
grep "non-negative integer" err &&
test_must_be_empty out
'
+test_expect_success 'i16 limits range' '
+ test-tool parse-options --i16 32767 >out &&
+ test_grep "i16: 32767" out &&
+ test_must_fail test-tool parse-options --i16 32768 2>err &&
+ test_grep "value 32768 for option .i16. not in range \[-32768,32767\]" err &&
+
+ test-tool parse-options --i16 -32768 >out &&
+ test_grep "i16: -32768" out &&
+ test_must_fail test-tool parse-options --i16 -32769 2>err &&
+ test_grep "value -32769 for option .i16. not in range \[-32768,32767\]" err
+'
+
+test_expect_success 'u16 limits range' '
+ test-tool parse-options --u16 65535 >out &&
+ test_grep "u16: 65535" out &&
+ test_must_fail test-tool parse-options --u16 65536 2>err &&
+ test_grep "value 65536 for option .u16. not in range \[0,65535\]" err
+'
+
test_done