mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-27 03:41:41 +01:00
a09115ae1d
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.
50 lines
2.4 KiB
Bash
Executable file
50 lines
2.4 KiB
Bash
Executable file
#!/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
|