aboutsummaryrefslogtreecommitdiff
path: root/tests/ldebug.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ldebug.js')
-rw-r--r--tests/ldebug.js94
1 files changed, 92 insertions, 2 deletions
diff --git a/tests/ldebug.js b/tests/ldebug.js
index a6fa55f..b627cf7 100644
--- a/tests/ldebug.js
+++ b/tests/ldebug.js
@@ -21,7 +21,7 @@ test('luaG_typeerror', function (t) {
return #a
`, L;
- t.plan(1);
+ t.plan(2);
t.doesNotThrow(function () {
@@ -38,5 +38,95 @@ test('luaG_typeerror', function (t) {
}, "JS Lua program ran without error");
- console.log(lapi.lua_tostring(L, -1));
+ t.ok(
+ lapi.lua_tostring(L, -1).endsWith("attempt to get length of a boolean value (local 'a')"),
+ "Correct error was thrown"
+ )
+});
+
+
+test('luaG_typeerror', function (t) {
+ let luaCode = `
+ local a = true
+ return a.yo
+ `, L;
+
+ t.plan(2);
+
+ t.doesNotThrow(function () {
+
+ let bc = toByteCode(luaCode).dataView;
+
+ L = lauxlib.luaL_newstate();
+
+ linit.luaL_openlibs(L);
+
+ lapi.lua_load(L, bc, "test-typeerror");
+
+ lapi.lua_pcall(L, 0, -1, 0);
+
+ }, "JS Lua program ran without error");
+
+ t.ok(
+ lapi.lua_tostring(L, -1).endsWith("attempt to index a boolean value (local 'a')"),
+ "Correct error was thrown"
+ )
+});
+
+
+test('luaG_typeerror', function (t) {
+ let luaCode = `
+ local a = true
+ return a.yo
+ `, L;
+
+ t.plan(2);
+
+ t.doesNotThrow(function () {
+
+ let bc = toByteCode(luaCode).dataView;
+
+ L = lauxlib.luaL_newstate();
+
+ linit.luaL_openlibs(L);
+
+ lapi.lua_load(L, bc, "test-typeerror");
+
+ lapi.lua_pcall(L, 0, -1, 0);
+
+ }, "JS Lua program ran without error");
+
+ t.ok(
+ lapi.lua_tostring(L, -1).endsWith("attempt to index a boolean value (local 'a')"),
+ "Correct error was thrown"
+ )
+});
+
+
+test('luaG_typeerror', function (t) {
+ let luaCode = `
+ local a = true
+ a.yo = 1
+ `, L;
+
+ t.plan(2);
+
+ t.doesNotThrow(function () {
+
+ let bc = toByteCode(luaCode).dataView;
+
+ L = lauxlib.luaL_newstate();
+
+ linit.luaL_openlibs(L);
+
+ lapi.lua_load(L, bc, "test-typeerror");
+
+ lapi.lua_pcall(L, 0, -1, 0);
+
+ }, "JS Lua program ran without error");
+
+ t.ok(
+ lapi.lua_tostring(L, -1).endsWith("attempt to index a boolean value (local 'a')"),
+ "Correct error was thrown"
+ )
}); \ No newline at end of file