author | Matthew Wild <mwild1@gmail.com> |
Wed, 27 Sep 2017 15:49:41 +0100 | |
changeset 8289 | 39966cbc29f4 |
parent 7964 | ff556d010225 |
permissions | -rw-r--r-- |
6597
fa6eb6fb4a80
tests: Add UTF-8 validity tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
1 |
package.cpath = "../?.so" |
fa6eb6fb4a80
tests: Add UTF-8 validity tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
2 |
package.path = "../?.lua"; |
fa6eb6fb4a80
tests: Add UTF-8 validity tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
3 |
|
fa6eb6fb4a80
tests: Add UTF-8 validity tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
4 |
function valid() |
fa6eb6fb4a80
tests: Add UTF-8 validity tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
5 |
local encodings = require "util.encodings"; |
fa6eb6fb4a80
tests: Add UTF-8 validity tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
6 |
local utf8 = assert(encodings.utf8, "no encodings.utf8 module"); |
7964
ff556d010225
tests: Trim trailing whitespace
Kim Alvefur <zash@zash.se>
parents:
7518
diff
changeset
|
7 |
|
6597
fa6eb6fb4a80
tests: Add UTF-8 validity tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
8 |
for line in io.lines("utf8_sequences.txt") do |
fa6eb6fb4a80
tests: Add UTF-8 validity tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
9 |
local data = line:match(":%s*([^#]+)"):gsub("%s+", ""):gsub("..", function (c) return string.char(tonumber(c, 16)); end) |
fa6eb6fb4a80
tests: Add UTF-8 validity tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
10 |
local expect = line:match("(%S+):"); |
fa6eb6fb4a80
tests: Add UTF-8 validity tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
11 |
if expect ~= "pass" and expect ~= "fail" then |
fa6eb6fb4a80
tests: Add UTF-8 validity tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
12 |
error("unknown expectation: "..line:match("^[^:]+")); |
fa6eb6fb4a80
tests: Add UTF-8 validity tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
13 |
end |
fa6eb6fb4a80
tests: Add UTF-8 validity tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
14 |
local valid = utf8.valid(data); |
fa6eb6fb4a80
tests: Add UTF-8 validity tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
15 |
assert_equal(valid, utf8.valid(data.." ")); |
fa6eb6fb4a80
tests: Add UTF-8 validity tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
16 |
assert_equal(valid, expect == "pass", line); |
fa6eb6fb4a80
tests: Add UTF-8 validity tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
17 |
end |
fa6eb6fb4a80
tests: Add UTF-8 validity tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
18 |
end |