mirror of
https://github.com/bunkerity/bunkerweb
synced 2026-05-24 09:28:37 +00:00
Remove unused test files for LuaJIT
This commit is contained in:
parent
e8bccff876
commit
bddb5f54fe
9 changed files with 0 additions and 1471 deletions
98
src/deps/src/luajit/t/TestLJ.pm
vendored
98
src/deps/src/luajit/t/TestLJ.pm
vendored
|
|
@ -1,98 +0,0 @@
|
|||
package t::TestLJ;
|
||||
|
||||
use v5.10.1;
|
||||
use Test::Base -Base;
|
||||
use IPC::Run3;
|
||||
use Cwd qw( cwd );
|
||||
use Test::LongString;
|
||||
use File::Temp qw( tempdir );
|
||||
|
||||
our @EXPORT = qw( run_tests );
|
||||
|
||||
$ENV{LUA_CPATH} = "../?.so;;";
|
||||
$ENV{LUA_PATH} = "../lua/?.lua;;";
|
||||
#$ENV{LUA_PATH} = ($ENV{LUA_PATH} || "" ) . ';' . getcwd . "/runtime/?.lua" . ';;';
|
||||
|
||||
my $cwd = cwd;
|
||||
|
||||
sub run_test ($) {
|
||||
my $block = shift;
|
||||
#print $json_xs->pretty->encode(\@new_rows);
|
||||
#my $res = #print $json_xs->pretty->encode($res);
|
||||
my $name = $block->name;
|
||||
|
||||
my $lua = $block->lua or
|
||||
die "No --- lua specified for test $name\n";
|
||||
|
||||
my $luafile = "test.lua";
|
||||
|
||||
{
|
||||
my $dir = tempdir "testlj_XXXXXXX", CLEANUP => 1;
|
||||
chdir $dir or die "$name - Cannot chdir to $dir: $!";
|
||||
open my $fh, ">$luafile"
|
||||
or die "$name - Cannot open $luafile in $dir for writing: $!\n";
|
||||
print $fh $lua;
|
||||
close $fh;
|
||||
}
|
||||
|
||||
my ($res, $err);
|
||||
|
||||
my @cmd;
|
||||
|
||||
if ($ENV{TEST_LJ_USE_VALGRIND}) {
|
||||
warn "$name\n";
|
||||
@cmd = ('valgrind', '-q', '--leak-check=full', 'luajit',
|
||||
defined($block->jv) ? '-jv' : (),
|
||||
defined($block->jdump) ? '-jdump' : (),
|
||||
$luafile);
|
||||
} else {
|
||||
@cmd = ('luajit',
|
||||
defined($block->jv) ? '-jv' : (),
|
||||
defined($block->jdump) ? '-jdump' : (),
|
||||
$luafile);
|
||||
}
|
||||
|
||||
run3 \@cmd, undef, \$res, \$err;
|
||||
my $rc = $?;
|
||||
|
||||
#warn "res:$res\nerr:$err\n";
|
||||
|
||||
my $exp_rc = $block->exit // 0;
|
||||
|
||||
is $exp_rc, $rc >> 8, "$name - exit code okay";
|
||||
|
||||
my $exp_err = $block->err;
|
||||
if (defined $exp_err) {
|
||||
if ($err =~ /.*:.*:.*: (.*\s)?/) {
|
||||
$err = $1;
|
||||
}
|
||||
|
||||
if (ref $exp_err) {
|
||||
like $err, $exp_err, "$name - err like expected";
|
||||
|
||||
} else {
|
||||
is $err, $exp_err, "$name - err expected";
|
||||
}
|
||||
|
||||
} elsif (defined $err && $err ne '') {
|
||||
warn "$name - STDERR:\n$err";
|
||||
}
|
||||
|
||||
if (defined $block->out) {
|
||||
#is $res, $block->out, "$name - output ok";
|
||||
is $res, $block->out, "$name - output ok";
|
||||
|
||||
} elsif (defined $res && $res ne '') {
|
||||
warn "$name - STDOUT:\n$res";
|
||||
}
|
||||
|
||||
chdir $cwd or die $!;
|
||||
}
|
||||
|
||||
sub run_tests () {
|
||||
for my $block (blocks()) {
|
||||
run_test($block);
|
||||
}
|
||||
}
|
||||
|
||||
1;
|
||||
271
src/deps/src/luajit/t/exdata.t
vendored
271
src/deps/src/luajit/t/exdata.t
vendored
|
|
@ -1,271 +0,0 @@
|
|||
# vim: set ss=4 ft= sw=4 et sts=4 ts=4:
|
||||
|
||||
use lib '.';
|
||||
use t::TestLJ;
|
||||
|
||||
plan tests => 3 * blocks();
|
||||
|
||||
run_tests();
|
||||
|
||||
__DATA__
|
||||
|
||||
=== TEST 1: interpreted (sanity)
|
||||
--- lua
|
||||
jit.off()
|
||||
local assert = assert
|
||||
local exdata = require "thread.exdata"
|
||||
local ffi = require "ffi"
|
||||
local u64 = ffi.new("uintptr_t", 0xefdeaddeadbeefLL)
|
||||
local ptr = ffi.cast("void *", u64)
|
||||
local saved_q
|
||||
for i = 1, 5 do
|
||||
exdata(u64)
|
||||
local q = exdata()
|
||||
if saved_q then
|
||||
assert(q == saved_q)
|
||||
end
|
||||
saved_q = q
|
||||
end
|
||||
print(tostring(ptr))
|
||||
print(tostring(saved_q))
|
||||
--- jv
|
||||
--- out
|
||||
cdata<void *>: 0xefdeaddeadbeef
|
||||
cdata<void *>: 0xefdeaddeadbeef
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 2: newly created coroutines should inherit the exdata
|
||||
--- lua
|
||||
jit.off()
|
||||
local exdata = require "thread.exdata"
|
||||
local ffi = require "ffi"
|
||||
local u64 = ffi.new("uintptr_t", 0xefdeadbeefLL)
|
||||
local ptr = ffi.cast("void *", u64)
|
||||
local ptr2 = ffi.cast("void *", u64 + 1)
|
||||
local ptr3 = ffi.cast("void *", u64 - 2)
|
||||
local saved_q
|
||||
local function f()
|
||||
coroutine.yield(exdata())
|
||||
exdata(ptr2)
|
||||
coroutine.yield(exdata())
|
||||
coroutine.yield(exdata())
|
||||
end
|
||||
|
||||
exdata(u64)
|
||||
|
||||
local co = coroutine.create(f)
|
||||
|
||||
local ok, data = coroutine.resume(co)
|
||||
assert(ok)
|
||||
print(tostring(data))
|
||||
|
||||
ok, data = coroutine.resume(co)
|
||||
assert(ok)
|
||||
print(tostring(data))
|
||||
|
||||
exdata(ptr3)
|
||||
|
||||
ok, data = coroutine.resume(co)
|
||||
assert(ok)
|
||||
print(tostring(data))
|
||||
|
||||
print(tostring(exdata()))
|
||||
--- jv
|
||||
--- out
|
||||
cdata<void *>: 0xefdeadbeef
|
||||
cdata<void *>: 0xefdeadbef0
|
||||
cdata<void *>: 0xefdeadbef0
|
||||
cdata<void *>: 0xefdeadbeed
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 3: JIT mode (reading)
|
||||
--- lua
|
||||
jit.opt.start("minstitch=100000", "hotloop=2")
|
||||
local assert = assert
|
||||
local exdata = require "thread.exdata"
|
||||
local ffi = require "ffi"
|
||||
local u64 = ffi.new("uintptr_t", 0xefdeaddeadbeefLL)
|
||||
local ptr = ffi.cast("void *", u64)
|
||||
local saved_q
|
||||
exdata(u64)
|
||||
for i = 1, 10 do
|
||||
local q = exdata()
|
||||
if saved_q then
|
||||
assert(q == saved_q)
|
||||
end
|
||||
saved_q = q
|
||||
end
|
||||
print(tostring(ptr))
|
||||
print(tostring(saved_q))
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
cdata<void *>: 0xefdeaddeadbeef
|
||||
cdata<void *>: 0xefdeaddeadbeef
|
||||
--- err
|
||||
[TRACE 1 test.lua:9 loop]
|
||||
|
||||
|
||||
|
||||
=== TEST 4: JIT mode (writing)
|
||||
--- lua
|
||||
jit.opt.start("minstitch=100000", "hotloop=2")
|
||||
local assert = assert
|
||||
local exdata = require "thread.exdata"
|
||||
local ffi = require "ffi"
|
||||
local u64 = ffi.new("uintptr_t", 0xefdeaddeadbeefLL)
|
||||
local ptr = ffi.cast("void *", u64)
|
||||
local saved_q
|
||||
for i = 1, 10 do
|
||||
exdata(u64)
|
||||
local q = exdata()
|
||||
if saved_q then
|
||||
assert(q == saved_q)
|
||||
end
|
||||
saved_q = q
|
||||
end
|
||||
print(tostring(ptr))
|
||||
print(tostring(saved_q))
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
cdata<void *>: 0xefdeaddeadbeef
|
||||
cdata<void *>: 0xefdeaddeadbeef
|
||||
--- err
|
||||
[TRACE --- test.lua:8 -- trace too short at test.lua:9]
|
||||
|
||||
|
||||
|
||||
=== TEST 5: interpreted - check the number of arguments
|
||||
--- lua
|
||||
jit.off()
|
||||
local assert = assert
|
||||
local select = select
|
||||
local exdata = require "thread.exdata"
|
||||
local ffi = require "ffi"
|
||||
local u64 = ffi.new("uintptr_t", 0xefdeaddeadbeefLL)
|
||||
local ptr = ffi.cast("void *", u64)
|
||||
|
||||
local function nargs(...)
|
||||
return select('#', ...)
|
||||
end
|
||||
print(nargs(exdata(ptr)))
|
||||
print(nargs(exdata()))
|
||||
--- jv
|
||||
--- out
|
||||
0
|
||||
1
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 6: JIT mode - check the number of arguments
|
||||
--- lua
|
||||
jit.opt.start("minstitch=100000", "hotloop=2")
|
||||
local assert = assert
|
||||
local select = select
|
||||
local exdata = require "thread.exdata"
|
||||
local ffi = require "ffi"
|
||||
local u64 = ffi.new("uintptr_t", 0xefdeaddeadbeefLL)
|
||||
local ptr = ffi.cast("void *", u64)
|
||||
|
||||
local function nargs(...)
|
||||
return select('#', ...)
|
||||
end
|
||||
|
||||
local total = 0
|
||||
for i = 1, 10 do
|
||||
total = total + nargs(exdata(ptr))
|
||||
end
|
||||
|
||||
print("set: " .. total)
|
||||
|
||||
total = 0
|
||||
for i = 1, 10 do
|
||||
total = total + nargs(exdata())
|
||||
end
|
||||
|
||||
print("get: " .. total)
|
||||
--- jv
|
||||
--- out
|
||||
set: 0
|
||||
get: 10
|
||||
--- err
|
||||
[TRACE --- test.lua:14 -- trace too short at test.lua:15]
|
||||
[TRACE 1 test.lua:21 loop]
|
||||
|
||||
|
||||
|
||||
=== TEST 7: interpreted (no ffi initialized)
|
||||
--- lua
|
||||
jit.off()
|
||||
local assert = assert
|
||||
local exdata = require "thread.exdata"
|
||||
local saved_q
|
||||
for i = 1, 5 do
|
||||
local q = exdata()
|
||||
if saved_q then
|
||||
assert(q == saved_q)
|
||||
end
|
||||
saved_q = q
|
||||
end
|
||||
print(tostring(saved_q))
|
||||
--- jv
|
||||
--- out
|
||||
--- err
|
||||
ffi module not loaded (yet)
|
||||
--- exit: 1
|
||||
|
||||
|
||||
|
||||
=== TEST 8: default value (interpreted)
|
||||
--- lua
|
||||
jit.off()
|
||||
local assert = assert
|
||||
require "ffi"
|
||||
local exdata = require "thread.exdata"
|
||||
local saved_q
|
||||
for i = 1, 5 do
|
||||
local q = exdata()
|
||||
if saved_q then
|
||||
assert(q == saved_q)
|
||||
end
|
||||
saved_q = q
|
||||
end
|
||||
print(saved_q == nil)
|
||||
print(tostring(saved_q))
|
||||
--- jv
|
||||
--- out
|
||||
true
|
||||
cdata<void *>: NULL
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 9: default value (JIT)
|
||||
--- lua
|
||||
jit.opt.start("minstitch=100000", "hotloop=2")
|
||||
jit.on()
|
||||
local assert = assert
|
||||
require "ffi"
|
||||
local exdata = require "thread.exdata"
|
||||
local saved_q
|
||||
for i = 1, 5 do
|
||||
local q = exdata()
|
||||
if saved_q then
|
||||
assert(q == saved_q)
|
||||
end
|
||||
saved_q = q
|
||||
end
|
||||
print(saved_q == nil)
|
||||
print(tostring(saved_q))
|
||||
--- jv
|
||||
--- out
|
||||
true
|
||||
cdata<void *>: NULL
|
||||
--- err
|
||||
[TRACE 1 test.lua:7 loop]
|
||||
300
src/deps/src/luajit/t/exdata2.t
vendored
300
src/deps/src/luajit/t/exdata2.t
vendored
|
|
@ -1,300 +0,0 @@
|
|||
# vim: set ss=4 ft= sw=4 et sts=4 ts=4:
|
||||
|
||||
use lib '.';
|
||||
use t::TestLJ;
|
||||
|
||||
plan tests => 3 * blocks();
|
||||
|
||||
run_tests();
|
||||
|
||||
__DATA__
|
||||
|
||||
=== TEST 1: interpreted (sanity)
|
||||
--- lua
|
||||
jit.off()
|
||||
local assert = assert
|
||||
local exdata2 = require "thread.exdata2"
|
||||
local ffi = require "ffi"
|
||||
local u64 = ffi.new("uintptr_t", 0xefdeaddeadbeefLL)
|
||||
local ptr = ffi.cast("void *", u64)
|
||||
local saved_q
|
||||
for i = 1, 5 do
|
||||
exdata2(u64)
|
||||
local q = exdata2()
|
||||
if saved_q then
|
||||
assert(q == saved_q)
|
||||
end
|
||||
saved_q = q
|
||||
end
|
||||
print(tostring(ptr))
|
||||
print(tostring(saved_q))
|
||||
--- jv
|
||||
--- out
|
||||
cdata<void *>: 0xefdeaddeadbeef
|
||||
cdata<void *>: 0xefdeaddeadbeef
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 2: interpreted (using both exdata and exdata2)
|
||||
--- lua
|
||||
jit.off()
|
||||
local assert = assert
|
||||
local exdata = require "thread.exdata"
|
||||
local exdata2 = require "thread.exdata2"
|
||||
assert(exdata ~= exdata2)
|
||||
local ffi = require "ffi"
|
||||
local u64 = ffi.new("uintptr_t", 0xefdeaddeadbeefLL)
|
||||
local u64_2 = ffi.new("uintptr_t", 0xefdeaddeddbeffLL)
|
||||
local ptr = ffi.cast("void *", u64)
|
||||
local saved_q
|
||||
exdata(u64)
|
||||
exdata2(u64_2)
|
||||
print(tostring(exdata()))
|
||||
print(tostring(exdata2()))
|
||||
--- jv
|
||||
--- out
|
||||
cdata<void *>: 0xefdeaddeadbeef
|
||||
cdata<void *>: 0xefdeaddeddbeff
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 3: newly created coroutines should inherit the exdata2
|
||||
--- lua
|
||||
jit.off()
|
||||
local exdata2 = require "thread.exdata2"
|
||||
local ffi = require "ffi"
|
||||
local u64 = ffi.new("uintptr_t", 0xefdeadbeefLL)
|
||||
local ptr = ffi.cast("void *", u64)
|
||||
local ptr2 = ffi.cast("void *", u64 + 1)
|
||||
local ptr3 = ffi.cast("void *", u64 - 2)
|
||||
local saved_q
|
||||
local function f()
|
||||
coroutine.yield(exdata2())
|
||||
exdata2(ptr2)
|
||||
coroutine.yield(exdata2())
|
||||
coroutine.yield(exdata2())
|
||||
end
|
||||
|
||||
exdata2(u64)
|
||||
|
||||
local co = coroutine.create(f)
|
||||
|
||||
local ok, data = coroutine.resume(co)
|
||||
assert(ok)
|
||||
print(tostring(data))
|
||||
|
||||
ok, data = coroutine.resume(co)
|
||||
assert(ok)
|
||||
print(tostring(data))
|
||||
|
||||
exdata2(ptr3)
|
||||
|
||||
ok, data = coroutine.resume(co)
|
||||
assert(ok)
|
||||
print(tostring(data))
|
||||
|
||||
print(tostring(exdata2()))
|
||||
--- jv
|
||||
--- out
|
||||
cdata<void *>: 0xefdeadbeef
|
||||
cdata<void *>: 0xefdeadbef0
|
||||
cdata<void *>: 0xefdeadbef0
|
||||
cdata<void *>: 0xefdeadbeed
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 4: JIT mode (reading)
|
||||
--- lua
|
||||
jit.opt.start("minstitch=100000", "hotloop=2")
|
||||
local assert = assert
|
||||
local exdata2 = require "thread.exdata2"
|
||||
local ffi = require "ffi"
|
||||
local u64 = ffi.new("uintptr_t", 0xefdeaddeadbeefLL)
|
||||
local ptr = ffi.cast("void *", u64)
|
||||
local saved_q
|
||||
exdata2(u64)
|
||||
for i = 1, 10 do
|
||||
local q = exdata2()
|
||||
if saved_q then
|
||||
assert(q == saved_q)
|
||||
end
|
||||
saved_q = q
|
||||
end
|
||||
print(tostring(ptr))
|
||||
print(tostring(saved_q))
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
cdata<void *>: 0xefdeaddeadbeef
|
||||
cdata<void *>: 0xefdeaddeadbeef
|
||||
--- err
|
||||
[TRACE 1 test.lua:9 loop]
|
||||
|
||||
|
||||
|
||||
=== TEST 5: JIT mode (writing)
|
||||
--- lua
|
||||
jit.opt.start("minstitch=100000", "hotloop=2")
|
||||
local assert = assert
|
||||
local exdata2 = require "thread.exdata2"
|
||||
local ffi = require "ffi"
|
||||
local u64 = ffi.new("uintptr_t", 0xefdeaddeadbeefLL)
|
||||
local ptr = ffi.cast("void *", u64)
|
||||
local saved_q
|
||||
for i = 1, 10 do
|
||||
exdata2(u64)
|
||||
local q = exdata2()
|
||||
if saved_q then
|
||||
assert(q == saved_q)
|
||||
end
|
||||
saved_q = q
|
||||
end
|
||||
print(tostring(ptr))
|
||||
print(tostring(saved_q))
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
cdata<void *>: 0xefdeaddeadbeef
|
||||
cdata<void *>: 0xefdeaddeadbeef
|
||||
--- err
|
||||
[TRACE --- test.lua:8 -- trace too short at test.lua:9]
|
||||
|
||||
|
||||
|
||||
=== TEST 6: interpreted - check the number of arguments
|
||||
--- lua
|
||||
jit.off()
|
||||
local assert = assert
|
||||
local select = select
|
||||
local exdata2 = require "thread.exdata2"
|
||||
local ffi = require "ffi"
|
||||
local u64 = ffi.new("uintptr_t", 0xefdeaddeadbeefLL)
|
||||
local ptr = ffi.cast("void *", u64)
|
||||
|
||||
local function nargs(...)
|
||||
return select('#', ...)
|
||||
end
|
||||
print(nargs(exdata2(ptr)))
|
||||
print(nargs(exdata2()))
|
||||
--- jv
|
||||
--- out
|
||||
0
|
||||
1
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 7: JIT mode - check the number of arguments
|
||||
--- lua
|
||||
jit.opt.start("minstitch=100000", "hotloop=2")
|
||||
local assert = assert
|
||||
local select = select
|
||||
local exdata = require "thread.exdata"
|
||||
local exdata2 = require "thread.exdata2"
|
||||
local ffi = require "ffi"
|
||||
local u64 = ffi.new("uintptr_t", 0xefdeaddeadbeefLL)
|
||||
local ptr = ffi.cast("void *", u64)
|
||||
|
||||
local function nargs(...)
|
||||
return select('#', ...)
|
||||
end
|
||||
|
||||
local total = 0
|
||||
for i = 1, 10 do
|
||||
total = total + nargs(exdata2(ptr))
|
||||
end
|
||||
|
||||
print("set: " .. total)
|
||||
|
||||
total = 0
|
||||
for i = 1, 10 do
|
||||
total = total + nargs(exdata2())
|
||||
end
|
||||
|
||||
print("get: " .. total)
|
||||
print(tostring(exdata()))
|
||||
print(tostring(exdata2()))
|
||||
--- jv
|
||||
--- out
|
||||
set: 0
|
||||
get: 10
|
||||
cdata<void *>: NULL
|
||||
cdata<void *>: 0xefdeaddeadbeef
|
||||
--- err
|
||||
[TRACE --- test.lua:15 -- trace too short at test.lua:16]
|
||||
[TRACE 1 test.lua:22 loop]
|
||||
|
||||
|
||||
|
||||
=== TEST 8: interpreted (no ffi initialized)
|
||||
--- lua
|
||||
jit.off()
|
||||
local assert = assert
|
||||
local exdata2 = require "thread.exdata2"
|
||||
local saved_q
|
||||
for i = 1, 5 do
|
||||
local q = exdata2()
|
||||
if saved_q then
|
||||
assert(q == saved_q)
|
||||
end
|
||||
saved_q = q
|
||||
end
|
||||
print(tostring(saved_q))
|
||||
--- jv
|
||||
--- out
|
||||
--- err
|
||||
ffi module not loaded (yet)
|
||||
--- exit: 1
|
||||
|
||||
|
||||
|
||||
=== TEST 9: default value (interpreted)
|
||||
--- lua
|
||||
jit.off()
|
||||
local assert = assert
|
||||
require "ffi"
|
||||
local exdata2 = require "thread.exdata2"
|
||||
local saved_q
|
||||
for i = 1, 5 do
|
||||
local q = exdata2()
|
||||
if saved_q then
|
||||
assert(q == saved_q)
|
||||
end
|
||||
saved_q = q
|
||||
end
|
||||
print(saved_q == nil)
|
||||
print(tostring(saved_q))
|
||||
--- jv
|
||||
--- out
|
||||
true
|
||||
cdata<void *>: NULL
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 10: default value (JIT)
|
||||
--- lua
|
||||
jit.opt.start("minstitch=100000", "hotloop=2")
|
||||
jit.on()
|
||||
local assert = assert
|
||||
require "ffi"
|
||||
local exdata2 = require "thread.exdata2"
|
||||
local saved_q
|
||||
for i = 1, 5 do
|
||||
local q = exdata2()
|
||||
if saved_q then
|
||||
assert(q == saved_q)
|
||||
end
|
||||
saved_q = q
|
||||
end
|
||||
print(saved_q == nil)
|
||||
print(tostring(saved_q))
|
||||
--- jv
|
||||
--- out
|
||||
true
|
||||
cdata<void *>: NULL
|
||||
--- err
|
||||
[TRACE 1 test.lua:7 loop]
|
||||
152
src/deps/src/luajit/t/isarr-interp.t
vendored
152
src/deps/src/luajit/t/isarr-interp.t
vendored
|
|
@ -1,152 +0,0 @@
|
|||
# vim:ft=
|
||||
|
||||
use lib '.';
|
||||
use t::TestLJ;
|
||||
|
||||
plan tests => 3 * blocks();
|
||||
|
||||
run_tests();
|
||||
|
||||
__DATA__
|
||||
|
||||
=== TEST 1: decimal boolean keys
|
||||
--- lua
|
||||
jit.off()
|
||||
local isarray = require "table.isarray"
|
||||
local a
|
||||
local t = { [3] = 3, [5.3] = 4 }
|
||||
for i = 1, 5 do
|
||||
a = isarray(t)
|
||||
end
|
||||
print(type(a), a)
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
boolean false
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 2: discrete boolean keys
|
||||
--- lua
|
||||
jit.off()
|
||||
local isarray = require "table.isarray"
|
||||
local a
|
||||
local t = { [3] = "a", [5] = true }
|
||||
for i = 1, 5 do
|
||||
a = isarray(t)
|
||||
end
|
||||
print(type(a), a)
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
boolean true
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 3: normal arrays
|
||||
--- lua
|
||||
jit.off()
|
||||
local isarray = require "table.isarray"
|
||||
local a
|
||||
local t = { "a", nil, true, 3.14 }
|
||||
for i = 1, 5 do
|
||||
a = isarray(t)
|
||||
end
|
||||
print(type(a), a)
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
boolean true
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 4: empty table
|
||||
--- lua
|
||||
jit.off()
|
||||
local isarray = require "table.isarray"
|
||||
local a
|
||||
local t = {}
|
||||
for i = 1, 5 do
|
||||
a = isarray(t)
|
||||
end
|
||||
print(type(a), a)
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
boolean true
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 5: boolean-like string keys only
|
||||
--- lua
|
||||
jit.off()
|
||||
local isarray = require "table.isarray"
|
||||
local a
|
||||
local t = { ["1"] = 3, ["2"] = 4 }
|
||||
for i = 1, 150 do
|
||||
a = isarray(t)
|
||||
end
|
||||
print(type(a), a)
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
boolean false
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 6: non-boolean-like string keys only
|
||||
--- lua
|
||||
jit.off()
|
||||
local isarray = require "table.isarray"
|
||||
local a
|
||||
local t = { ["dog"] = 3, ["cat"] = 4 }
|
||||
for i = 1, 150 do
|
||||
a = isarray(t)
|
||||
end
|
||||
print(type(a), a)
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
boolean false
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 7: empty hash part
|
||||
--- lua
|
||||
jit.off()
|
||||
local isarray = require "table.isarray"
|
||||
local a
|
||||
local t = require "table.new"(0, 20)
|
||||
for i = 1, 5 do
|
||||
a = isarray(t)
|
||||
end
|
||||
print(type(a), a)
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
boolean true
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 8: mixing int keys and string keys
|
||||
--- lua
|
||||
jit.off()
|
||||
local isarray = require "table.isarray"
|
||||
local a
|
||||
local t = { "dog", "cat", true, ["bird"] = 3 }
|
||||
for i = 1, 5 do
|
||||
a = isarray(t)
|
||||
end
|
||||
print(type(a), a)
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
boolean false
|
||||
--- err
|
||||
180
src/deps/src/luajit/t/isarr-jit.t
vendored
180
src/deps/src/luajit/t/isarr-jit.t
vendored
|
|
@ -1,180 +0,0 @@
|
|||
# vim:ft=
|
||||
|
||||
use lib '.';
|
||||
use t::TestLJ;
|
||||
|
||||
plan tests => 3 * blocks();
|
||||
|
||||
run_tests();
|
||||
|
||||
__DATA__
|
||||
|
||||
=== TEST 1: decimal boolean keys
|
||||
--- lua
|
||||
require "jit.opt".start("hotloop=3")
|
||||
local isarray = require "table.isarray"
|
||||
local a
|
||||
local t = { [3] = 3, [5.3] = 4 }
|
||||
for i = 1, 5 do
|
||||
a = isarray(t)
|
||||
end
|
||||
print(type(a), a)
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
boolean false
|
||||
--- err
|
||||
[TRACE 1 test.lua:5 loop]
|
||||
|
||||
|
||||
|
||||
=== TEST 2: discrete boolean keys
|
||||
--- lua
|
||||
require "jit.opt".start("hotloop=3")
|
||||
local isarray = require "table.isarray"
|
||||
local a
|
||||
local t = { [3] = "a", [5] = true }
|
||||
for i = 1, 5 do
|
||||
a = isarray(t)
|
||||
end
|
||||
print(type(a), a)
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
boolean true
|
||||
--- err
|
||||
[TRACE 1 test.lua:5 loop]
|
||||
|
||||
|
||||
|
||||
=== TEST 3: normal arrays
|
||||
--- lua
|
||||
require "jit.opt".start("hotloop=3")
|
||||
local isarray = require "table.isarray"
|
||||
local a
|
||||
local t = { "a", nil, true, 3.14 }
|
||||
for i = 1, 5 do
|
||||
a = isarray(t)
|
||||
end
|
||||
print(type(a), a)
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
boolean true
|
||||
--- err
|
||||
[TRACE 1 test.lua:5 loop]
|
||||
|
||||
|
||||
|
||||
=== TEST 4: empty table
|
||||
--- lua
|
||||
require "jit.opt".start("hotloop=3")
|
||||
local isarray = require "table.isarray"
|
||||
local a
|
||||
local t = {}
|
||||
for i = 1, 5 do
|
||||
a = isarray(t)
|
||||
end
|
||||
print(type(a), a)
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
boolean true
|
||||
--- err
|
||||
[TRACE 1 test.lua:5 loop]
|
||||
|
||||
|
||||
|
||||
=== TEST 5: boolean-like string keys only
|
||||
--- lua
|
||||
require "jit.opt".start("hotloop=3")
|
||||
local isarray = require "table.isarray"
|
||||
local a
|
||||
local t = { ["1"] = 3, ["2"] = 4 }
|
||||
for i = 1, 150 do
|
||||
a = isarray(t)
|
||||
end
|
||||
print(type(a), a)
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
boolean false
|
||||
--- err
|
||||
[TRACE 1 test.lua:5 loop]
|
||||
|
||||
|
||||
|
||||
=== TEST 6: non-boolean-like string keys only
|
||||
--- lua
|
||||
require "jit.opt".start("hotloop=3")
|
||||
local isarray = require "table.isarray"
|
||||
local a
|
||||
local t = { ["dog"] = 3, ["cat"] = 4 }
|
||||
for i = 1, 150 do
|
||||
a = isarray(t)
|
||||
end
|
||||
print(type(a), a)
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
boolean false
|
||||
--- err
|
||||
[TRACE 1 test.lua:5 loop]
|
||||
|
||||
|
||||
|
||||
=== TEST 7: empty hash part
|
||||
--- lua
|
||||
require "jit.opt".start("hotloop=3")
|
||||
local isarray = require "table.isarray"
|
||||
local a
|
||||
local t = require "table.new"(0, 20)
|
||||
for i = 1, 5 do
|
||||
a = isarray(t)
|
||||
end
|
||||
print(type(a), a)
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
boolean true
|
||||
--- err
|
||||
[TRACE 1 test.lua:5 loop]
|
||||
|
||||
|
||||
|
||||
=== TEST 8: mixing int keys and string keys
|
||||
--- lua
|
||||
require "jit.opt".start("hotloop=3")
|
||||
local isarray = require "table.isarray"
|
||||
local a
|
||||
local t = { "dog", "cat", true, ["bird"] = 3 }
|
||||
for i = 1, 5 do
|
||||
a = isarray(t)
|
||||
end
|
||||
print(type(a), a)
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
boolean false
|
||||
--- err
|
||||
[TRACE 1 test.lua:5 loop]
|
||||
|
||||
|
||||
|
||||
=== TEST 9: last table is an array
|
||||
--- lua
|
||||
require "jit.opt".start("hotloop=3")
|
||||
local isarray = require "table.isarray"
|
||||
local a
|
||||
local t = { "dog", "cat", true, ["bird"] = 3 }
|
||||
local ts = { t, t, t, t, t, {1, 2} }
|
||||
for i = 1, 6 do
|
||||
a = isarray(ts[i])
|
||||
end
|
||||
print(type(a), a)
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
boolean true
|
||||
--- err
|
||||
[TRACE 1 test.lua:6 loop]
|
||||
114
src/deps/src/luajit/t/isempty.t
vendored
114
src/deps/src/luajit/t/isempty.t
vendored
|
|
@ -1,114 +0,0 @@
|
|||
# vim:ft=
|
||||
|
||||
use lib '.';
|
||||
use t::TestLJ;
|
||||
|
||||
plan tests => 3 * blocks();
|
||||
|
||||
run_tests();
|
||||
|
||||
__DATA__
|
||||
|
||||
=== TEST 1: empty tables - interpreted
|
||||
--- lua
|
||||
jit.off()
|
||||
local new_tab = require "table.new"
|
||||
local isempty = require "table.isempty"
|
||||
local list = {
|
||||
{},
|
||||
new_tab(5, 6),
|
||||
{ nil },
|
||||
{ dogs = nil },
|
||||
}
|
||||
for i, t in ipairs(list) do
|
||||
assert(isempty(t))
|
||||
end
|
||||
print("ok")
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
ok
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 2: empty tables - JIT
|
||||
--- lua
|
||||
jit.on()
|
||||
require "jit.opt".start("hotloop=3")
|
||||
local new_tab = require "table.new"
|
||||
local isempty = require "table.isempty"
|
||||
local list = {
|
||||
{},
|
||||
new_tab(5, 6),
|
||||
{ nil },
|
||||
{ dogs = nil },
|
||||
}
|
||||
for i, t in ipairs(list) do
|
||||
for i = 1, 10 do
|
||||
assert(isempty(t))
|
||||
end
|
||||
end
|
||||
print("ok")
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
ok
|
||||
--- err
|
||||
[TRACE 1 test.lua:12 loop]
|
||||
[TRACE 2 test.lua:11 -> 1]
|
||||
|
||||
|
||||
|
||||
=== TEST 3: non-empty tables - interpreted
|
||||
--- lua
|
||||
jit.off()
|
||||
local new_tab = require "table.new"
|
||||
local isempty = require "table.isempty"
|
||||
local list = {
|
||||
{ 3.1 },
|
||||
{ "a", "b" },
|
||||
{ nil, false },
|
||||
{ dogs = 3 },
|
||||
{ dogs = 3, cats = 4 },
|
||||
{ dogs = 3, 5 },
|
||||
}
|
||||
for i, t in ipairs(list) do
|
||||
assert(not isempty(t))
|
||||
end
|
||||
print("ok")
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
ok
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 4: non-empty tables - JIT
|
||||
--- lua
|
||||
jit.on()
|
||||
require "jit.opt".start("hotloop=3")
|
||||
local new_tab = require "table.new"
|
||||
local isempty = require "table.isempty"
|
||||
local list = {
|
||||
{ 3.1 },
|
||||
{ "a", "b" },
|
||||
{ nil, false },
|
||||
{ dogs = 3 },
|
||||
{ dogs = 3, cats = 4 },
|
||||
{ dogs = 3, 5 },
|
||||
}
|
||||
for i, t in ipairs(list) do
|
||||
for i = 1, 10 do
|
||||
assert(not isempty(t))
|
||||
end
|
||||
end
|
||||
print("ok")
|
||||
|
||||
--- jv
|
||||
--- out
|
||||
ok
|
||||
--- err
|
||||
[TRACE 1 test.lua:14 loop]
|
||||
[TRACE 2 test.lua:13 -> 1]
|
||||
105
src/deps/src/luajit/t/iter.t
vendored
105
src/deps/src/luajit/t/iter.t
vendored
|
|
@ -1,105 +0,0 @@
|
|||
# vim: set ss=4 ft= sw=4 et sts=4 ts=4:
|
||||
|
||||
use lib '.';
|
||||
use t::TestLJ;
|
||||
|
||||
plan tests => 3 * blocks();
|
||||
|
||||
run_tests();
|
||||
|
||||
__DATA__
|
||||
|
||||
=== TEST 1: pairs() loop jit
|
||||
--- jv
|
||||
--- lua
|
||||
jit.opt.start("minstitch=1", "hotloop=2")
|
||||
local tb = {}
|
||||
for i = 1, 100 do
|
||||
local s = "a" .. i
|
||||
tb[s] = i
|
||||
end
|
||||
local total = 0
|
||||
for k, v in pairs(tb) do
|
||||
total = total + tb[k]
|
||||
end
|
||||
print("total = " .. total)
|
||||
--- out
|
||||
total = 5050
|
||||
--- err eval
|
||||
qr#\Q[TRACE 1 test.lua:3 loop]
|
||||
[TRACE 2 test.lua:8 loop]
|
||||
\E(\Q[TRACE 3 (2/1) test.lua:8 stitch print]
|
||||
\E)?#ms
|
||||
|
||||
|
||||
=== TEST 2: explicit next() in loops
|
||||
--- jv
|
||||
--- lua
|
||||
jit.opt.start("minstitch=1", "hotloop=2")
|
||||
local tb = {}
|
||||
for i = 1, 100 do
|
||||
local s = "a" .. i
|
||||
tb[s] = i
|
||||
end
|
||||
local function f(tb, k)
|
||||
if not next(tb) then
|
||||
return nil
|
||||
end
|
||||
-- print("k = " .. k)
|
||||
return k, tb["a" .. k]
|
||||
end
|
||||
local total = 0
|
||||
for i = 1, 100 do
|
||||
local k, v = f(tb, i)
|
||||
if not v then
|
||||
break
|
||||
end
|
||||
total = total + v
|
||||
end
|
||||
print("total = " .. total)
|
||||
--- out
|
||||
total = 5050
|
||||
--- err
|
||||
[TRACE 1 test.lua:3 loop]
|
||||
[TRACE 2 test.lua:15 loop]
|
||||
|
||||
|
||||
|
||||
=== TEST 3: custom lua iterator
|
||||
--- jv
|
||||
--- lua
|
||||
jit.opt.start("minstitch=1", "hotloop=2")
|
||||
local tb = {}
|
||||
for i = 1, 100 do
|
||||
local s = "a" .. i
|
||||
tb[s] = i
|
||||
end
|
||||
local iter
|
||||
function iter2(tb, k)
|
||||
if k >= 100 then
|
||||
return nil
|
||||
end
|
||||
return k + 1, tb["a" .. (k + 1)]
|
||||
end
|
||||
|
||||
function iter(tb, k)
|
||||
-- print("tb = " .. tostring(tb))
|
||||
-- print("key = " .. tostring(k))
|
||||
if k == nil then
|
||||
return iter2, tb, 0
|
||||
end
|
||||
error("bad")
|
||||
end
|
||||
local total = 0
|
||||
for k, v in iter(tb) do
|
||||
if not v then
|
||||
print("value is nil for key " .. tostring(k))
|
||||
end
|
||||
total = total + v
|
||||
end
|
||||
print("total = " .. total)
|
||||
--- out
|
||||
total = 5050
|
||||
--- err
|
||||
[TRACE 1 test.lua:3 loop]
|
||||
[TRACE 2 test.lua:24 loop]
|
||||
175
src/deps/src/luajit/t/nkeys.t
vendored
175
src/deps/src/luajit/t/nkeys.t
vendored
|
|
@ -1,175 +0,0 @@
|
|||
# vim: set ss=4 ft= sw=4 et sts=4 ts=4:
|
||||
|
||||
use lib '.';
|
||||
use t::TestLJ;
|
||||
|
||||
plan tests => 3 * blocks();
|
||||
|
||||
run_tests();
|
||||
|
||||
__DATA__
|
||||
|
||||
=== TEST 1: hash table, interpreted
|
||||
--- lua
|
||||
jit.off()
|
||||
local new_tab = require "table.new"
|
||||
local assert = assert
|
||||
local nkeys = require "table.nkeys"
|
||||
print(nkeys(new_tab(0, 4)))
|
||||
print(nkeys({}))
|
||||
print(nkeys({ cats = 4 }))
|
||||
print(nkeys({ dogs = 3, cats = 4 }))
|
||||
print(nkeys({ dogs = nil, cats = 4 }))
|
||||
--- jv
|
||||
--- out
|
||||
0
|
||||
0
|
||||
1
|
||||
2
|
||||
1
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 2: hash table, JIT
|
||||
--- lua
|
||||
jit.on()
|
||||
jit.opt.start("minstitch=100000", "hotloop=2")
|
||||
|
||||
local new_tab = require "table.new"
|
||||
local assert = assert
|
||||
local nkeys = require "table.nkeys"
|
||||
|
||||
local list = {
|
||||
new_tab(0, 4),
|
||||
{},
|
||||
{ cats = 4 },
|
||||
{ dogs = 3, cats = 4 },
|
||||
{ dogs = nil, cats = 4 },
|
||||
}
|
||||
|
||||
for i, t in ipairs(list) do
|
||||
local total = 0
|
||||
for i = 1, 10 do
|
||||
total = total + nkeys(t)
|
||||
end
|
||||
print(total)
|
||||
end
|
||||
--- jv
|
||||
--- out
|
||||
0
|
||||
0
|
||||
10
|
||||
20
|
||||
10
|
||||
--- err
|
||||
[TRACE 1 test.lua:18 loop]
|
||||
[TRACE 2 test.lua:16 -> 1]
|
||||
|
||||
|
||||
|
||||
=== TEST 3: pure arrays, interpreted
|
||||
--- lua
|
||||
jit.off()
|
||||
local new_tab = require "table.new"
|
||||
local assert = assert
|
||||
local nkeys = require "table.nkeys"
|
||||
print(nkeys(new_tab(5, 0)))
|
||||
print(nkeys({}))
|
||||
print(nkeys({ "cats" }))
|
||||
print(nkeys({ "dogs", 3, "cats", 4 }))
|
||||
print(nkeys({ "dogs", nil, "cats", 4 }))
|
||||
--- jv
|
||||
--- out
|
||||
0
|
||||
0
|
||||
1
|
||||
4
|
||||
3
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 4: pure array, JIT
|
||||
--- lua
|
||||
jit.on()
|
||||
jit.opt.start("minstitch=100000", "hotloop=2")
|
||||
|
||||
local new_tab = require "table.new"
|
||||
local assert = assert
|
||||
local nkeys = require "table.nkeys"
|
||||
|
||||
local list = {
|
||||
new_tab(0, 4),
|
||||
{},
|
||||
{ 3 },
|
||||
{ "cats", 4 },
|
||||
{ "dogs", 3, "cats", 4 },
|
||||
{ "dogs", nil, "cats", 4 },
|
||||
}
|
||||
|
||||
for i, t in ipairs(list) do
|
||||
local total = 0
|
||||
for i = 1, 10 do
|
||||
total = total + nkeys(t)
|
||||
end
|
||||
print(total)
|
||||
end
|
||||
--- jv
|
||||
--- out
|
||||
0
|
||||
0
|
||||
10
|
||||
20
|
||||
40
|
||||
30
|
||||
--- err
|
||||
[TRACE 1 test.lua:19 loop]
|
||||
[TRACE 2 test.lua:17 -> 1]
|
||||
|
||||
|
||||
|
||||
=== TEST 5: mixing array and hash table, interpreted
|
||||
--- lua
|
||||
jit.off()
|
||||
local new_tab = require "table.new"
|
||||
local assert = assert
|
||||
local nkeys = require "table.nkeys"
|
||||
print(nkeys({ cats = 4, 5, 6 }))
|
||||
print(nkeys({ nil, "foo", dogs = 3, cats = 4 }))
|
||||
--- jv
|
||||
--- out
|
||||
3
|
||||
3
|
||||
--- err
|
||||
|
||||
|
||||
|
||||
=== TEST 6: mixing array & hash, JIT
|
||||
--- lua
|
||||
jit.on()
|
||||
jit.opt.start("minstitch=100000", "hotloop=2")
|
||||
|
||||
local new_tab = require "table.new"
|
||||
local assert = assert
|
||||
local nkeys = require "table.nkeys"
|
||||
|
||||
local list = {
|
||||
{ cats = 4, 5, 6 },
|
||||
{ nil, "foo", dogs = 3, cats = 4 },
|
||||
}
|
||||
|
||||
for i, t in ipairs(list) do
|
||||
local total = 0
|
||||
for i = 1, 10 do
|
||||
total = total + nkeys(t)
|
||||
end
|
||||
print(total)
|
||||
end
|
||||
--- jv
|
||||
--- out
|
||||
30
|
||||
30
|
||||
--- err
|
||||
[TRACE 1 test.lua:15 loop]
|
||||
[TRACE 2 test.lua:13 -> 1]
|
||||
76
src/deps/src/luajit/t/prngstate.t
vendored
76
src/deps/src/luajit/t/prngstate.t
vendored
|
|
@ -1,76 +0,0 @@
|
|||
# vim: set ss=4 ft= sw=4 et sts=4 ts=4:
|
||||
|
||||
use lib '.';
|
||||
use t::TestLJ;
|
||||
|
||||
plan tests => 3 * blocks();
|
||||
|
||||
run_tests();
|
||||
|
||||
__DATA__
|
||||
|
||||
=== TEST 1: interpreted (sanity)
|
||||
--- lua
|
||||
jit.off()
|
||||
|
||||
function print_array(a)
|
||||
local out = a[1]
|
||||
for i=2,#a do
|
||||
out = out.." "..tostring(a[i])
|
||||
end
|
||||
print(out)
|
||||
end
|
||||
|
||||
jit.prngstate({32})
|
||||
print_array(jit.prngstate({56,1,7}))
|
||||
print_array(jit.prngstate({423,432,432,423,56,867,35,5347}))
|
||||
print_array(jit.prngstate())
|
||||
print_array(jit.prngstate({423,432,432,423,56,867,35,5347,452}))
|
||||
--- out
|
||||
32 0 0 0 0 0 0 0
|
||||
56 1 7 0 0 0 0 0
|
||||
423 432 432 423 56 867 35 5347
|
||||
--- jv
|
||||
--- err
|
||||
bad argument #1 to 'prngstate' (PRNG state must be an array with up to 8 integers or an integer)
|
||||
--- exit: 1
|
||||
|
||||
|
||||
|
||||
=== TEST 2: JIT (set)
|
||||
--- lua
|
||||
jit.opt.start("minstitch=100000", "hotloop=2")
|
||||
|
||||
for i = 1, 50 do
|
||||
jit.prngstate({i})
|
||||
end
|
||||
print('ok')
|
||||
--- out
|
||||
ok
|
||||
--- jv
|
||||
--- err eval
|
||||
qr/trace too short at test.lua:4/
|
||||
|
||||
|
||||
|
||||
=== TEST 3: PRNG state can be an integer
|
||||
--- lua
|
||||
function print_array(a)
|
||||
local out = a[1]
|
||||
for i=2,#a do
|
||||
out = out.." "..tostring(a[i])
|
||||
end
|
||||
print(out)
|
||||
end
|
||||
|
||||
jit.prngstate(0)
|
||||
print_array(jit.prngstate(30))
|
||||
print_array(jit.prngstate(32))
|
||||
print_array(jit.prngstate(4294967296)) -- 2 ** 32
|
||||
--- out
|
||||
0 0 0 0 0 0 0 0
|
||||
30 0 0 0 0 0 0 0
|
||||
--- jv
|
||||
--- err
|
||||
bad argument #1 to 'prngstate' (PRNG state must be an array with up to 8 integers or an integer)
|
||||
--- exit: 1
|
||||
Loading…
Reference in a new issue