diff options
Diffstat (limited to '3rdparty/lsqlite3/test/test-dyld.lua')
-rw-r--r-- | 3rdparty/lsqlite3/test/test-dyld.lua | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/3rdparty/lsqlite3/test/test-dyld.lua b/3rdparty/lsqlite3/test/test-dyld.lua new file mode 100644 index 00000000000..7a3d9f9aba5 --- /dev/null +++ b/3rdparty/lsqlite3/test/test-dyld.lua @@ -0,0 +1,68 @@ +-- +-- 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 + |