Zuzu
view release on metacpan or search on metacpan
stdlib/tests/std/worker/_006-deny-fs.zzs view on Meta::CPAN
from std/eval import eval;
from test/more import *;
from test/worker_contract import require_worker_phase, await_worker_failure;
let Worker := require_worker_phase(2);
async function main () {
let system_denials := await {
Worker.spawn(
function () {
return [
__system__{deny_fs},
__system__{deny_net},
__system__{deny_perl},
__system__{deny_js},
__system__{deny_proc},
__system__{deny_db},
__system__{deny_clib},
__system__{deny_gui},
__system__{deny_worker},
];
},
[],
deny_fs: true,
deny_net: true,
deny_perl: true,
deny_js: true,
deny_proc: true,
deny_db: true,
deny_clib: true,
deny_gui: true,
deny_worker: true,
);
};
is(
system_denials,
[ true, true, true, true, true, true, true, true, true ],
"worker accepts all deny flags reflected in __system__",
);
let import_error := exception( function () {
eval( "from std/worker import Worker; true;", deny_worker: true );
} );
ok(
import_error instanceof Exception,
"deny_worker prevents std/worker imports",
);
like(
import_error.to_String(),
/(denied|unavailable|not found|worker)/i,
"deny_worker import failure mentions worker denial",
);
like(
exception( function () {
Worker.spawn(
function () {
return true;
},
[],
deny_fs: "true",
);
} ),
/TypeException.*deny_fs.*Boolean/,
( run in 0.755 second using v1.01-cache-2.11-cpan-f03e8824b8d )