1function readfile(n)
2    local f = io.open(n, "rb")
3    local s = f:read("*a")
4    f:close()
5    return s
6end
7
8lf = readfile("t1lf.txt")
9os.remove("t1crlf.txt")
10os.execute("lua t1.lua < t1lf.txt > t1crlf.txt")
11crlf = readfile("t1crlf.txt")
12assert(crlf == string.gsub(lf, "\010", "\013\010"), "broken")
13
14gt = readfile("t2gt.qp")
15os.remove("t2.qp")
16os.execute("lua t2.lua < t2.txt > t2.qp")
17t2 = readfile("t2.qp")
18assert(gt == t2, "broken")
19
20os.remove("t1crlf.txt")
21os.execute("lua t3.lua < t1lf.txt > t1crlf.txt")
22crlf = readfile("t1crlf.txt")
23assert(crlf == string.gsub(lf, "\010", "\013\010"), "broken")
24
25t = readfile("test.lua")
26os.execute("lua t4.lua < test.lua > t")
27t2 = readfile("t")
28assert(t == t2, "broken")
29
30os.remove("output.b64")
31gt = readfile("gt.b64")
32os.execute("lua t5.lua")
33t5 = readfile("output.b64")
34assert(gt == t5, "failed")
35
36print("1 2 5 6 10 passed")
37print("2 3 4 5 6 10 passed")
38print("2 5 6 7 8 10 passed")
39print("5 9 passed")
40print("5 6 10 11 passed")
41
42os.remove("t")
43os.remove("t2.qp")
44os.remove("t1crlf.txt")
45os.remove("t11.b64")
46os.remove("output.b64")
47