mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 10:58:10 +01:00
test/hex-escaping: new test for hex escaping routines
These are more like unit tests, to (try to) make sure the library functionality is working before building more complicated things on top of it.
This commit is contained in:
parent
4216e830e9
commit
a09115ae1d
2 changed files with 51 additions and 0 deletions
50
test/hex-escaping
Executable file
50
test/hex-escaping
Executable file
|
@ -0,0 +1,50 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
test_description="hex encoding and decoding"
|
||||||
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
test_begin_subtest "round trip"
|
||||||
|
find $TEST_DIRECTORY/corpus -type f -print | sort | xargs cat > EXPECTED
|
||||||
|
$TEST_DIRECTORY/hex-xcode --direction=encode < EXPECTED | $TEST_DIRECTORY/hex-xcode --direction=decode > OUTPUT
|
||||||
|
test_expect_equal_file OUTPUT EXPECTED
|
||||||
|
|
||||||
|
test_begin_subtest "punctuation"
|
||||||
|
tag1='comic_swear=$&^%$^%\\//-+$^%$'
|
||||||
|
tag_enc1=$($TEST_DIRECTORY/hex-xcode --direction=encode "$tag1")
|
||||||
|
test_expect_equal "$tag_enc1" "comic_swear=%24%26%5e%25%24%5e%25%5c%5c%2f%2f-+%24%5e%25%24"
|
||||||
|
|
||||||
|
test_begin_subtest "round trip newlines"
|
||||||
|
printf 'this\n tag\t has\n spaces\n' > EXPECTED.$test_count
|
||||||
|
$TEST_DIRECTORY/hex-xcode --direction=encode < EXPECTED.$test_count |\
|
||||||
|
$TEST_DIRECTORY/hex-xcode --direction=decode > OUTPUT.$test_count
|
||||||
|
test_expect_equal_file EXPECTED.$test_count OUTPUT.$test_count
|
||||||
|
|
||||||
|
test_begin_subtest "round trip 8bit chars"
|
||||||
|
echo '%c3%91%c3%a5%c3%b0%c3%a3%c3%a5%c3%a9-%c3%8f%c3%8a' > EXPECTED.$test_count
|
||||||
|
$TEST_DIRECTORY/hex-xcode --direction=decode < EXPECTED.$test_count |\
|
||||||
|
$TEST_DIRECTORY/hex-xcode --direction=encode > OUTPUT.$test_count
|
||||||
|
test_expect_equal_file EXPECTED.$test_count OUTPUT.$test_count
|
||||||
|
|
||||||
|
test_begin_subtest "round trip (in-place)"
|
||||||
|
find $TEST_DIRECTORY/corpus -type f -print | sort | xargs cat > EXPECTED
|
||||||
|
$TEST_DIRECTORY/hex-xcode --in-place --direction=encode < EXPECTED |\
|
||||||
|
$TEST_DIRECTORY/hex-xcode --in-place --direction=decode > OUTPUT
|
||||||
|
test_expect_equal_file OUTPUT EXPECTED
|
||||||
|
|
||||||
|
test_begin_subtest "punctuation (in-place)"
|
||||||
|
tag1='comic_swear=$&^%$^%\\//-+$^%$'
|
||||||
|
tag_enc1=$($TEST_DIRECTORY/hex-xcode --in-place --direction=encode "$tag1")
|
||||||
|
test_expect_equal "$tag_enc1" "comic_swear=%24%26%5e%25%24%5e%25%5c%5c%2f%2f-+%24%5e%25%24"
|
||||||
|
|
||||||
|
test_begin_subtest "round trip newlines (in-place)"
|
||||||
|
printf 'this\n tag\t has\n spaces\n' > EXPECTED.$test_count
|
||||||
|
$TEST_DIRECTORY/hex-xcode --in-place --direction=encode < EXPECTED.$test_count |\
|
||||||
|
$TEST_DIRECTORY/hex-xcode --in-place --direction=decode > OUTPUT.$test_count
|
||||||
|
test_expect_equal_file EXPECTED.$test_count OUTPUT.$test_count
|
||||||
|
|
||||||
|
test_begin_subtest "round trip 8bit chars (in-place)"
|
||||||
|
echo '%c3%91%c3%a5%c3%b0%c3%a3%c3%a5%c3%a9-%c3%8f%c3%8a' > EXPECTED.$test_count
|
||||||
|
$TEST_DIRECTORY/hex-xcode --in-place --direction=decode < EXPECTED.$test_count |\
|
||||||
|
$TEST_DIRECTORY/hex-xcode --in-place --direction=encode > OUTPUT.$test_count
|
||||||
|
test_expect_equal_file EXPECTED.$test_count OUTPUT.$test_count
|
||||||
|
|
||||||
|
test_done
|
|
@ -60,6 +60,7 @@ TESTS="
|
||||||
emacs-hello
|
emacs-hello
|
||||||
emacs-show
|
emacs-show
|
||||||
missing-headers
|
missing-headers
|
||||||
|
hex-escaping
|
||||||
parse-time-string
|
parse-time-string
|
||||||
search-date
|
search-date
|
||||||
"
|
"
|
||||||
|
|
Loading…
Reference in a new issue