From 858fc960e1f70d22c315f0d598e500f87ddcaf8c Mon Sep 17 00:00:00 2001 From: daurnimator Date: Sun, 21 May 2017 21:28:48 +1000 Subject: tests/test-suite/attrib.js: Now passes --- README.md | 2 +- tests/test-suite/attrib.js | 77 +++++++++++++++++++++++++++++++++++ tests/test-suite/inprogress/attrib.js | 77 ----------------------------------- 3 files changed, 78 insertions(+), 78 deletions(-) create mode 100644 tests/test-suite/attrib.js delete mode 100644 tests/test-suite/inprogress/attrib.js diff --git a/README.md b/README.md index 3a6fba5..e0e4686 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ IRC: #fengari on freenode - [x] C API - [x] Auxiliary library - [ ] Run [Lua test suite](https://github.com/lua/tests) + - [x] `attrib.lua` - [x] `bitwise.lua` (16/16) - [x] `calls.lua` (32/32) - [x] `closure.lua` (16/16) @@ -72,7 +73,6 @@ IRC: #fengari on freenode - [ ] `tpack.lua` (20/32) - [ ] `utf8.lua` (14/20) - [ ] `api.lua` - - [ ] `attrib.lua` - [ ] `big.lua` - [ ] `code.lua` - [ ] `db.lua` diff --git a/tests/test-suite/attrib.js b/tests/test-suite/attrib.js new file mode 100644 index 0000000..ca23d26 --- /dev/null +++ b/tests/test-suite/attrib.js @@ -0,0 +1,77 @@ +"use strict"; + +const test = require('tape'); + +global.WEB = false; + +const lua = require('../../src/lua.js'); +const lauxlib = require('../../src/lauxlib.js'); +const lualib = require('../../src/lualib.js'); + + +test("[test-suite] attrib: testing require", function (t) { + let luaCode = ` + assert(require"string" == string) + assert(require"math" == math) + assert(require"table" == table) + assert(require"io" == io) + assert(require"os" == os) + assert(require"coroutine" == coroutine) + + assert(type(package.path) == "string") + assert(type(package.cpath) == "string") + assert(type(package.loaded) == "table") + assert(type(package.preload) == "table") + + assert(type(package.config) == "string") + print("package config: "..string.gsub(package.config, "\\n", "|")) + + do + -- create a path with 'max' templates, + -- each with 1-10 repetitions of '?' + local max = _soft and 100 or 2000 + local t = {} + for i = 1,max do t[i] = string.rep("?", i%10 + 1) end + t[#t + 1] = ";" -- empty template + local path = table.concat(t, ";") + -- use that path in a search + local s, err = package.searchpath("xuxu", path) + -- search fails; check that message has an occurence of + -- '??????????' with ? replaced by xuxu and at least 'max' lines + assert(not s and + string.find(err, string.rep("xuxu", 10)) and + #string.gsub(err, "[^\\n]", "") >= max) + -- path with one very long template + local path = string.rep("?", max) + local s, err = package.searchpath("xuxu", path) + assert(not s and string.find(err, string.rep('xuxu', max))) + end + + do + local oldpath = package.path + package.path = {} + local s, err = pcall(require, "no-such-file") + assert(not s and string.find(err, "package.path")) + package.path = oldpath + end + `, L; + + t.plan(2); + + t.doesNotThrow(function () { + + L = lauxlib.luaL_newstate(); + + lualib.luaL_openlibs(L); + + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); + + }, "Lua program loaded without error"); + + t.doesNotThrow(function () { + + lua.lua_call(L, 0, -1); + + }, "Lua program ran without error"); + +}); diff --git a/tests/test-suite/inprogress/attrib.js b/tests/test-suite/inprogress/attrib.js deleted file mode 100644 index b5926b7..0000000 --- a/tests/test-suite/inprogress/attrib.js +++ /dev/null @@ -1,77 +0,0 @@ -"use strict"; - -const test = require('tape'); - -global.WEB = false; - -const lua = require('../../../src/lua.js'); -const lauxlib = require('../../../src/lauxlib.js'); -const lualib = require('../../../src/lualib.js'); - - -test("[test-suite] attrib: testing require", function (t) { - let luaCode = ` - assert(require"string" == string) - assert(require"math" == math) - assert(require"table" == table) - assert(require"io" == io) - assert(require"os" == os) - assert(require"coroutine" == coroutine) - - assert(type(package.path) == "string") - assert(type(package.cpath) == "string") - assert(type(package.loaded) == "table") - assert(type(package.preload) == "table") - - assert(type(package.config) == "string") - print("package config: "..string.gsub(package.config, "\\n", "|")) - - do - -- create a path with 'max' templates, - -- each with 1-10 repetitions of '?' - local max = _soft and 100 or 2000 - local t = {} - for i = 1,max do t[i] = string.rep("?", i%10 + 1) end - t[#t + 1] = ";" -- empty template - local path = table.concat(t, ";") - -- use that path in a search - local s, err = package.searchpath("xuxu", path) - -- search fails; check that message has an occurence of - -- '??????????' with ? replaced by xuxu and at least 'max' lines - assert(not s and - string.find(err, string.rep("xuxu", 10)) and - #string.gsub(err, "[^\\n]", "") >= max) - -- path with one very long template - local path = string.rep("?", max) - local s, err = package.searchpath("xuxu", path) - assert(not s and string.find(err, string.rep('xuxu', max))) - end - - do - local oldpath = package.path - package.path = {} - local s, err = pcall(require, "no-such-file") - assert(not s and string.find(err, "package.path")) - package.path = oldpath - end - `, L; - - t.plan(2); - - t.doesNotThrow(function () { - - L = lauxlib.luaL_newstate(); - - lualib.luaL_openlibs(L); - - lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); - - }, "Lua program loaded without error"); - - t.doesNotThrow(function () { - - lua.lua_call(L, 0, -1); - - }, "Lua program ran without error"); - -}); -- cgit v1.2.3-54-g00ecf