diff options
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/luasocket/test/smtptest.lua')
-rw-r--r-- | Build/source/texk/web2c/luatexdir/luasocket/test/smtptest.lua | 259 |
1 files changed, 0 insertions, 259 deletions
diff --git a/Build/source/texk/web2c/luatexdir/luasocket/test/smtptest.lua b/Build/source/texk/web2c/luatexdir/luasocket/test/smtptest.lua deleted file mode 100644 index b5380ffc65a..00000000000 --- a/Build/source/texk/web2c/luatexdir/luasocket/test/smtptest.lua +++ /dev/null @@ -1,259 +0,0 @@ -local sent = {} - -local from = "diego@localhost" -local server = "localhost" -local rcpt = "luasocket@localhost" - -local files = { - "/var/spool/mail/luasocket", - "/var/spool/mail/luasock1", - "/var/spool/mail/luasock2", - "/var/spool/mail/luasock3", -} - -local t = socket.time() -local err - -dofile("mbox.lua") -local parse = mbox.parse -dofile("testsupport.lua") - -local total = function() - local t = 0 - for i = 1, #sent do - t = t + sent[i].count - end - return t -end - -local similar = function(s1, s2) - return - string.lower(string.gsub(s1, "%s", "")) == - string.lower(string.gsub(s2, "%s", "")) -end - -local fail = function(s) - s = s or "failed!" - print(s) - os.exit() -end - -local readfile = function(name) - local f = io.open(name, "r") - if not f then - fail("unable to open file!") - return nil - end - local s = f:read("*a") - f:close() - return s -end - -local empty = function() - for i,v in ipairs(files) do - local f = io.open(v, "w") - if not f then - fail("unable to open file!") - end - f:close() - end -end - -local get = function() - local s = "" - for i,v in ipairs(files) do - s = s .. "\n" .. readfile(v) - end - return s -end - -local check_headers = function(sent, got) - sent = sent or {} - got = got or {} - for i,v in pairs(sent) do - if not similar(v, got[i]) then fail("header " .. v .. "failed!") end - end -end - -local check_body = function(sent, got) - sent = sent or "" - got = got or "" - if not similar(sent, got) then fail("bodies differ!") end -end - -local check = function(sent, m) - io.write("checking ", m.headers.title, ": ") - for i = 1, #sent do - local s = sent[i] - if s.title == m.headers.title and s.count > 0 then - check_headers(s.headers, m.headers) - check_body(s.body, m.body) - s.count = s.count - 1 - print("ok") - return - end - end - fail("not found") -end - -local insert = function(sent, message) - if type(message.rcpt) == "table" then - message.count = #message.rcpt - else message.count = 1 end - message.headers = message.headers or {} - message.headers.title = message.title - table.insert(sent, message) -end - -local mark = function() - local time = socket.time() - return { time = time } -end - -local wait = function(sentinel, n) - local to - io.write("waiting for ", n, " messages: ") - while 1 do - local mbox = parse(get()) - if n == #mbox then break end - if socket.time() - sentinel.time > 50 then - to = 1 - break - end - socket.sleep(1) - io.write(".") - io.stdout:flush() - end - if to then fail("timeout") - else print("ok") end -end - -local stuffed_body = [[ -This message body needs to be -stuffed because it has a dot -. -by itself on a line. -Otherwise the mailer would -think that the dot -. -is the end of the message -and the remaining text would cause -a lot of trouble. -]] - -insert(sent, { - from = from, - rcpt = { - "luasocket@localhost", - "luasock3@dell-diego.cs.princeton.edu", - "luasock1@dell-diego.cs.princeton.edu" - }, - body = "multiple rcpt body", - title = "multiple rcpt", -}) - -insert(sent, { - from = from, - rcpt = { - "luasock2@localhost", - "luasock3", - "luasock1" - }, - headers = { - header1 = "header 1", - header2 = "header 2", - header3 = "header 3", - header4 = "header 4", - header5 = "header 5", - header6 = "header 6", - }, - body = stuffed_body, - title = "complex message", -}) - -insert(sent, { - from = from, - rcpt = rcpt, - server = server, - body = "simple message body", - title = "simple message" -}) - -insert(sent, { - from = from, - rcpt = rcpt, - server = server, - body = stuffed_body, - title = "stuffed message body" -}) - -insert(sent, { - from = from, - rcpt = rcpt, - headers = { - header1 = "header 1", - header2 = "header 2", - header3 = "header 3", - header4 = "header 4", - header5 = "header 5", - header6 = "header 6", - }, - title = "multiple headers" -}) - -insert(sent, { - from = from, - rcpt = rcpt, - title = "minimum message" -}) - -io.write("testing host not found: ") -local c, e = socket.connect("wrong.host", 25) -local ret, err = socket.smtp.mail{ - from = from, - rcpt = rcpt, - server = "wrong.host" -} -if ret or e ~= err then fail("wrong error message") -else print("ok") end - -io.write("testing invalid from: ") -local ret, err = socket.smtp.mail{ - from = ' " " (( _ * ', - rcpt = rcpt, -} -if ret or not err then fail("wrong error message") -else print(err) end - -io.write("testing no rcpt: ") -local ret, err = socket.smtp.mail{ - from = from, -} -if ret or not err then fail("wrong error message") -else print(err) end - -io.write("clearing mailbox: ") -empty() -print("ok") - -io.write("sending messages: ") -for i = 1, #sent do - ret, err = socket.smtp.mail(sent[i]) - if not ret then fail(err) end - io.write("+") - io.stdout:flush() -end -print("ok") - -wait(mark(), total()) - -io.write("parsing mailbox: ") -local mbox = parse(get()) -print(#mbox .. " messages found!") - -for i = 1, #mbox do - check(sent, mbox[i]) -end - -print("passed all tests") -print(string.format("done in %.2fs", socket.time() - t)) |