diff options
| author | 2018-03-20 22:56:16 -0400 | |
|---|---|---|
| committer | 2018-03-20 22:56:16 -0400 | |
| commit | d929c8cbc09732337fb4805accbf3564e9cca0bb (patch) | |
| tree | 27f71b63f26cdf0ef957ce2d7390f5991561b839 /test | |
Import Upstream version 18upstream/18
Diffstat (limited to 'test')
| -rw-r--r-- | test/common | 45 | ||||
| -rwxr-xr-x | test/test_mangle | 8 | ||||
| -rwxr-xr-x | test/test_option_twiddling | 55 | ||||
| -rwxr-xr-x | test/test_valid_number_of_base | 15 |
4 files changed, 123 insertions, 0 deletions
diff --git a/test/common b/test/common new file mode 100644 index 0000000..8773077 --- /dev/null +++ b/test/common @@ -0,0 +1,45 @@ +#!/bin/bash + +fail=0 +testcount=0 + +EXPECT_success() { + (( ++testcount )) + if ! "$@"; then + (( ++fail )) + printf 'expectation failed: did not succeed: %s\n' "$*" >&2 + fi +} + +EXPECT_failure() { + (( ++testcount )) + if "$@"; then + (( ++fail )) + printf 'expectation failed: did not fail: %s\n' "$*" >&2 + fi +} + +TEST_exit() { + local result + + trap -- EXIT + + (( fail == 0 )) && result=PASS || result=FAIL + + printf '%s: %s\n' "$result" "$1" + + exit $(( fail != 0 )) +} + +ASSERT_streq() { + if [[ $1 != "$2" ]]; then + printf 'assertion failed [line %d]: [[ %s = "%s" ]]\n' "$BASH_LINENO" "$1" "$2" >&2 + fi +} + +TEST_start() { + trap "TEST_exit '$1'" EXIT +} + +TEST_start "${0##*/test_}" + diff --git a/test/test_mangle b/test/test_mangle new file mode 100755 index 0000000..d9b61b1 --- /dev/null +++ b/test/test_mangle @@ -0,0 +1,8 @@ +#!/bin/bash + +. "${1:-./common}" +. ./test/common + +ASSERT_streq ' deleted' "$(unmangle "$(mangle ' deleted')")" +ASSERT_streq '\040deleted' "$(mangle "$(unmangle '\040deleted')")" +ASSERT_streq 'foo\011\040\011bar' "$(mangle $'foo\t \tbar')" diff --git a/test/test_option_twiddling b/test/test_option_twiddling new file mode 100755 index 0000000..214a63c --- /dev/null +++ b/test/test_option_twiddling @@ -0,0 +1,55 @@ +#!/bin/bash + +. "${1:-./common}" +. ./test/common + +optstring=rw,relatime,fd=29,pgrp=1,timeout=300,minproto=5,maxproto=5,direct +optstring_remove_option optstring fd +optstring_remove_option optstring pgrp=400 +ASSERT_streq "$optstring" 'rw,relatime,pgrp=1,timeout=300,minproto=5,maxproto=5,direct' + +optstring_append_option optstring pgrp=400 +optstring_append_option optstring pgrp=400 +optstring_append_option optstring pgrp=400 +ASSERT_streq "$optstring" 'rw,relatime,pgrp=1,timeout=300,minproto=5,maxproto=5,direct,pgrp=400' + +optstring_prepend_option optstring pgrp=600 +optstring_prepend_option optstring pgrp=600 +optstring_prepend_option optstring pgrp=600 +ASSERT_streq "$optstring" 'pgrp=600,rw,relatime,pgrp=1,timeout=300,minproto=5,maxproto=5,direct,pgrp=400' + +EXPECT_success optstring_has_option optstring pgrp=400 +EXPECT_success optstring_has_option optstring pgrp=1 +EXPECT_success optstring_has_option optstring pgrp +EXPECT_failure optstring_has_option optstring maxproto=6 +EXPECT_success optstring_has_option optstring maxproto + +EXPECT_failure optstring_get_option optstring proto +EXPECT_success optstring_get_option optstring maxproto +ASSERT_streq "$maxproto" "5" +EXPECT_success optstring_get_option optstring timeout +ASSERT_streq "$timeout" "300" + +optstring_remove_option optstring pgrp +ASSERT_streq "$optstring" 'rw,relatime,timeout=300,minproto=5,maxproto=5,direct' + +optstring_remove_option optstring minproto,relatime +ASSERT_streq "$optstring" 'rw,timeout=300,maxproto=5,direct' + +optstring_remove_option optstring ro,direct +ASSERT_streq "$optstring" 'rw,timeout=300,maxproto=5' + +optstring=,,,,,,defaults,,,,rw,,,,,,minproto=5,,, +optstring_normalize optstring +ASSERT_streq "$optstring" 'defaults,rw,minproto=5' + + +optstring= +optstring_normalize optstring +ASSERT_streq "$optstring" 'defaults' + + +EXPECT_success optstring_match_option key key=val +EXPECT_success optstring_match_option key=val key=val +EXPECT_failure optstring_match_option key=val key=val2 +EXPECT_failure optstring_match_option 'key=*' key=val2 diff --git a/test/test_valid_number_of_base b/test/test_valid_number_of_base new file mode 100755 index 0000000..5afdc59 --- /dev/null +++ b/test/test_valid_number_of_base @@ -0,0 +1,15 @@ +#!/bin/bash + +. "${1:-./common}" +. ./test/common + +EXPECT_success valid_number_of_base 16 feedfacebeef +EXPECT_failure valid_number_of_base 16 feedsfacebeef +EXPECT_success valid_number_of_base 16 1234567890 + +EXPECT_success valid_number_of_base 10 1234567890 +EXPECT_failure valid_number_of_base 10 1234.567890 +EXPECT_failure valid_number_of_base 10 1234567890abcdef + +EXPECT_success valid_number_of_base 18 1234567890abcdefgh +EXPECT_failure valid_number_of_base 18 1234567890abcdefghi |
