aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/iconv.test15
-rw-r--r--toys/pending/iconv.c2
2 files changed, 16 insertions, 1 deletions
diff --git a/tests/iconv.test b/tests/iconv.test
new file mode 100644
index 00000000..8fe7c7a5
--- /dev/null
+++ b/tests/iconv.test
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+# Example characters from https://en.wikipedia.org/wiki/UTF-16:
+# $:U+0024 €:U+20ac 𐐷:U+10437[==U+d801,U+dc37]
+echo -n "$€𐐷" > chars
+
+#testing "name" "command" "result" "infile" "stdin"
+
+testing "" "iconv chars | xxd -p" "24e282acf09090b7\n" "" ""
+testing "-t UTF-16BE" "iconv -t utf16be chars | xxd -p" "002420acd801dc37\n" "" ""
+testing "-t UTF-16LE" "iconv -t utf16le chars | xxd -p" "2400ac2001d837dc\n" "" ""
+testing "-t UTF-32BE" "iconv -t utf32be chars | xxd -p" "00000024000020ac00010437\n" "" ""
+testing "-t UTF-32BE" "iconv -t utf32le chars | xxd -p" "24000000ac20000037040100\n" "" ""
diff --git a/toys/pending/iconv.c b/toys/pending/iconv.c
index 77b80382..75ff6397 100644
--- a/toys/pending/iconv.c
+++ b/toys/pending/iconv.c
@@ -43,7 +43,7 @@ static void do_iconv(int fd, char *name)
len = read(fd, in, 2048-inleft);
if (len < 0) {
- perror_msg("read '%s'");
+ perror_msg("read '%s'", name);
return;
}
inleft += len;