blob: 64b61bee5531e23db8ccbba9dfa1d05a985dd0c0 [file] [log] [blame] [raw]
# vim:set ft= ts=4 sw=4 et fdm=marker:
use lib 'lib';
use Test::Nginx::Socket::Lua;
#worker_connections(1014);
#log_level('warn');
#master_on();
#repeat_each(120);
repeat_each(2);
plan tests => blocks() * repeat_each() * 2;
our $HtmlDir = html_dir;
#warn $html_dir;
#$ENV{LUA_PATH} = "$html_dir/?.lua";
#no_diff();
no_long_string();
run_tests();
__DATA__
=== TEST 1: sanity
--- http_config eval
"lua_package_path '$::HtmlDir/?.lua;./?.lua';"
--- config
location /main {
echo_location /load;
echo_location /check;
echo_location /check;
}
location /load {
content_by_lua '
package.loaded.foo = nil;
local foo = require "foo";
foo.hi()
';
}
location /check {
content_by_lua '
local foo = package.loaded.foo
if foo then
ngx.say("found")
foo.hi()
else
ngx.say("not found")
end
';
}
--- request
GET /main
--- user_files
>>> foo.lua
module(..., package.seeall);
ngx.say("loading");
function hi ()
ngx.say("hello, foo")
end;
--- response_body
loading
hello, foo
found
hello, foo
found
hello, foo
=== TEST 2: sanity
--- http_config eval
"lua_package_cpath '$::HtmlDir/?.so';"
--- config
location /main {
content_by_lua '
ngx.print(package.cpath);
';
}
--- request
GET /main
--- user_files
--- response_body_like: ^[^;]+/servroot/html/\?.so$
=== TEST 3: expand default path (after)
--- http_config eval
"lua_package_path '$::HtmlDir/?.lua;;';"
--- config
location /main {
content_by_lua '
ngx.print(package.path);
';
}
--- request
GET /main
--- response_body_like: ^[^;]+/servroot/html/\?.lua;.+\.lua;$
=== TEST 4: expand default cpath (after)
--- http_config eval
"lua_package_cpath '$::HtmlDir/?.so;;';"
--- config
location /main {
content_by_lua '
ngx.print(package.cpath);
';
}
--- request
GET /main
--- response_body_like: ^[^;]+/servroot/html/\?.so;.+\.so;$
=== TEST 5: expand default path (before)
--- http_config eval
"lua_package_path ';;$::HtmlDir/?.lua';"
--- config
location /main {
content_by_lua '
ngx.print(package.path);
';
}
--- request
GET /main
--- response_body_like: ^.+\.lua;[^;]+/servroot/html/\?.lua$
=== TEST 6: expand default cpath (before)
--- http_config eval
"lua_package_cpath ';;$::HtmlDir/?.so';"
--- config
location /main {
content_by_lua '
ngx.print(package.cpath);
';
}
--- request
GET /main
--- response_body_like: ^.+\.so;[^;]+/servroot/html/\?.so$
=== TEST 7: require "ngx" (content_by_lua)
--- config
location /ngx {
content_by_lua '
local ngx = require "ngx"
ngx.say("hello, world")
';
}
--- request
GET /ngx
--- response_body
hello, world
=== TEST 8: require "ngx" (set_by_lua)
--- config
location /ngx {
set_by_lua $res '
local ngx = require "ngx"
return ngx.escape_uri(" ")
';
echo $res;
}
--- request
GET /ngx
--- response_body
%20
=== TEST 9: require "ndk" (content_by_lua)
--- config
location /ndk {
content_by_lua '
local ndk = require "ndk"
local res = ndk.set_var.set_escape_uri(" ")
ngx.say(res)
';
}
--- request
GET /ndk
--- response_body
%20
=== TEST 10: require "ndk" (set_by_lua)
--- config
location /ndk {
set_by_lua $res '
local ndk = require "ndk"
return ndk.set_var.set_escape_uri(" ")
';
echo $res;
}
--- request
GET /ndk
--- response_body
%20