mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
68 lines
1.8 KiB
Lua
68 lines
1.8 KiB
Lua
--
|
|
-- test for load_extension
|
|
--
|
|
-- before running this script, you must compile extension-functions.c
|
|
-- e.g., in directory extras:
|
|
-- gcc -fno-common -dynamiclib extension-functions.c -o libsqlitefunctions.dylib
|
|
--
|
|
-- then run this script from the top level directory: lua test/test-dyld.lua
|
|
|
|
local sqlite3 = require "lsqlite3"
|
|
|
|
local os = os
|
|
|
|
local lunit = require "lunitx"
|
|
|
|
local tests_sqlite3
|
|
|
|
if _VERSION >= 'Lua 5.2' then
|
|
|
|
tests_sqlite3 = lunit.module('tests-sqlite3','seeall')
|
|
_ENV = tests_sqlite3
|
|
|
|
else
|
|
|
|
module('tests_sqlite3', lunit.testcase, package.seeall)
|
|
tests_sqlite3 = _M
|
|
|
|
end
|
|
|
|
-- compat
|
|
|
|
function lunit_wrap (name, fcn)
|
|
tests_sqlite3['test_o_'..name] = fcn
|
|
end
|
|
|
|
function lunit_TestCase (name)
|
|
return lunit.module(name,'seeall')
|
|
end
|
|
|
|
local db_dyld = lunit_TestCase("Load Extension")
|
|
|
|
function db_dyld.setup()
|
|
db_dyld.db = assert( sqlite3.open_memory() )
|
|
assert_equal( sqlite3.OK, db_dyld.db:exec("CREATE TABLE test (id, name)") )
|
|
assert_equal( sqlite3.OK, db_dyld.db:exec("INSERT INTO test VALUES (1, 'Hello World')") )
|
|
assert_equal( sqlite3.OK, db_dyld.db:exec("INSERT INTO test VALUES (2, 'Hello Lua')") )
|
|
assert_equal( sqlite3.OK, db_dyld.db:exec("INSERT INTO test VALUES (3, 'Hello sqlite3')") )
|
|
end
|
|
|
|
function db_dyld.teardown()
|
|
assert( db_dyld.db:close() )
|
|
end
|
|
|
|
function db_dyld.test()
|
|
local db = db_dyld.db
|
|
assert_function( db.load_extension )
|
|
assert_true( db:load_extension "extras/libsqlitefunctions" )
|
|
for row in db:nrows("SELECT log10(id) as val FROM test WHERE name='Hello World'") do
|
|
assert_equal (row.val, 0.0)
|
|
end
|
|
for row in db:nrows("SELECT reverse(name) as val FROM test WHERE id = 2") do
|
|
assert_equal (row.val, 'auL olleH')
|
|
end
|
|
for row in db:nrows("SELECT padl(name, 16) as val FROM test WHERE id = 3") do
|
|
assert_equal (row.val, ' Hello sqlite3')
|
|
end
|
|
end
|
|
|