summaryrefslogtreecommitdiff
path: root/check-isutf8
blob: 83a4eed00f82e3bcc81856149b47cffc4091f9aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/bin/bash
# Bash needed for the character encodings below.
#
# Run checks for ./isutf8.
#
# Lars Wirzenius <liw@iki.fi>

failed=0

check() {
	printf "$2" | ./isutf8 -q
	ret=$?
	if [ $ret != $1 ]; then
		echo "Failure:"
		echo "  input: $2"
		echo "  expected: $1"
		echo "  got: $ret"
		failed=1
	fi
	printf "$2" > check-isutf8.tmp.$$ 
	./isutf8 -q check-isutf8.tmp.$$
	ret=$?
	rm -f check-isutf8.tmp.$$
	if [ $ret != $1 ]; then
		echo "Failure (from file):"
		echo "  input: $2"
		echo "  expected: $1"
		echo "  got: $ret"
		failed=1
	fi
}

check 0 ''
check 0 'a'
check 0 'ab'
check 0 '\xc2\xa9'

check 1 '\xc2'
check 1 '\xc2\x20'
check 1 '\x20\xc2'
check 1 '\300\200'
check 1 '\xed\xa0\x88\xed\xbd\x85' # UTF-16 surrogates
check 1 '\xef\xbf\xbe' # 0xFFFE
check 1 '\xef\xbf\xbf' # 0xFFFF

exit $failed