http {
%%TEST_GLOBALS_HTTP%%
- js_engine qjs;
js_context_reuse 4;
js_context_reuse_max_size 64m;
listen 127.0.0.1:8080;
server_name localhost;
+ location = /engine {
+ js_context_reuse 0;
+ js_import test from engine.js;
+ js_content test.engine;
+ }
+
location = /source {
js_import handler from source.js;
js_content handler.content;
EOF
+$t->write_file('engine.js', <<'EOF');
+ function engine(r) {
+ r.return(200, njs.engine);
+ }
+
+ export default {engine};
+EOF
+
$t->write_file('source.js', <<'EOF');
let visits = 0;
EOF
-$t->try_run('no njs available')->plan(4);
+$t->try_run('no njs available');
+plan(skip_all => 'QuickJS-specific context reuse tests')
+ if http_get('/engine') =~ /njs$/m;
+$t->plan(4);
###############################################################################
http {
%%TEST_GLOBALS_HTTP%%
- js_engine qjs;
js_import test.js;
server {
listen 127.0.0.1:8080;
server_name localhost;
+ location /engine {
+ js_content test.engine;
+ }
+
location /reuse {
js_context_reuse 1;
js_content test.reuse;
$t->write_file('test.js', <<EOF);
var retained;
+ function engine(r) {
+ r.return(200, njs.engine);
+ }
+
async function reuse(r) {
var result = 'ok';
r.return(200, 'ok');
}
- export default {reuse, no_reuse};
+ export default {reuse, no_reuse, engine};
EOF
-$t->try_run('no QuickJS support')->plan(11);
+$t->try_run('no njs available');
+plan(skip_all => 'QuickJS-specific lifetime tests')
+ if http_get('/engine') =~ /njs$/m;
+$t->plan(11);
###############################################################################
http {
%%TEST_GLOBALS_HTTP%%
- js_engine qjs;
js_context_reuse 0;
js_import test.js;
listen 127.0.0.1:8080;
server_name localhost;
+ location /engine {
+ js_content test.engine;
+ }
+
location /cycle {
js_content test.http_cycle;
}
stream {
%%TEST_GLOBALS_STREAM%%
- js_engine qjs;
js_context_reuse 0;
js_import test.js;
js_preread test.stream_cycle;
return OK;
}
+
+ server {
+ listen 127.0.0.1:8082;
+ js_set $engine test.engine_name;
+ return $engine;
+ }
}
EOF
$t->write_file('test.js', <<'EOF');
+ function engine(r) {
+ r.return(200, njs.engine);
+ }
+
+ function engine_name() {
+ return njs.engine;
+ }
+
function http_cycle(r) {
r.args.request = r;
r.return(200, 'ok');
});
}
- export default {http_cycle, request_body_cycle, response_body_cycle,
+ export default {engine, engine_name, http_cycle,
+ request_body_cycle, response_body_cycle,
stream_cycle};
EOF
-$t->try_run('no QuickJS support')->plan(4);
+$t->try_run('no njs available');
+plan(skip_all => 'QuickJS-specific GC tests')
+ if http_get('/engine') =~ /njs$/m
+ || stream('127.0.0.1:' . port(8082))->read() =~ /njs$/;
+$t->plan(4);
###############################################################################