diff options
Diffstat (limited to 'test')
-rwxr-xr-x | test/download.lua | 50 | ||||
-rwxr-xr-x | test/httptest.lua | 24 |
2 files changed, 58 insertions, 16 deletions
diff --git a/test/download.lua b/test/download.lua new file mode 100755 index 0000000..10b38d9 --- /dev/null +++ b/test/download.lua @@ -0,0 +1,50 @@ +#!bin/lem +-- +-- This file is part of LEM, a Lua Event Machine. +-- Copyright 2013 Emil Renner Berthing +-- +-- LEM is free software: you can redistribute it and/or modify it +-- under the terms of the GNU Lesser General Public License as +-- published by the Free Software Foundation, either version 3 of +-- the License, or (at your option) any later version. +-- +-- LEM is distributed in the hope that it will be useful, but +-- WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with LEM. If not, see <http://www.gnu.org/licenses/>. +-- + +package.path = '?.lua' +package.cpath = '?.so' + +local utils = require 'lem.utils' +local io = require 'lem.io' +local client = require 'lem.http.client' + +local write, format = io.write, string.format +local function printf(...) + return write(format(...)) +end + +local url = arg[1] or 'http://ompldr.org/vODFnOA/Birgit%20Lystager%20-%20Birger.mp3' +local filename = arg[2] or 'birger.mp3' +local stop = false + +utils.spawn(function() + local c = client.new() + + assert(c:download(url, filename)) + assert(c:close()) + stop = true +end) + +local sleeper = utils.newsleeper() +repeat + write('.') + sleeper:sleep(0.001) +until stop + +-- vim: set ts=2 sw=2 noet: diff --git a/test/httptest.lua b/test/httptest.lua index 7e38533..bce4cff 100755 --- a/test/httptest.lua +++ b/test/httptest.lua @@ -20,41 +20,33 @@ package.path = '?.lua' package.cpath = '?.so' -local utils = require 'lem.utils' -local io = require 'lem.io' -local http = require 'lem.http' +local utils = require 'lem.utils' +local io = require 'lem.io' +local client = require 'lem.http.client' local write, format = io.write, string.format local function printf(...) return write(format(...)) end -local domain, port = arg[1] or 'www.google.com', 'http' +local url = arg[1] or 'http://www.google.com/' local running = 0 local function get(n, close) running = running + 1 - local req - if close then - req = 'GET / HTTP/1.1\r\nHost: %s\r\nConnection: close\r\n\r\n' - else - req = 'GET / HTTP/1.1\r\nHost: %s\r\n\r\n' - end + local c = client.new() - local conn = assert(io.tcp.connect(domain, port)) - assert(conn:write(req:format(domain))) - local res = assert(conn:read('HTTPResponse')) + local res = assert(c:get(url)) printf('\n%d: HTTP/%s %d %s\n', n, res.version, res.status, res.text) for k, v in pairs(res.headers) do printf('%d: %s: %s\n', n, k, v) end - local body = assert(res:body()) - printf('\n%d: #body = %d\n', n, #body) + printf('\n%d: #body = %d\n', n, #res.body) - conn:close() + assert(c:close()) running = running - 1 end |