diff options
author | Steven G. Johnson <stevenj@alum.mit.edu> | 2018-04-27 08:23:10 -0400 |
---|---|---|
committer | Steven G. Johnson <stevenj@alum.mit.edu> | 2018-04-27 08:46:44 -0400 |
commit | 53d7968055d8c89769633afa3990f59abe53122f (patch) | |
tree | 19b02326e68b31405354a3b0c16f677cd6105150 | |
parent | acc204f1f15e879331c95096b6d4fac8bc2c906f (diff) | |
download | libutf8proc-53d7968055d8c89769633afa3990f59abe53122f.tar.gz libutf8proc-53d7968055d8c89769633afa3990f59abe53122f.tar.bz2 |
added test for #128
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | test/misc.c | 25 |
3 files changed, 31 insertions, 1 deletions
@@ -21,6 +21,7 @@ test/normtest test/graphemetest test/printproperty test/charwidth +test/misc test/valid test/iterate test/case @@ -138,11 +138,15 @@ test/case: test/case.c test/tests.o utf8proc.o utf8proc.h test/tests.h test/custom: test/custom.c test/tests.o utf8proc.o utf8proc.h test/tests.h $(CC) $(UCFLAGS) test/custom.c test/tests.o utf8proc.o -o $@ -check: test/normtest data/NormalizationTest.txt test/graphemetest data/GraphemeBreakTest.txt test/printproperty test/case test/custom test/charwidth test/valid test/iterate bench/bench.c bench/util.c bench/util.h utf8proc.o +test/misc: test/misc.c test/tests.o utf8proc.o utf8proc.h test/tests.h + $(CC) $(UCFLAGS) test/misc.c test/tests.o utf8proc.o -o $@ + +check: test/normtest data/NormalizationTest.txt test/graphemetest data/GraphemeBreakTest.txt test/printproperty test/case test/custom test/charwidth test/misc test/valid test/iterate bench/bench.c bench/util.c bench/util.h utf8proc.o $(MAKE) -C bench test/normtest data/NormalizationTest.txt test/graphemetest data/GraphemeBreakTest.txt test/charwidth + test/misc test/valid test/iterate test/case diff --git a/test/misc.c b/test/misc.c new file mode 100644 index 0000000..707c1a0 --- /dev/null +++ b/test/misc.c @@ -0,0 +1,25 @@ +/* Miscellaneous tests, e.g. regression tests */ + +#include "tests.h" + +void issue128(void) /* #128 */ +{ + utf8proc_uint8_t input[] = {0x72, 0xcc, 0x87, 0xcc, 0xa3, 0x00}; /* "r\u0307\u0323" */ + utf8proc_uint8_t nfc[] = {0xe1, 0xb9, 0x9b, 0xcc, 0x87, 0x00}; /* "\u1E5B\u0307" */ + utf8proc_uint8_t nfd[] = {0x72, 0xcc, 0xa3, 0xcc, 0x87, 0x00}; /* "r\u0323\u0307" */ + utf8proc_uint8_t *nfc_out, *nfd_out; + nfc_out = utf8proc_NFC(input); + printf("NFC \"%s\" -> \"%s\" vs. \"%s\"\n", (char*)input, (char*)nfc_out, (char*)nfc); + check(strlen((char*) nfc_out) == 5, "incorrect nfc length"); + check(!memcmp(nfc, nfc_out, 6), "incorrect nfc data"); + nfd_out = utf8proc_NFD(input); + printf("NFD \"%s\" -> \"%s\" vs. \"%s\"\n", (char*)input, (char*)nfd_out, (char*)nfd); + check(strlen((char*) nfd_out) == 5, "incorrect nfd length"); + check(!memcmp(nfd, nfd_out, 6), "incorrect nfd data"); + free(nfd_out); free(nfc_out); +} + +int main(void) +{ + issue128(); +} |