diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/ltn12test.lua | 3 | ||||
-rw-r--r-- | test/mimetest.lua | 93 |
2 files changed, 39 insertions, 57 deletions
diff --git a/test/ltn12test.lua b/test/ltn12test.lua new file mode 100644 index 0000000..1c1f3f2 --- /dev/null +++ b/test/ltn12test.lua | |||
@@ -0,0 +1,3 @@ | |||
1 | sink = ltn12.sink.file(io.open("lixo", "w")) | ||
2 | source = ltn12.source.file(io.open("luasocket", "r")) | ||
3 | ltn12.pump(source, sink) | ||
diff --git a/test/mimetest.lua b/test/mimetest.lua index 5a461fa..1a7e427 100644 --- a/test/mimetest.lua +++ b/test/mimetest.lua | |||
@@ -1,4 +1,4 @@ | |||
1 | dofile("noglobals.lua") | 1 | dofile("testsupport.lua") |
2 | 2 | ||
3 | local qptest = "qptest.bin" | 3 | local qptest = "qptest.bin" |
4 | local eqptest = "qptest.bin2" | 4 | local eqptest = "qptest.bin2" |
@@ -31,26 +31,13 @@ local mao = [[ | |||
31 | assim, nem tudo o que dava exprimia grande confiança. | 31 | assim, nem tudo o que dava exprimia grande confiança. |
32 | ]] | 32 | ]] |
33 | 33 | ||
34 | local fail = function(s) | ||
35 | s = s or "failed" | ||
36 | assert(nil, s) | ||
37 | end | ||
38 | |||
39 | local readfile = function(name) | ||
40 | local f = io.open(name, "r") | ||
41 | if not f then return nil end | ||
42 | local s = f:read("*a") | ||
43 | f:close() | ||
44 | return s | ||
45 | end | ||
46 | |||
47 | local function transform(input, output, filter) | 34 | local function transform(input, output, filter) |
48 | local fi, err = io.open(input, "rb") | 35 | local fi, err = io.open(input, "rb") |
49 | if not fi then fail(err) end | 36 | if not fi then fail(err) end |
50 | local fo, err = io.open(output, "wb") | 37 | local fo, err = io.open(output, "wb") |
51 | if not fo then fail(err) end | 38 | if not fo then fail(err) end |
52 | while 1 do | 39 | while 1 do |
53 | local chunk = fi:read(math.random(0, 256)) | 40 | local chunk = fi:read(math.random(0, 1024)) |
54 | fo:write(filter(chunk)) | 41 | fo:write(filter(chunk)) |
55 | if not chunk then break end | 42 | if not chunk then break end |
56 | end | 43 | end |
@@ -58,17 +45,10 @@ local function transform(input, output, filter) | |||
58 | fo:close() | 45 | fo:close() |
59 | end | 46 | end |
60 | 47 | ||
61 | local function compare(input, output) | ||
62 | local original = readfile(input) | ||
63 | local recovered = readfile(output) | ||
64 | if original ~= recovered then fail("recovering failed") | ||
65 | else print("ok") end | ||
66 | end | ||
67 | |||
68 | local function encode_qptest(mode) | 48 | local function encode_qptest(mode) |
69 | local encode = socket.mime.encode("quoted-printable", mode) | 49 | local encode = mime.encode("quoted-printable", mode) |
70 | local split = socket.mime.wrap("quoted-printable") | 50 | local split = mime.wrap("quoted-printable") |
71 | local chain = socket.mime.chain(encode, split) | 51 | local chain = ltn12.filter.chain(encode, split) |
72 | transform(qptest, eqptest, chain) | 52 | transform(qptest, eqptest, chain) |
73 | end | 53 | end |
74 | 54 | ||
@@ -77,7 +57,7 @@ local function compare_qptest() | |||
77 | end | 57 | end |
78 | 58 | ||
79 | local function decode_qptest() | 59 | local function decode_qptest() |
80 | local decode = socket.mime.decode("quoted-printable") | 60 | local decode = mime.decode("quoted-printable") |
81 | transform(eqptest, dqptest, decode) | 61 | transform(eqptest, dqptest, decode) |
82 | end | 62 | end |
83 | 63 | ||
@@ -151,24 +131,24 @@ local function cleanup_qptest() | |||
151 | end | 131 | end |
152 | 132 | ||
153 | local function encode_b64test() | 133 | local function encode_b64test() |
154 | local e1 = socket.mime.encode("base64") | 134 | local e1 = mime.encode("base64") |
155 | local e2 = socket.mime.encode("base64") | 135 | local e2 = mime.encode("base64") |
156 | local e3 = socket.mime.encode("base64") | 136 | local e3 = mime.encode("base64") |
157 | local e4 = socket.mime.encode("base64") | 137 | local e4 = mime.encode("base64") |
158 | local sp4 = socket.mime.wrap() | 138 | local sp4 = mime.wrap() |
159 | local sp3 = socket.mime.wrap(59) | 139 | local sp3 = mime.wrap(59) |
160 | local sp2 = socket.mime.wrap("base64", 30) | 140 | local sp2 = mime.wrap("base64", 30) |
161 | local sp1 = socket.mime.wrap(27) | 141 | local sp1 = mime.wrap(27) |
162 | local chain = socket.mime.chain(e1, sp1, e2, sp2, e3, sp3, e4, sp4) | 142 | local chain = ltn12.filter.chain(e1, sp1, e2, sp2, e3, sp3, e4, sp4) |
163 | transform(b64test, eb64test, chain) | 143 | transform(b64test, eb64test, chain) |
164 | end | 144 | end |
165 | 145 | ||
166 | local function decode_b64test() | 146 | local function decode_b64test() |
167 | local d1 = socket.mime.decode("base64") | 147 | local d1 = mime.decode("base64") |
168 | local d2 = socket.mime.decode("base64") | 148 | local d2 = mime.decode("base64") |
169 | local d3 = socket.mime.decode("base64") | 149 | local d3 = mime.decode("base64") |
170 | local d4 = socket.mime.decode("base64") | 150 | local d4 = mime.decode("base64") |
171 | local chain = socket.mime.chain(d1, d2, d3, d4) | 151 | local chain = ltn12.filter.chain(d1, d2, d3, d4) |
172 | transform(eb64test, db64test, chain) | 152 | transform(eb64test, db64test, chain) |
173 | end | 153 | end |
174 | 154 | ||
@@ -182,11 +162,11 @@ local function compare_b64test() | |||
182 | end | 162 | end |
183 | 163 | ||
184 | local function identity_test() | 164 | local function identity_test() |
185 | local chain = socket.mime.chain( | 165 | local chain = ltn12.filter.chain( |
186 | socket.mime.encode("quoted-printable"), | 166 | mime.encode("quoted-printable"), |
187 | socket.mime.encode("base64"), | 167 | mime.encode("base64"), |
188 | socket.mime.decode("base64"), | 168 | mime.decode("base64"), |
189 | socket.mime.decode("quoted-printable") | 169 | mime.decode("quoted-printable") |
190 | ) | 170 | ) |
191 | transform(b64test, eb64test, chain) | 171 | transform(b64test, eb64test, chain) |
192 | compare(b64test, eb64test) | 172 | compare(b64test, eb64test) |
@@ -195,8 +175,8 @@ end | |||
195 | 175 | ||
196 | 176 | ||
197 | local function padcheck(original, encoded) | 177 | local function padcheck(original, encoded) |
198 | local e = (socket.mime.b64(original)) | 178 | local e = (mime.b64(original)) |
199 | local d = (socket.mime.unb64(encoded)) | 179 | local d = (mime.unb64(encoded)) |
200 | if e ~= encoded then fail("encoding failed") end | 180 | if e ~= encoded then fail("encoding failed") end |
201 | if d ~= original then fail("decoding failed") end | 181 | if d ~= original then fail("decoding failed") end |
202 | end | 182 | end |
@@ -206,8 +186,8 @@ local function chunkcheck(original, encoded) | |||
206 | for i = 0, len do | 186 | for i = 0, len do |
207 | local a = string.sub(original, 1, i) | 187 | local a = string.sub(original, 1, i) |
208 | local b = string.sub(original, i+1) | 188 | local b = string.sub(original, i+1) |
209 | local e, r = socket.mime.b64(a, b) | 189 | local e, r = mime.b64(a, b) |
210 | local f = (socket.mime.b64(r)) | 190 | local f = (mime.b64(r)) |
211 | if (e .. f ~= encoded) then fail(e .. f) end | 191 | if (e .. f ~= encoded) then fail(e .. f) end |
212 | end | 192 | end |
213 | end | 193 | end |
@@ -231,6 +211,13 @@ end | |||
231 | 211 | ||
232 | local t = socket.time() | 212 | local t = socket.time() |
233 | 213 | ||
214 | identity_test() | ||
215 | encode_b64test() | ||
216 | decode_b64test() | ||
217 | compare_b64test() | ||
218 | cleanup_b64test() | ||
219 | padding_b64test() | ||
220 | |||
234 | create_qptest() | 221 | create_qptest() |
235 | encode_qptest() | 222 | encode_qptest() |
236 | decode_qptest() | 223 | decode_qptest() |
@@ -240,12 +227,4 @@ decode_qptest() | |||
240 | compare_qptest() | 227 | compare_qptest() |
241 | cleanup_qptest() | 228 | cleanup_qptest() |
242 | 229 | ||
243 | encode_b64test() | ||
244 | decode_b64test() | ||
245 | compare_b64test() | ||
246 | cleanup_b64test() | ||
247 | padding_b64test() | ||
248 | |||
249 | identity_test() | ||
250 | |||
251 | print(string.format("done in %.2fs", socket.time() - t)) | 230 | print(string.format("done in %.2fs", socket.time() - t)) |