mirror of
https://github.com/esp8266/Arduino.git
synced 2025-06-07 16:23:38 +03:00
added lua test cases
git-svn-id: svn://svn.code.sf.net/p/axtls/code/trunk@128 9a5d90b5-6617-0410-8a86-bb477d3ed2e3
This commit is contained in:
parent
69003c01ac
commit
ab7cbe8310
@ -28,6 +28,15 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "os_port.h"
|
#include "os_port.h"
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
/* enable features based on a 'super-set' capbaility. */
|
||||||
|
#if defined(CONFIG_SSL_FULL_MODE)
|
||||||
|
#define CONFIG_SSL_ENABLE_CLIENT
|
||||||
|
#define CONFIG_SSL_CERT_VERIFICATION
|
||||||
|
#elif defined(CONFIG_SSL_ENABLE_CLIENT)
|
||||||
|
#define CONFIG_SSL_CERT_VERIFICATION
|
||||||
|
#endif
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* AES declarations
|
* AES declarations
|
||||||
|
12
crypto/md2.c
12
crypto/md2.c
@ -29,7 +29,13 @@
|
|||||||
|
|
||||||
#include "crypto.h"
|
#include "crypto.h"
|
||||||
|
|
||||||
static const unsigned char PI_SUBST[256] =
|
/**
|
||||||
|
* This code is only here to enable the verification of Verisign root
|
||||||
|
* certificates. So only enable it for verification mode.
|
||||||
|
*/
|
||||||
|
#ifdef CONFIG_SSL_CERT_VERIFICATION
|
||||||
|
|
||||||
|
static const uint8_t PI_SUBST[256] =
|
||||||
{
|
{
|
||||||
0x29, 0x2E, 0x43, 0xC9, 0xA2, 0xD8, 0x7C, 0x01, 0x3D, 0x36,
|
0x29, 0x2E, 0x43, 0xC9, 0xA2, 0xD8, 0x7C, 0x01, 0x3D, 0x36,
|
||||||
0x54, 0xA1, 0xEC, 0xF0, 0x06, 0x13, 0x62, 0xA7, 0x05, 0xF3,
|
0x54, 0xA1, 0xEC, 0xF0, 0x06, 0x13, 0x62, 0xA7, 0x05, 0xF3,
|
||||||
@ -70,7 +76,7 @@ EXP_FUNC void STDCALL MD2_Init(MD2_CTX *ctx)
|
|||||||
static void md2_process(MD2_CTX *ctx)
|
static void md2_process(MD2_CTX *ctx)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
unsigned char t = 0;
|
uint8_t t = 0;
|
||||||
|
|
||||||
for (i = 0; i < 16; i++)
|
for (i = 0; i < 16; i++)
|
||||||
{
|
{
|
||||||
@ -140,3 +146,5 @@ EXP_FUNC void STDCALL MD2_Final(uint8_t *output, MD2_CTX *ctx)
|
|||||||
|
|
||||||
memcpy(output, ctx->state, 16);
|
memcpy(output, ctx->state, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -622,7 +622,7 @@ void procsendfile(struct connstruct *cn)
|
|||||||
|
|
||||||
#if defined(CONFIG_HTTP_HAS_CGI)
|
#if defined(CONFIG_HTTP_HAS_CGI)
|
||||||
/* Should this be a bit more dynamic? It would mean more calls to malloc etc */
|
/* Should this be a bit more dynamic? It would mean more calls to malloc etc */
|
||||||
#define CGI_ARG_SIZE 16
|
#define CGI_ARG_SIZE 17
|
||||||
|
|
||||||
static void proccgi(struct connstruct *cn)
|
static void proccgi(struct connstruct *cn)
|
||||||
{
|
{
|
||||||
@ -771,7 +771,8 @@ static void proccgi(struct connstruct *cn)
|
|||||||
|
|
||||||
if (cgi_index >= CGI_ARG_SIZE)
|
if (cgi_index >= CGI_ARG_SIZE)
|
||||||
{
|
{
|
||||||
printf("Content-type: text/plain\n\nToo many CGI args\n");
|
printf("Content-type: text/plain\n\nToo many CGI args (%d, %d)\n",
|
||||||
|
cgi_index, CGI_ARG_SIZE);
|
||||||
_exit(1);
|
_exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
11
ssl/bigint.h
11
ssl/bigint.h
@ -19,17 +19,8 @@
|
|||||||
#ifndef BIGINT_HEADER
|
#ifndef BIGINT_HEADER
|
||||||
#define BIGINT_HEADER
|
#define BIGINT_HEADER
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/* enable features based on a 'super-set' capbaility. */
|
|
||||||
#if defined(CONFIG_SSL_FULL_MODE)
|
|
||||||
#define CONFIG_SSL_ENABLE_CLIENT
|
|
||||||
#define CONFIG_SSL_CERT_VERIFICATION
|
|
||||||
#elif defined(CONFIG_SSL_ENABLE_CLIENT)
|
|
||||||
#define CONFIG_SSL_CERT_VERIFICATION
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "os_port.h"
|
#include "os_port.h"
|
||||||
|
#include "crypto.h"
|
||||||
#include "bigint_impl.h"
|
#include "bigint_impl.h"
|
||||||
|
|
||||||
#ifndef CONFIG_BIGINT_CHECK_ON
|
#ifndef CONFIG_BIGINT_CHECK_ON
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "crypto.h"
|
||||||
#include "bigint.h"
|
#include "bigint.h"
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
|
@ -27,7 +27,6 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include "os_port.h"
|
#include "os_port.h"
|
||||||
#include "crypto.h"
|
|
||||||
#include "crypto_misc.h"
|
#include "crypto_misc.h"
|
||||||
|
|
||||||
#ifdef CONFIG_SSL_CERT_VERIFICATION
|
#ifdef CONFIG_SSL_CERT_VERIFICATION
|
||||||
|
File diff suppressed because one or more lines are too long
75
www/lua/download.lua
Normal file
75
www/lua/download.lua
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
#!/usr/local/bin/lua
|
||||||
|
|
||||||
|
require"luasocket"
|
||||||
|
|
||||||
|
function receive (connection)
|
||||||
|
connection:settimeout(0)
|
||||||
|
local s, status = connection:receive (2^10)
|
||||||
|
if status == "timeout" then
|
||||||
|
coroutine.yield (connection)
|
||||||
|
end
|
||||||
|
return s, status
|
||||||
|
end
|
||||||
|
|
||||||
|
function download (host, file, outfile)
|
||||||
|
--local f = assert (io.open (outfile, "w"))
|
||||||
|
local c = assert (socket.connect (host, 80))
|
||||||
|
c:send ("GET "..file.." HTTP/1.0\r\n\r\n")
|
||||||
|
while true do
|
||||||
|
local s, status = receive (c)
|
||||||
|
--f:write (s)
|
||||||
|
if status == "closed" then
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
c:close()
|
||||||
|
--f:close()
|
||||||
|
end
|
||||||
|
|
||||||
|
local threads = {}
|
||||||
|
function get (host, file, outfile)
|
||||||
|
print (string.format ("Downloading %s from %s to %s", file, host, outfile))
|
||||||
|
local co = coroutine.create (function ()
|
||||||
|
return download (host, file, outfile)
|
||||||
|
end)
|
||||||
|
table.insert (threads, co)
|
||||||
|
end
|
||||||
|
|
||||||
|
function dispatcher ()
|
||||||
|
while true do
|
||||||
|
local n = table.getn (threads)
|
||||||
|
if n == 0 then
|
||||||
|
break
|
||||||
|
end
|
||||||
|
local connections = {}
|
||||||
|
for i = 1, n do
|
||||||
|
local status, res = coroutine.resume (threads[i])
|
||||||
|
if not res then
|
||||||
|
table.remove (threads, i)
|
||||||
|
break
|
||||||
|
else
|
||||||
|
table.insert (connections, res)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if table.getn (connections) == n then
|
||||||
|
socket.select (connections)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local url = arg[1]
|
||||||
|
if not url then
|
||||||
|
print (string.format ("usage: %s url [times]", arg[0]))
|
||||||
|
os.exit()
|
||||||
|
end
|
||||||
|
local times = arg[2] or 5
|
||||||
|
|
||||||
|
url = string.gsub (url, "^http.?://", "")
|
||||||
|
local _, _, host, file = string.find (url, "^([^/]+)(/.*)")
|
||||||
|
local _, _, fn = string.find (file, "([^/]+)$")
|
||||||
|
|
||||||
|
for i = 1, times do
|
||||||
|
get (host, file, fn..i)
|
||||||
|
end
|
||||||
|
|
||||||
|
dispatcher ()
|
26
www/lua/env.lua
Normal file
26
www/lua/env.lua
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
-- This file should be executed before any script in this directory
|
||||||
|
-- according to the configuration (cgilua/conf.lua).
|
||||||
|
|
||||||
|
pcall (cgilua.enablesession)
|
||||||
|
|
||||||
|
local put, mkurlpath = cgilua.put, cgilua.mkurlpath
|
||||||
|
|
||||||
|
cgilua.addclosefunction (function ()
|
||||||
|
put [[
|
||||||
|
<p>
|
||||||
|
<small>
|
||||||
|
<a href="test_main.html">Main</a>]]
|
||||||
|
for _, test in {
|
||||||
|
{ "Get", "test_main.lua", {ab = "cd", ef = "gh"} },
|
||||||
|
{ "Cookies", "test_cookies.lua", },
|
||||||
|
{ "FileSystem", "test_fs.lua", },
|
||||||
|
{ "Libraries", "test_lib.lua", },
|
||||||
|
{ "Session", "test_session.lua", },
|
||||||
|
{ "Variables", "test_variables.lp", },
|
||||||
|
} do
|
||||||
|
put (string.format (' · <a href="%s">%s</a>',
|
||||||
|
mkurlpath (test[2], test[3]), test[1]))
|
||||||
|
end
|
||||||
|
put [[
|
||||||
|
</small>]]
|
||||||
|
end)
|
64
www/lua/overview.lp
Normal file
64
www/lua/overview.lp
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
<?lua
|
||||||
|
-- Tries to load known libraries
|
||||||
|
for _, t in ipairs { "lxp", "luasql.postgres", "luasql.mysql", "luasql.oci8", "luasql.sqlite", "luasql.odbc", "socket", "xmlrpc", "soap", "lualdap", "logging", "md5", "zip", "stable", "copas", } do
|
||||||
|
pcall (require, t)
|
||||||
|
end
|
||||||
|
|
||||||
|
libraries = { "lxp", "luasql", "socket", "xmlrpc", "soap", "lualdap", "logging", "md5", "zip", "stable", "copas", }
|
||||||
|
|
||||||
|
local colors = { "#999999", "#CCCCCC", "#FFFFFF", }
|
||||||
|
local i = 0
|
||||||
|
function color () i = math.mod (i + 1, 3) return colors[i + 1] end
|
||||||
|
|
||||||
|
function pack_name (p) return string.gsub (p, "^([^.]+).-", "%1") end
|
||||||
|
|
||||||
|
function idx (t, f) return _G[t][f] or _G[t]["_"..f] or "" end
|
||||||
|
?>
|
||||||
|
<html>
|
||||||
|
<head><title>CGILua installation overview</title></head>
|
||||||
|
|
||||||
|
<body bgcolor="#FFFFFF">
|
||||||
|
<h1>CGILua installation overview</h1>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th bgcolor="#999999">Version
|
||||||
|
<th bgcolor="#999999">Copyright
|
||||||
|
<th bgcolor="#999999">Description
|
||||||
|
</tr>
|
||||||
|
<?lua
|
||||||
|
local support = {
|
||||||
|
{ "Lua", "_VERSION" },
|
||||||
|
{ "compat-5.1", "_COMPAT51" },
|
||||||
|
}
|
||||||
|
for _, l in ipairs (support) do bg = color()
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td bgcolor = "<%= bg %>"><%= tostring(_G[l[2]]) %>
|
||||||
|
<td bgcolor = "<%= bg %>">
|
||||||
|
<td bgcolor = "<%= bg %>">
|
||||||
|
</tr>
|
||||||
|
<? end ?>
|
||||||
|
<tr><td colspan="4"></tr>
|
||||||
|
<?lua
|
||||||
|
local pack = {}
|
||||||
|
for i, p in ipairs (libraries) do
|
||||||
|
local s = _G[p]
|
||||||
|
local n = pack_name(p)
|
||||||
|
if type(_G[n]) == "table" and _G[n]._VERSION then
|
||||||
|
pack[n] = true
|
||||||
|
table.insert (pack, n)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
table.sort (pack)
|
||||||
|
for _, p in ipairs (pack) do bg = color() ?>
|
||||||
|
<tr>
|
||||||
|
<td bgcolor = "<%= bg %>"><%= idx(p,"VERSION") %>
|
||||||
|
<td bgcolor = "<%= bg %>"><small><%= idx(p,"COPYRIGHT") %></small>
|
||||||
|
<td bgcolor = "<%= bg %>"><small><%= idx(p,"DESCRIPTION") %></small>
|
||||||
|
</tr>
|
||||||
|
<?lua end ?>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
31
www/lua/prepara_sql2.lua
Normal file
31
www/lua/prepara_sql2.lua
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#!/usr/local/bin/lua
|
||||||
|
|
||||||
|
MAX_ROWS = arg[1] or 10
|
||||||
|
|
||||||
|
require"postgres"
|
||||||
|
|
||||||
|
local env = assert (luasql.postgres ())
|
||||||
|
local conn = assert (env:connect ("luasql-test", "tomas"))
|
||||||
|
|
||||||
|
-- Apaga restos de outros testes.
|
||||||
|
conn:execute "drop table t2"
|
||||||
|
conn:execute "drop table t1"
|
||||||
|
|
||||||
|
-- Criando as tabelas.
|
||||||
|
assert (conn:execute [[create table t1 (
|
||||||
|
a int,
|
||||||
|
b int
|
||||||
|
)]])
|
||||||
|
assert (conn:execute [[create table t2 (
|
||||||
|
c int,
|
||||||
|
d int
|
||||||
|
)]])
|
||||||
|
|
||||||
|
-- Preenchedo as tabelas.
|
||||||
|
for i = 1, MAX_ROWS do
|
||||||
|
local ii = 2*i
|
||||||
|
assert (conn:execute (string.format ([[
|
||||||
|
insert into t1 values (%d, %d);
|
||||||
|
insert into t2 values (%d, %d);]],
|
||||||
|
ii, i, ii, i)))
|
||||||
|
end
|
9
www/lua/tcgi1.lua
Normal file
9
www/lua/tcgi1.lua
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
io.stdout:write"Content-type: text/html\n\n"
|
||||||
|
|
||||||
|
for i,v in pairs{"QUERY_STRING", } do
|
||||||
|
io.stdout:write (string.format ("%s = %s", v, os.getenv(v) or ' '))
|
||||||
|
end
|
||||||
|
io.stdout:write "<br>\n"
|
||||||
|
|
||||||
|
local post_data = io.stdin:read"*a"
|
||||||
|
io.stdout:write (string.format ("post_data = {%s}", post_data))
|
38
www/lua/test_conc.lua
Normal file
38
www/lua/test_conc.lua
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
cgilua.htmlheader()
|
||||||
|
if ap then
|
||||||
|
local pid, ppid = ap.pid ()
|
||||||
|
if not ppid then
|
||||||
|
ppid = "no parent pid"
|
||||||
|
end
|
||||||
|
cgilua.put ("pid = "..pid.." ("..ppid..")".."\n")
|
||||||
|
end
|
||||||
|
|
||||||
|
assert(type(stable.get) == "function")
|
||||||
|
assert(type(stable.set) == "function")
|
||||||
|
|
||||||
|
cgilua.put"stable.pairs = {<br>\n"
|
||||||
|
for i, v in stable.pairs () do
|
||||||
|
cgilua.put (i.." = "..tostring(v).."<br>\n")
|
||||||
|
end
|
||||||
|
cgilua.put"}<br>\n"
|
||||||
|
|
||||||
|
local counter = stable.get"counter" or 0
|
||||||
|
stable.set ("counter", counter + 1)
|
||||||
|
|
||||||
|
local f = stable.get"f"
|
||||||
|
if not f then
|
||||||
|
local d = os.date()
|
||||||
|
stable.set ("f", function () return d end)
|
||||||
|
else
|
||||||
|
cgilua.put ("f() = "..tostring (f ()))
|
||||||
|
end
|
||||||
|
|
||||||
|
cgilua.put"<br>\n"
|
||||||
|
for i = 1,800 do
|
||||||
|
cgilua.put (i)
|
||||||
|
for ii = 1,1000 do
|
||||||
|
cgilua.put ("<!>")
|
||||||
|
end
|
||||||
|
cgilua.put ("\n")
|
||||||
|
end
|
||||||
|
cgilua.put ("End")
|
13
www/lua/test_cookies.lp
Normal file
13
www/lua/test_cookies.lp
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<?lua
|
||||||
|
local cookies = require"cgilua.cookies"
|
||||||
|
CL_COOKIE = "cgilua_cookie"
|
||||||
|
|
||||||
|
local test = cookies.get (CL_COOKIE)
|
||||||
|
cookies.sethtml (CL_COOKIE, os.date())
|
||||||
|
?>
|
||||||
|
|
||||||
|
<h1>Testing Cookies library</h1>
|
||||||
|
|
||||||
|
<%= CL_COOKIE%> = <%= tostring(test)%><br>
|
||||||
|
Assigning current date to cookie!<br>
|
||||||
|
Reload this script to check cookie's value!
|
14
www/lua/test_cookies.lua
Normal file
14
www/lua/test_cookies.lua
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
local cookies = require"cgilua.cookies"
|
||||||
|
CL_COOKIE = "cgilua_cookie"
|
||||||
|
|
||||||
|
local test = cookies.get (CL_COOKIE)
|
||||||
|
cookies.set (CL_COOKIE, os.date())
|
||||||
|
|
||||||
|
cgilua.htmlheader ()
|
||||||
|
cgilua.put ([[
|
||||||
|
<h1>Testing Cookies library</h1>
|
||||||
|
|
||||||
|
]]..CL_COOKIE..' = '..tostring(test)..[[<br>
|
||||||
|
Assigning current date to cookie!<br>
|
||||||
|
Reload this script to check cookie's value!
|
||||||
|
]])
|
4
www/lua/test_err.lua
Normal file
4
www/lua/test_err.lua
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
cgilua.htmlheader()
|
||||||
|
cgilua.put"Oi!"
|
||||||
|
--io.write"something\n"
|
||||||
|
cgilua.errorlog ("eca", "emerg")
|
23
www/lua/test_fs.lua
Normal file
23
www/lua/test_fs.lua
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
function link_dir (dir, base)
|
||||||
|
local path = base.."/"..dir
|
||||||
|
local mode = lfs.attributes (path).mode
|
||||||
|
if mode == "directory" then
|
||||||
|
return string.format ('<a href="%s">%s</a>',
|
||||||
|
cgilua.mkurlpath ("test_fs.lua", { dir = path }),
|
||||||
|
dir)
|
||||||
|
else
|
||||||
|
return dir
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
cgilua.htmlheader ()
|
||||||
|
cgilua.put ("<h1>Testing Filesystem library</h1>\n")
|
||||||
|
cgilua.put ("<table>\n")
|
||||||
|
cgilua.put ("<tr><td colspan=2>Testing <b>dir</b></td></tr>\n")
|
||||||
|
local i = 0
|
||||||
|
local dir = cgi.dir or "."
|
||||||
|
for file in lfs.dir (dir) do
|
||||||
|
i = i+1
|
||||||
|
cgilua.put ("<tr><td>"..i.."</td><td>"..link_dir(file, dir).."</td></tr>\n")
|
||||||
|
end
|
||||||
|
cgilua.put ("</table>\n")
|
22
www/lua/test_htk.lua
Normal file
22
www/lua/test_htk.lua
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
require"htk"
|
||||||
|
|
||||||
|
local a_table = {}
|
||||||
|
for i = 1, 20 do
|
||||||
|
local l = {}
|
||||||
|
for j = 1, 20 do
|
||||||
|
table.insert (l, HTK.TD { "cell "..i..","..j })
|
||||||
|
end
|
||||||
|
table.insert (a_table, HTK.TR (l))
|
||||||
|
end
|
||||||
|
|
||||||
|
cgilua.htmlheader()
|
||||||
|
cgilua.put (HTK.HTML {
|
||||||
|
HTK.HEAD { HTK.TITLE { "Titulo da Pagina" } },
|
||||||
|
HTK.BODY {
|
||||||
|
bgcolor = "#FFFFFF",
|
||||||
|
HTK.H1 { "Titulo da Pagina" },
|
||||||
|
HTK.P {},
|
||||||
|
"Uma página qualquer",
|
||||||
|
HTK.TABLE (a_table),
|
||||||
|
}
|
||||||
|
})
|
31
www/lua/test_lib.lua
Normal file
31
www/lua/test_lib.lua
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
local function getfield (t, f)
|
||||||
|
for w in string.gfind(f, "[%w_]+") do
|
||||||
|
if not t then return nil end
|
||||||
|
t = t[w]
|
||||||
|
end
|
||||||
|
return t
|
||||||
|
end
|
||||||
|
|
||||||
|
function test_lib (libname)
|
||||||
|
local ok, err = pcall (require, libname)
|
||||||
|
if not ok then
|
||||||
|
cgilua.put ("Library <tt><b>"..libname.."</b></tt> not found<br>\n"..
|
||||||
|
err)
|
||||||
|
else
|
||||||
|
cgilua.put ("Library <tt><b>"..libname.."</b></tt><br>\n")
|
||||||
|
local t = getfield (_G, libname)
|
||||||
|
if type(t) ~= "table" then
|
||||||
|
cgilua.put (tostring(t))
|
||||||
|
else
|
||||||
|
for i, v in pairs (t) do
|
||||||
|
cgilua.put (" "..tostring(i).." = "..tostring(v).."<br>\n")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
cgilua.put ("\n<p>\n")
|
||||||
|
end
|
||||||
|
|
||||||
|
cgilua.htmlheader ()
|
||||||
|
for _, lib in ipairs { "lfs", "socket", "luasql.postgres", "luasql", "lxp", "lxp.lom", "lualdap", "htk", "xmlrpc", "xmlrpc.http" } do
|
||||||
|
test_lib (lib)
|
||||||
|
end
|
127
www/lua/test_main.html
Normal file
127
www/lua/test_main.html
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
<html>
|
||||||
|
<head><title>Test Page</title></head>
|
||||||
|
|
||||||
|
<table border>
|
||||||
|
<tr>
|
||||||
|
<th colspan="4"> GET: </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Lua script</td>
|
||||||
|
<td><a href="test_main.lua?field1=ab&field2=cd&field1=ef">module</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>HTML template</td>
|
||||||
|
<td><a href="test_main.lp?field1=ab&field2=cd&field1=ef">module</a></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th colspan="4"> POST: </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="4">
|
||||||
|
<form method="POST" action="">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td colspan="4">
|
||||||
|
field 1: <input type="text" name="field1"><br>
|
||||||
|
field 2: <input type="text" name="field2"><br>
|
||||||
|
field 3:
|
||||||
|
<input type="checkbox" name="field3" value="op 1">op 1
|
||||||
|
<input type="checkbox" name="field3" value="op 2">op 2
|
||||||
|
<input type="checkbox" name="field3" value="op 3">op 3
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Lua script</td>
|
||||||
|
<td>
|
||||||
|
<a href="javascript:document.forms[0].action='test_main.lua';document.forms[0].submit()">module</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>HTML template</td>
|
||||||
|
<td>
|
||||||
|
<a href="javascript:document.forms[0].action='test_main.lp';document.forms[0].submit()">module</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th colspan="4"> POST (with upload): </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="4">
|
||||||
|
<form method="POST" enctype="multipart/form-data" action="">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td colspan="4">
|
||||||
|
field 1: <input type="text" name="field1"><br>
|
||||||
|
file (binary!): <input type="file" name="file"><br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Lua script</td>
|
||||||
|
<td>
|
||||||
|
<a href="javascript:document.forms[1].action='test_main.lua';document.forms[1].submit()">module</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>HTML template</td>
|
||||||
|
<td>
|
||||||
|
<a href="javascript:document.forms[1].action='test_main.lp';document.forms[1].submit()">module</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="4"> Cookies: </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Lua script</td>
|
||||||
|
<td><a href="test_cookies.lua">module</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>HTML template</td>
|
||||||
|
<td><a href="test_cookies.lp">module</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="4"> Filesystem: </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Lua script</td>
|
||||||
|
<td><a href="test_fs.lua">module</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="4"> Session: </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Lua script</td>
|
||||||
|
<td><a href="test_session.lua">module</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="4"> CGI Variables: </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>HTML template</td>
|
||||||
|
<td><a href="test_variables.lp">module</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="4"> Library Overview: </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>HTML template</td>
|
||||||
|
<td><a href="overview.lp">module</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="4"> Concurrency </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Lua script</td>
|
||||||
|
<td><a href="test_conc.lua">module</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</html>
|
31
www/lua/test_main.lp
Normal file
31
www/lua/test_main.lp
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<html>
|
||||||
|
<head><title>Embeded Lua Test</title></head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
cgi = {
|
||||||
|
<?lua
|
||||||
|
for i,v in pairs (cgi) do
|
||||||
|
if type(v) == "table" then
|
||||||
|
local vv = "{"
|
||||||
|
for a,b in pairs(v) do
|
||||||
|
vv = string.format ("%s%s = %s<br>\n", vv, a, tostring(b))
|
||||||
|
end
|
||||||
|
v = vv.."}"
|
||||||
|
end
|
||||||
|
?>
|
||||||
|
<%= i %> = <%= tostring(v) %> <br>
|
||||||
|
<%
|
||||||
|
end
|
||||||
|
%>
|
||||||
|
}
|
||||||
|
<br>
|
||||||
|
Remote address: <%= cgilua.servervariable"REMOTE_ADDR" %>
|
||||||
|
<br>
|
||||||
|
Is persistent = <%= tostring (SAPI.Info.ispersistent) %>
|
||||||
|
<br>
|
||||||
|
ap = <?lua= tostring(ap) ?> <br>
|
||||||
|
lfcgi = <% = tostring(lfcgi) %> <br>
|
||||||
|
<%= (ap and ap.handler()) or "" %> <br>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
46
www/lua/test_main.lua
Normal file
46
www/lua/test_main.lua
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
cgilua.htmlheader()
|
||||||
|
cgilua.put[[
|
||||||
|
<html>
|
||||||
|
<head><title>Script Lua Test</title></head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
cgi = {
|
||||||
|
]]
|
||||||
|
|
||||||
|
for i,v in pairs (cgi) do
|
||||||
|
if type(v) == "table" then
|
||||||
|
local vv = "{"
|
||||||
|
for a,b in pairs(v) do
|
||||||
|
vv = string.format ("%s%s = %s<br>\n", vv, a, tostring(b))
|
||||||
|
end
|
||||||
|
v = vv.."}"
|
||||||
|
end
|
||||||
|
cgilua.put (string.format ("%s = %s<br>\n", i, tostring(v)))
|
||||||
|
end
|
||||||
|
cgilua.put "}<br>\n"
|
||||||
|
cgilua.put ("Remote address: "..cgilua.servervariable"REMOTE_ADDR")
|
||||||
|
cgilua.put "<br>\n"
|
||||||
|
cgilua.put ("Is persistent = "..tostring (SAPI.Info.ispersistent).."<br>\n")
|
||||||
|
cgilua.put ("ap="..tostring(ap).."<br>\n")
|
||||||
|
cgilua.put ("lfcgi="..tostring(lfcgi).."<br>\n")
|
||||||
|
|
||||||
|
-- Checking Virtual Environment
|
||||||
|
local my_output = cgilua.put
|
||||||
|
cgilua.put = nil
|
||||||
|
local status, err = pcall (function ()
|
||||||
|
assert (cgilua.put == nil, "cannot change cgilua.put value")
|
||||||
|
end)
|
||||||
|
cgilua.put = my_output
|
||||||
|
assert (status == true, err)
|
||||||
|
|
||||||
|
-- Checking require
|
||||||
|
local status, err = pcall (function () require"unknown_module" end)
|
||||||
|
assert (status == false, "<tt>unknown_module</tt> loaded!")
|
||||||
|
-- assert (package == nil, "Access to <tt>package</tt> table allowed!")
|
||||||
|
|
||||||
|
cgilua.put[[
|
||||||
|
<p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
]]
|
||||||
|
cgilua = nil
|
43
www/lua/test_session.lua
Normal file
43
www/lua/test_session.lua
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
cgilua.enablesession ()
|
||||||
|
|
||||||
|
function pt (tab)
|
||||||
|
for i, v in pairs (tab) do
|
||||||
|
local vv = v
|
||||||
|
if type(v) == "table" then
|
||||||
|
vv = ""
|
||||||
|
for _i, _v in pairs (v) do
|
||||||
|
vv = vv..string.format ("%s = %q, ", _i, _v)
|
||||||
|
end
|
||||||
|
vv = '{'..vv..'}'
|
||||||
|
end
|
||||||
|
cgilua.put (string.format ("%s = %s<br>\n", tostring (i), tostring (vv)))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
if cgi.field then
|
||||||
|
if not cgilua.session.data.field then
|
||||||
|
cgilua.session.data.field = {}
|
||||||
|
end
|
||||||
|
table.insert (cgilua.session.data.field, cgi.field)
|
||||||
|
end
|
||||||
|
cgilua.htmlheader()
|
||||||
|
if cgilua.session then
|
||||||
|
cgilua.put "cgi = {<br>\n"
|
||||||
|
pt (cgi)
|
||||||
|
cgilua.put "}<br>\n"
|
||||||
|
cgilua.put "cgilua.session.data = {<br>\n"
|
||||||
|
pt (cgilua.session.data)
|
||||||
|
cgilua.put "}<br>\n"
|
||||||
|
|
||||||
|
cgilua.put [[<form action="]]
|
||||||
|
cgilua.put (cgilua.mkurlpath"test_session.lua")
|
||||||
|
cgilua.put [[" method="POST">
|
||||||
|
field: <input type="text" name="field" value="]]
|
||||||
|
cgilua.put (cgi.field or "")
|
||||||
|
cgilua.put [["><br>
|
||||||
|
<input type="submit"><br>
|
||||||
|
</form>]]
|
||||||
|
else
|
||||||
|
cgilua.put "Sessions library is not available or not well configured"
|
||||||
|
end
|
13
www/lua/test_sql.lua
Normal file
13
www/lua/test_sql.lua
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
local s = require"luasql.postgres"
|
||||||
|
|
||||||
|
local env = assert (luasql.postgres ())
|
||||||
|
local conn = assert (env:connect ("luasql-test", "tomas"))
|
||||||
|
local cur = assert (conn:execute ("select count(*) from fetch_test"))
|
||||||
|
|
||||||
|
cgilua.htmlheader()
|
||||||
|
cgilua.put ("Total lines at table fetch_test is "..cur:fetch())
|
||||||
|
cgilua.put (string.format ("<br>\n%s == %s<br>\n", tostring(s), tostring(luasql)))
|
||||||
|
|
||||||
|
cur:close()
|
||||||
|
conn:close()
|
||||||
|
env:close()
|
24
www/lua/test_sql2.lua
Normal file
24
www/lua/test_sql2.lua
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
require"postgres"
|
||||||
|
|
||||||
|
local env = assert (luasql.postgres ())
|
||||||
|
local conn = assert (env:connect ("luasql-test", "tomas"))
|
||||||
|
local cur = assert (conn:execute ("select count(*) from t1"))
|
||||||
|
local total = tonumber (cur:fetch())
|
||||||
|
cur:close()
|
||||||
|
local aleatorio = math.random(total)
|
||||||
|
local cur = assert (conn:execute ("select * from t1, t2 where b = d and a != "..2*aleatorio))
|
||||||
|
|
||||||
|
cgilua.htmlheader()
|
||||||
|
cgilua.put ("Aleatorio = "..aleatorio.."<br>\n")
|
||||||
|
|
||||||
|
local a,b,c,d = cur:fetch()
|
||||||
|
cgilua.put ("<table>\n")
|
||||||
|
while a do
|
||||||
|
-- cgilua.put ("<tr><td>",a,"<td>",b,"<td>",c,"<td>",d,"</tr>")
|
||||||
|
a,b,c,d = cur:fetch()
|
||||||
|
end
|
||||||
|
cgilua.put ("</table>\n")
|
||||||
|
|
||||||
|
cur:close()
|
||||||
|
conn:close()
|
||||||
|
env:close()
|
@ -1,12 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo "Content-Type: text/html"
|
|
||||||
echo
|
|
||||||
echo "<html><title>System Health</title><body>"
|
|
||||||
echo "<h1>System Health for '`/bin/hostname`'</h1>"
|
|
||||||
echo "<h2>Processes</h2><table border=\"2\">"
|
|
||||||
/bin/ps -ef | /bin/sed -e "s/\(.*\)/<tr><td>\1<\/td><\/tr>/"
|
|
||||||
echo "</table><h2>Free FileSystem Space</h2>"
|
|
||||||
echo "<table border=\"2\">"
|
|
||||||
/bin/df -h / | /bin/sed -e "s/\(.*\)/<tr><td>\1<\/td><\/tr>/"
|
|
||||||
echo "</table></body></html>"
|
|
@ -1,6 +0,0 @@
|
|||||||
#!/bin/php
|
|
||||||
|
|
||||||
<?
|
|
||||||
phpinfo();
|
|
||||||
?>
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user