aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBenoit Giannangeli <benoit.giannangeli@boursorama.fr>2017-02-17 09:27:51 +0100
committerBenoit Giannangeli <benoit.giannangeli@boursorama.fr>2017-02-17 09:27:51 +0100
commit50aa5b5029165be03d0cfb34e7d664795dd80898 (patch)
treedc42e1a73ac367fef1a88c3dd0502a0879eebea3 /tests
parent4eea48935f2e0ea1267d314f2900af2a1a4b8b02 (diff)
downloadfengari-50aa5b5029165be03d0cfb34e7d664795dd80898.tar.gz
fengari-50aa5b5029165be03d0cfb34e7d664795dd80898.tar.bz2
fengari-50aa5b5029165be03d0cfb34e7d664795dd80898.zip
More accurate state and closure init
Diffstat (limited to 'tests')
-rw-r--r--tests/ltm.js192
-rw-r--r--tests/lvm.js60
-rw-r--r--tests/tests.js8
3 files changed, 131 insertions, 129 deletions
diff --git a/tests/ltm.js b/tests/ltm.js
index e365a2a..9a3dee5 100644
--- a/tests/ltm.js
+++ b/tests/ltm.js
@@ -5,7 +5,7 @@ const test = require('tape');
const beautify = require('js-beautify').js_beautify;
const VM = require("../src/lvm.js");
-const ldo = require("../src/ldo.js");
+const lapi = require("../src/lapi.js");
const OC = require('../src/lopcodes.js');
const getState = require("./tests.js").getState;
@@ -23,7 +23,7 @@ test('__index, __newindex: with actual table', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -55,7 +55,7 @@ test('__index: with non table', function (t) {
}, "Bytecode parsed without errors");
t.throws(function () {
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed with expected error");
});
@@ -75,7 +75,7 @@ test('__newindex: with non table', function (t) {
}, "Bytecode parsed without errors");
t.throws(function () {
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed with expected error");
});
@@ -121,16 +121,16 @@ test('__index function in metatable', function (t) {
// 3 [4] RETURN 0 1
t.strictEqual(
- OC.OpCodes[L.stack[0].p.code[4].opcode],
+ OC.OpCodes[L.stack[1].p.code[4].opcode],
"OP_GETTABLE",
"Correct opcode marked as breakpoint"
);
t.comment("We set a breakpoint")
- L.stack[0].p.code[4].breakpoint = true;
+ L.stack[1].p.code[4].breakpoint = true;
t.doesNotThrow(function () {
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "First part of the program executed without errors");
t.strictEqual(
@@ -141,20 +141,20 @@ test('__index function in metatable', function (t) {
t.comment("We unset the breakpoint and correct pcOff");
L.ci.pcOff--;
- L.stack[0].p.code[4].breakpoint = false;
+ L.stack[1].p.code[4].breakpoint = false;
t.ok(
- L.stack[2].ttistable() && !L.stack[2].value.hash.get("__index"),
- "t is on stack at 2"
+ L.stack[3].ttistable() && !L.stack[3].value.hash.get("__index"),
+ "t is on stack at 3"
);
t.ok(
- L.stack[1].ttistable() && L.stack[1].value.hash.get("__index"),
- "mt is on stack at 1"
+ L.stack[2].ttistable() && L.stack[2].value.hash.get("__index"),
+ "mt is on stack at 2"
);
t.comment("We manually set t's metatable to mt");
- L.stack[2].metatable = L.stack[1];
+ L.stack[3].metatable = L.stack[2];
t.doesNotThrow(function () {
VM.luaV_execute(L);
@@ -212,16 +212,16 @@ test('__newindex function in metatable', function (t) {
// 3 [4] RETURN 0 1
t.strictEqual(
- OC.OpCodes[L.stack[0].p.code[4].opcode],
+ OC.OpCodes[L.stack[1].p.code[4].opcode],
"OP_SETTABLE",
"Correct opcode marked as breakpoint"
);
t.comment("We set a breakpoint")
- L.stack[0].p.code[4].breakpoint = true;
+ L.stack[1].p.code[4].breakpoint = true;
t.doesNotThrow(function () {
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "First part of the program executed without errors");
t.strictEqual(
@@ -232,20 +232,20 @@ test('__newindex function in metatable', function (t) {
t.comment("We unset the breakpoint and correct pcOff");
L.ci.pcOff--;
- L.stack[0].p.code[4].breakpoint = false;
+ L.stack[1].p.code[4].breakpoint = false;
t.ok(
- L.stack[2].ttistable() && !L.stack[2].value.hash.get("__newindex"),
- "t is on stack at 2"
+ L.stack[3].ttistable() && !L.stack[3].value.hash.get("__newindex"),
+ "t is on stack at 3"
);
t.ok(
- L.stack[1].ttistable() && L.stack[1].value.hash.get("__newindex"),
- "mt is on stack at 1"
+ L.stack[2].ttistable() && L.stack[2].value.hash.get("__newindex"),
+ "mt is on stack at 2"
);
t.comment("We manually set t's metatable to mt");
- L.stack[2].metatable = L.stack[1];
+ L.stack[3].metatable = L.stack[2];
t.doesNotThrow(function () {
VM.luaV_execute(L);
@@ -297,16 +297,16 @@ test('__index table in metatable', function (t) {
// 8 [9] RETURN 0 1
t.strictEqual(
- OC.OpCodes[L.stack[0].p.code[5].opcode],
+ OC.OpCodes[L.stack[1].p.code[5].opcode],
"OP_GETTABLE",
"Correct opcode marked as breakpoint"
);
t.comment("We set a breakpoint")
- L.stack[0].p.code[5].breakpoint = true;
+ L.stack[1].p.code[5].breakpoint = true;
t.doesNotThrow(function () {
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "First part of the program executed without errors");
t.strictEqual(
@@ -317,20 +317,20 @@ test('__index table in metatable', function (t) {
t.comment("We unset the breakpoint and correct pcOff");
L.ci.pcOff--;
- L.stack[0].p.code[5].breakpoint = false;
+ L.stack[1].p.code[5].breakpoint = false;
t.ok(
- L.stack[3].ttistable() && !L.stack[3].value.hash.get("__index"),
- "t is on stack at 3"
+ L.stack[4].ttistable() && !L.stack[4].value.hash.get("__index"),
+ "t is on stack at 4"
);
t.ok(
- L.stack[2].ttistable() && L.stack[2].value.hash.get("__index"),
- "mt is on stack at 2"
+ L.stack[3].ttistable() && L.stack[3].value.hash.get("__index"),
+ "mt is on stack at 3"
);
t.comment("We manually set t's metatable to mt");
- L.stack[3].metatable = L.stack[2];
+ L.stack[4].metatable = L.stack[3];
t.doesNotThrow(function () {
VM.luaV_execute(L);
@@ -386,16 +386,16 @@ test('__newindex table in metatable', function (t) {
// 10 [15] RETURN 0 1
t.strictEqual(
- OC.OpCodes[L.stack[0].p.code[5].opcode],
+ OC.OpCodes[L.stack[1].p.code[5].opcode],
"OP_SETTABLE",
"Correct opcode marked as breakpoint"
);
t.comment("We set a breakpoint")
- L.stack[0].p.code[5].breakpoint = true;
+ L.stack[1].p.code[5].breakpoint = true;
t.doesNotThrow(function () {
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "First part of the program executed without errors");
t.strictEqual(
@@ -406,20 +406,20 @@ test('__newindex table in metatable', function (t) {
t.comment("We unset the breakpoint and correct pcOff");
L.ci.pcOff--;
- L.stack[0].p.code[5].breakpoint = false;
+ L.stack[1].p.code[5].breakpoint = false;
t.ok(
- L.stack[3].ttistable() && !L.stack[3].value.hash.get("__newindex"),
- "t is on stack at 3"
+ L.stack[4].ttistable() && !L.stack[4].value.hash.get("__newindex"),
+ "t is on stack at 4"
);
t.ok(
- L.stack[2].ttistable() && L.stack[2].value.hash.get("__newindex"),
- "mt is on stack at 2"
+ L.stack[3].ttistable() && L.stack[3].value.hash.get("__newindex"),
+ "mt is on stack at 3"
);
t.comment("We manually set t's metatable to mt");
- L.stack[3].metatable = L.stack[2];
+ L.stack[4].metatable = L.stack[3];
t.doesNotThrow(function () {
VM.luaV_execute(L);
@@ -495,39 +495,39 @@ test('__index table with own metatable', function (t) {
// 2 [3] RETURN 2 2
// 3 [4] RETURN 0 1
- L.stack[0].p.code[5].breakpoint = true;
- L.stack[0].p.code[7].breakpoint = true;
- L.stack[0].p.code[8].breakpoint = true;
+ L.stack[1].p.code[5].breakpoint = true;
+ L.stack[1].p.code[7].breakpoint = true;
+ L.stack[1].p.code[8].breakpoint = true;
t.doesNotThrow(function () {
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "First part of the program executed without errors");
L.ci.pcOff--;
- L.stack[0].p.code[5].breakpoint = false;
+ L.stack[1].p.code[5].breakpoint = false;
t.comment("We manually set mmt's metatable to mmmt");
- L.stack[2].metatable = L.stack[1];
+ L.stack[3].metatable = L.stack[2];
t.doesNotThrow(function () {
VM.luaV_execute(L);
}, "Second part of the program executed without errors");
L.ci.pcOff--;
- L.stack[0].p.code[7].breakpoint = false;
+ L.stack[1].p.code[7].breakpoint = false;
t.comment("We manually set mt's metatable to mmt");
- L.stack[3].metatable = L.stack[2];
+ L.stack[4].metatable = L.stack[3];
t.doesNotThrow(function () {
VM.luaV_execute(L);
}, "Third part of the program executed without errors");
L.ci.pcOff--;
- L.stack[0].p.code[8].breakpoint = false;
+ L.stack[1].p.code[8].breakpoint = false;
t.comment("We manually set t's metatable to mt");
- L.stack[4].metatable = L.stack[3];
+ L.stack[4].metatable = L.stack[4];
t.doesNotThrow(function () {
VM.luaV_execute(L);
@@ -600,39 +600,39 @@ test('__newindex table with own metatable', function (t) {
// 1 [5] SETUPVAL 2 0 ; up
// 2 [6] RETURN 0 1
- L.stack[0].p.code[5].breakpoint = true;
- L.stack[0].p.code[7].breakpoint = true;
- L.stack[0].p.code[8].breakpoint = true;
+ L.stack[1].p.code[5].breakpoint = true;
+ L.stack[1].p.code[7].breakpoint = true;
+ L.stack[1].p.code[8].breakpoint = true;
t.doesNotThrow(function () {
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "First part of the program executed without errors");
L.ci.pcOff--;
- L.stack[0].p.code[5].breakpoint = false;
+ L.stack[1].p.code[5].breakpoint = false;
t.comment("We manually set mmt's metatable to mmmt");
- L.stack[2].metatable = L.stack[1];
+ L.stack[4].metatable = L.stack[3];
t.doesNotThrow(function () {
VM.luaV_execute(L);
}, "Second part of the program executed without errors");
L.ci.pcOff--;
- L.stack[0].p.code[7].breakpoint = false;
+ L.stack[1].p.code[7].breakpoint = false;
t.comment("We manually set mt's metatable to mmt");
- L.stack[3].metatable = L.stack[2];
+ L.stack[5].metatable = L.stack[4];
t.doesNotThrow(function () {
VM.luaV_execute(L);
}, "Third part of the program executed without errors");
L.ci.pcOff--;
- L.stack[0].p.code[8].breakpoint = false;
+ L.stack[1].p.code[8].breakpoint = false;
t.comment("We manually set t's metatable to mt");
- L.stack[4].metatable = L.stack[3];
+ L.stack[6].metatable = L.stack[5];
t.doesNotThrow(function () {
VM.luaV_execute(L);
@@ -779,17 +779,17 @@ test('binary __xxx functions in metatable', function (t) {
//
// ...
- L.stack[0].p.code[26].breakpoint = true;
+ L.stack[1].p.code[26].breakpoint = true;
t.doesNotThrow(function () {
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "First part of the program executed without errors");
L.ci.pcOff--;
- L.stack[0].p.code[26].breakpoint = false;
+ L.stack[1].p.code[26].breakpoint = false;
t.comment("We manually set t's metatable to mt");
- L.stack[2].metatable = L.stack[1];
+ L.stack[3].metatable = L.stack[2];
t.doesNotThrow(function () {
VM.luaV_execute(L);
@@ -855,17 +855,17 @@ test('__eq', function (t) {
L = getState(luaCode);
}, "Bytecode parsed without errors");
- L.stack[0].p.code[5].breakpoint = true;
+ L.stack[1].p.code[5].breakpoint = true;
t.doesNotThrow(function () {
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "First part of the program executed without errors");
L.ci.pcOff--;
- L.stack[0].p.code[5].breakpoint = false;
+ L.stack[1].p.code[5].breakpoint = false;
t.comment("We manually set t's metatable to mt");
- L.stack[2].metatable = L.stack[1];
+ L.stack[3].metatable = L.stack[2];
t.doesNotThrow(function () {
VM.luaV_execute(L);
@@ -918,17 +918,17 @@ test('__lt', function (t) {
L = getState(luaCode);
}, "Bytecode parsed without errors");
- L.stack[0].p.code[5].breakpoint = true;
+ L.stack[1].p.code[5].breakpoint = true;
t.doesNotThrow(function () {
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "First part of the program executed without errors");
L.ci.pcOff--;
- L.stack[0].p.code[5].breakpoint = false;
+ L.stack[1].p.code[5].breakpoint = false;
t.comment("We manually set t's metatable to mt");
- L.stack[2].metatable = L.stack[1];
+ L.stack[3].metatable = L.stack[2];
t.doesNotThrow(function () {
VM.luaV_execute(L);
@@ -981,17 +981,17 @@ test('__le', function (t) {
L = getState(luaCode);
}, "Bytecode parsed without errors");
- L.stack[0].p.code[5].breakpoint = true;
+ L.stack[1].p.code[5].breakpoint = true;
t.doesNotThrow(function () {
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "First part of the program executed without errors");
L.ci.pcOff--;
- L.stack[0].p.code[5].breakpoint = false;
+ L.stack[1].p.code[5].breakpoint = false;
t.comment("We manually set t's metatable to mt");
- L.stack[2].metatable = L.stack[1];
+ L.stack[3].metatable = L.stack[2];
t.doesNotThrow(function () {
VM.luaV_execute(L);
@@ -1044,17 +1044,17 @@ test('__le that uses __lt', function (t) {
L = getState(luaCode);
}, "Bytecode parsed without errors");
- L.stack[0].p.code[5].breakpoint = true;
+ L.stack[1].p.code[5].breakpoint = true;
t.doesNotThrow(function () {
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "First part of the program executed without errors");
L.ci.pcOff--;
- L.stack[0].p.code[5].breakpoint = false;
+ L.stack[1].p.code[5].breakpoint = false;
t.comment("We manually set t's metatable to mt");
- L.stack[2].metatable = L.stack[1];
+ L.stack[3].metatable = L.stack[2];
t.doesNotThrow(function () {
VM.luaV_execute(L);
@@ -1110,17 +1110,17 @@ test('__unm, __bnot', function (t) {
L = getState(luaCode);
}, "Bytecode parsed without errors");
- L.stack[0].p.code[6].breakpoint = true;
+ L.stack[1].p.code[6].breakpoint = true;
t.doesNotThrow(function () {
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "First part of the program executed without errors");
L.ci.pcOff--;
- L.stack[0].p.code[6].breakpoint = false;
+ L.stack[1].p.code[6].breakpoint = false;
t.comment("We manually set t's metatable to mt");
- L.stack[2].metatable = L.stack[1];
+ L.stack[3].metatable = L.stack[2];
t.doesNotThrow(function () {
VM.luaV_execute(L);
@@ -1175,17 +1175,17 @@ test('__len', function (t) {
L = getState(luaCode);
}, "Bytecode parsed without errors");
- L.stack[0].p.code[4].breakpoint = true;
+ L.stack[1].p.code[4].breakpoint = true;
t.doesNotThrow(function () {
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "First part of the program executed without errors");
L.ci.pcOff--;
- L.stack[0].p.code[4].breakpoint = false;
+ L.stack[1].p.code[4].breakpoint = false;
t.comment("We manually set t's metatable to mt");
- L.stack[2].metatable = L.stack[1];
+ L.stack[3].metatable = L.stack[2];
t.doesNotThrow(function () {
VM.luaV_execute(L);
@@ -1236,17 +1236,17 @@ test('__concat', function (t) {
L = getState(luaCode);
}, "Bytecode parsed without errors");
- L.stack[0].p.code[6].breakpoint = true;
+ L.stack[1].p.code[6].breakpoint = true;
t.doesNotThrow(function () {
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "First part of the program executed without errors");
L.ci.pcOff--;
- L.stack[0].p.code[6].breakpoint = false;
+ L.stack[1].p.code[6].breakpoint = false;
t.comment("We manually set t's metatable to mt");
- L.stack[2].metatable = L.stack[1];
+ L.stack[3].metatable = L.stack[2];
t.doesNotThrow(function () {
VM.luaV_execute(L);
@@ -1296,17 +1296,17 @@ test('__call', function (t) {
L = getState(luaCode);
}, "Bytecode parsed without errors");
- L.stack[0].p.code[7].breakpoint = true;
+ L.stack[1].p.code[7].breakpoint = true;
t.doesNotThrow(function () {
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "First part of the program executed without errors");
L.ci.pcOff--;
- L.stack[0].p.code[7].breakpoint = false;
+ L.stack[1].p.code[7].breakpoint = false;
t.comment("We manually set t's metatable to mt");
- L.stack[2].metatable = L.stack[1];
+ L.stack[3].metatable = L.stack[2];
t.doesNotThrow(function () {
VM.luaV_execute(L);
diff --git a/tests/lvm.js b/tests/lvm.js
index ac62f20..273002a 100644
--- a/tests/lvm.js
+++ b/tests/lvm.js
@@ -6,7 +6,7 @@ const beautify = require('js-beautify').js_beautify;
const lua_State = require("../src/lstate.js").lua_State;
const VM = require("../src/lvm.js");
-const ldo = require("../src/ldo.js");
+const lapi = require("../src/lapi.js");
const Table = require("../src/lobject.js").Table;;
const getState = require("./tests.js").getState;
@@ -23,7 +23,7 @@ test('LOADK, RETURN', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -47,7 +47,7 @@ test('MOV', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -70,7 +70,7 @@ test('Binary op', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.deepEqual(
@@ -94,7 +94,7 @@ test('Unary op, LOADBOOL', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.deepEqual(
@@ -117,7 +117,7 @@ test('NEWTABLE', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.ok(
@@ -144,7 +144,7 @@ test('CALL', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -176,7 +176,7 @@ test('Multiple return', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.deepEqual(
@@ -202,7 +202,7 @@ test('TAILCALL', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -228,7 +228,7 @@ test('VARARG', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.deepEqual(
@@ -252,7 +252,7 @@ test('LE, JMP', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -276,7 +276,7 @@ test('LT', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -300,7 +300,7 @@ test('EQ', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -325,7 +325,7 @@ test('TESTSET (and)', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -350,7 +350,7 @@ test('TESTSET (or)', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -379,7 +379,7 @@ test('TEST (true)', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -408,7 +408,7 @@ test('TEST (false)', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -436,7 +436,7 @@ test('FORPREP, FORLOOP (int)', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -463,7 +463,7 @@ test('FORPREP, FORLOOP (float)', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -490,7 +490,7 @@ test('SETTABLE, GETTABLE', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -526,7 +526,7 @@ test('SETUPVAL, GETUPVAL', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -553,7 +553,7 @@ test('SETTABUP, GETTABUP', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -588,7 +588,7 @@ test('SELF', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -612,7 +612,7 @@ test('SETLIST', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.deepEqual(
@@ -640,7 +640,7 @@ test('Variable SETLIST', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.deepEqual(
@@ -664,7 +664,7 @@ test('Long SETLIST', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.deepEqual(
@@ -688,7 +688,7 @@ test('Long SETLIST', function (t) {
//
// // t.doesNotThrow(function () {
// L = getState(luaCode);
-// ldo.luaD_call(L, 0, -1);
+// lapi.lua_call(L, 0, -1);
// // }, "Program executed without errors");
//
// t.deepEqual(
@@ -728,7 +728,7 @@ test('TFORCALL, TFORLOOP', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -754,7 +754,7 @@ test('LEN', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
@@ -788,7 +788,7 @@ test('CONCAT', function (t) {
t.doesNotThrow(function () {
L = getState(luaCode);
- ldo.luaD_call(L, 0, -1);
+ lapi.lua_call(L, 0, -1);
}, "Program executed without errors");
t.strictEqual(
diff --git a/tests/tests.js b/tests/tests.js
index 02dac80..5a1b023 100644
--- a/tests/tests.js
+++ b/tests/tests.js
@@ -7,7 +7,7 @@ const tmp = require('tmp');
const DataView = require('buffer-dataview');
const BytecodeParser = require("../src/lundump.js");
-const lua_State = require("../src/lstate.js").lua_State;
+const lauxlib = require("../src/lauxlib.js");
const VM = require("../src/lvm.js");
const toByteCode = function (luaCode) {
@@ -34,10 +34,12 @@ const getState = function(luaCode) {
dv = bc.dataView,
bcl = bc.bclist;
+ let L = lauxlib.luaL_newstate();
+
let p = new BytecodeParser(dv);
- let cl = p.luaU_undump();
+ let cl = p.luaU_undump(L);
- return new lua_State(cl);
+ return L;
};
module.exports = {