Skip to content
Snippets Groups Projects
Commit c826ea8f authored by Roman Tsisyk's avatar Roman Tsisyk
Browse files

Fix tests in module/ suite

parent 737f56de
No related branches found
No related tags found
No related merge requests found
Showing
with 260 additions and 219 deletions
package.path = "../../src/module/sql/?.lua;"..package.path
require("sql")
if type(box.net.sql) ~= "table" then
error("net.sql load failed")
end
lua type(box.net.sql)
package.path = "../../src/module/sql/?.lua"
---
- table
...
lua c = box.net.sql.connect('abcd')
package.cpath = "?.so"
---
...
require("sql")
---
- true
...
if type(box.net.sql) ~= "table" then error("net.sql load failed") end
---
error: '../../src/module/sql/sql.lua:29: Unknown driver ''abcd'''
...
server.stop()
server.deploy(init_lua="module/net_sql.common.lua")
admin("type(box.net.sql)")
admin("c = box.net.sql.connect('abcd')")
package.path = "../../src/module/sql/?.lua"
package.cpath = "?.so"
require("sql")
if type(box.net.sql) ~= "table" then error("net.sql load failed") end
package.path = "../../src/module/sql/?.lua;"..package.path
require("sql")
if type(box.net.sql) ~= "table" then
error("net.sql load failed")
end
require("box.net.mysql")
package.path = "../../src/module/sql/?.lua"
---
...
package.cpath = "?.so"
---
...
require("sql")
---
- true
...
if type(box.net.sql) ~= "table" then error("net.sql load failed") end
---
...
os.execute("mkdir -p box/net/")
---
- 0
...
os.execute("cp ../../src/module/mysql/mysql.so box/net/")
---
- 0
...
require("box.net.mysql")
---
- true
...
c = box.net.sql.connect('abcd')
---
- error: '[string "-- sql.lua (internal file)..."]:29: Unknown driver ''abcd'''
- error: '../../src/module/sql/sql.lua:29: Unknown driver ''abcd'''
...
function dump(v) return box.cjson.encode(v) end
---
......@@ -20,9 +45,9 @@ for k, v in pairs(c) do print(k, ': ', type(v)) end
...
c:execute('SEL ECT 1')
---
- error: '[string "-- sql.lua (internal file)..."]:105: You have an error in your
SQL syntax; check the manual that corresponds to your MySQL server version for
the right syntax to use near ''SEL ECT 1'' at line 1'
- error: '../../src/module/sql/sql.lua:105: You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax
to use near ''SEL ECT 1'' at line 1'
...
dump({c:execute('SELECT ? AS bool1, ? AS bool2, ? AS nil, ? AS num, ? AS str', true, false, nil, 123, 'abc')})
---
......@@ -72,3 +97,7 @@ c:commit()
---
- 0
...
os.execute("rm -rf box/net/")
---
- 0
...
# encoding: tarantool
import os
import shutil
module_path = os.path.join(vardir, "box/net")
module_path_so = module_path + "/mysql.so"
os.makedirs(module_path)
shutil.copy("../src/module/mysql/mysql.so", module_path_so)
server.stop()
server.deploy(init_lua="module/net_sql.mysql.lua")
exec admin "lua c = box.net.sql.connect('abcd')"
exec admin "lua dump = function(v) return box.cjson.encode(v) end"
exec admin "lua connect = {}"
exec admin "lua for tk in string.gmatch(os.getenv('MYSQL'), '[^:]+') do table.insert(connect, tk) end"
# mysql
exec admin "lua c = box.net.sql.connect('mysql', unpack(connect))"
exec admin "lua for k, v in pairs(c) do print(k, ': ', type(v)) end"
exec admin "lua c:execute('SEL ECT 1')"
exec admin "lua dump({c:execute('SELECT ? AS bool1, ? AS bool2, ? AS nil, ? AS num, ? AS str', true, false, nil, 123, 'abc')})"
exec admin "lua dump({c:execute('SELECT * FROM (SELECT ?) t WHERE 1 = 0', 2)})"
exec admin "lua dump({c:execute('CREATE PROCEDURE p1() BEGIN SELECT 1 AS One; SELECT 2 AS Two, 3 AS Three; END')})"
exec admin "lua dump({c:execute('CALL p1')})"
exec admin "lua dump({c:execute('DROP PROCEDURE p1')})"
exec admin "lua dump({c:execute('SELECT 1 AS one UNION ALL SELECT 2')})"
exec admin "lua dump({c:execute('SELECT 1 AS one UNION ALL SELECT 2; SELECT ? AS two', 'abc')})"
exec admin "lua c:quote('test \"abc\" test')"
exec admin "lua c:begin_work()"
exec admin "lua c:rollback()"
exec admin "lua c:begin_work()"
exec admin "lua c:commit()"
os.unlink(module_path_so)
os.removedirs(module_path)
package.path = "../../src/module/sql/?.lua"
package.cpath = "?.so"
require("sql")
if type(box.net.sql) ~= "table" then error("net.sql load failed") end
os.execute("mkdir -p box/net/")
os.execute("cp ../../src/module/mysql/mysql.so box/net/")
require("box.net.mysql")
c = box.net.sql.connect('abcd')
function dump(v) return box.cjson.encode(v) end
......@@ -24,3 +35,5 @@ c:begin_work()
c:rollback()
c:begin_work()
c:commit()
os.execute("rm -rf box/net/")
package.path = "../../src/module/sql/?.lua;"..package.path
require("sql")
if type(box.net.sql) ~= "table" then
error("net.sql load failed")
end
require("box.net.pg")
c = box.net.sql.connect('abcd')
package.path = "../../src/module/sql/?.lua"
---
...
package.cpath = "?.so"
---
error: '../../src/module/sql/sql.lua:29: Unknown driver ''abcd'''
...
c = box.net.sql.connect('pg')
require("sql")
---
- true
...
if type(box.net.sql) ~= "table" then error("net.sql load failed") end
---
error: '../../src/module/sql/sql.lua:64: Usage: box.net.sql.connect(''pg'', host, port, user, password, db, ...)'
...
os.execute("mkdir -p box/net/")
---
- 0
...
os.execute("cp ../../src/module/pg/pg.so box/net/")
---
- 0
...
require("box.net.pg")
---
- true
...
c = box.net.sql.connect('abcd')
---
- error: '../../src/module/sql/sql.lua:29: Unknown driver ''abcd'''
...
dump = function(v) return box.cjson.encode(v) end
---
......@@ -73,7 +94,7 @@ dump({c:select('SELECT * FROM (VALUES (1,2), (2,3)) t')})
...
dump({c:single('SELECT * FROM (VALUES (1,2), (2,3)) t')})
---
error: '../../src/module/sql/sql.lua:156: SQL request returned multiply rows'
- error: '../../src/module/sql/sql.lua:156: SQL request returned multiply rows'
...
dump({c:single('SELECT * FROM (VALUES (1,2)) t')})
---
......@@ -85,14 +106,12 @@ dump({c:perform('SELECT * FROM (VALUES (1,2), (2,3)) t')})
...
c:execute('SELEC T')
---
error: '../../src/module/sql/sql.lua:105: ERROR: syntax error at or near "SELEC"
LINE 1: SELEC T
^
'
- error: "../../src/module/sql/sql.lua:105: ERROR: syntax error at or near \"SELEC\"\nLINE
1: SELEC T\n ^\n"
...
c = box.net.sql.connect('abcd')
---
error: '../../src/module/sql/sql.lua:29: Unknown driver ''abcd'''
- error: '../../src/module/sql/sql.lua:29: Unknown driver ''abcd'''
...
c:quote('abc\"cde\"def')
---
......@@ -118,3 +137,7 @@ c:txn(function(dbi) dbi:single('SELECT 1') end)
---
- true
...
os.execute("rm -rf box/net/")
---
- 0
...
# encoding: tarantool
import os
import shutil
module_path = os.path.join(vardir, "box/net")
module_path_so = module_path + "/pg.so"
os.makedirs(module_path)
shutil.copy("../src/module/pg/pg.so", module_path_so)
server.stop()
server.deploy(init_lua="module/net_sql.pg.lua")
exec admin "lua c = box.net.sql.connect('abcd')"
exec admin "lua c = box.net.sql.connect('pg')"
exec admin "lua dump = function(v) return box.cjson.encode(v) end"
exec admin "lua connect = {}"
exec admin "lua for tk in string.gmatch(os.getenv('PG'), '[^:]+') do table.insert(connect, tk) end"
# postgresql
exec admin "lua c = box.net.sql.connect('pg', unpack(connect))"
exec admin "lua dump({c:execute('SELECT 123::text AS bla, 345')})"
exec admin "lua dump({c:execute('SELECT -1 AS neg, NULL AS abc')})"
exec admin "lua dump({c:execute('SELECT -1.1 AS neg, 1.2 AS pos')})"
exec admin "lua dump({c:execute('SELECT ARRAY[1,2] AS neg, 1.2 AS pos')})"
exec admin "lua dump({c:execute('SELECT ? AS val', 'abc')})"
exec admin "lua dump({c:execute('SELECT ? AS val', 123)})"
exec admin "lua dump({c:execute('SELECT ? AS val', true)})"
exec admin "lua dump({c:execute('SELECT ? AS val', false)})"
exec admin "lua dump({c:execute('SELECT ? AS val, ? AS num, ? AS str', false, 123, 'abc')})"
exec admin "lua dump({c:execute('DROP TABLE IF EXISTS unknown_table')})"
exec admin "lua dump({c:execute('SELECT * FROM (VALUES (1,2), (2,3)) t')})"
exec admin "lua c:ping()"
exec admin "lua dump({c:select('SELECT * FROM (VALUES (1,2), (2,3)) t')})"
exec admin "lua dump({c:single('SELECT * FROM (VALUES (1,2), (2,3)) t')})"
exec admin "lua dump({c:single('SELECT * FROM (VALUES (1,2)) t')})"
exec admin "lua dump({c:perform('SELECT * FROM (VALUES (1,2), (2,3)) t')})"
exec admin "lua c:execute('SELEC T')"
exec admin "lua c = box.net.sql.connect('abcd')"
exec admin "lua c:quote('abc\"cde\"def')"
exec admin "lua c:begin_work()"
exec admin "lua c:rollback()"
exec admin "lua c:begin_work()"
exec admin "lua c:commit()"
exec admin "lua c:txn(function(dbi) dbi:single('SELECT 1') end)"
os.unlink(module_path_so)
os.removedirs(module_path)
package.path = "../../src/module/sql/?.lua"
package.cpath = "?.so"
require("sql")
if type(box.net.sql) ~= "table" then error("net.sql load failed") end
os.execute("mkdir -p box/net/")
os.execute("cp ../../src/module/pg/pg.so box/net/")
require("box.net.pg")
c = box.net.sql.connect('abcd')
dump = function(v) return box.cjson.encode(v) end
......@@ -34,3 +45,5 @@ c:begin_work()
c:commit()
c:txn(function(dbi) dbi:single('SELECT 1') end)
os.execute("rm -rf box/net/")
require("box.sophia")
lua env = box.sophia.create()
package.cpath = "?.so"
---
...
lua flags = bit.bor(box.sophia.SPO_RDWR, box.sophia.SPO_CREAT)
os.execute("mkdir -p box")
---
- 0
...
lua env:ctl(box.sophia.SPDIR, flags, "./sophia")
os.execute("cp ../../src/module/sophia/sophia.so box/")
---
- 0
- 0
...
lua env:open()
sophia = require("box.sophia")
---
- 0
...
lua for key=1, 10 do print(env:set(tostring(key), tostring(key))) end
env = sophia.create()
---
0
0
0
0
0
0
0
0
0
0
...
lua for key=1, 10 do print(env:get(tostring(key))) end
flags = bit.bor(sophia.SPO_RDWR, sophia.SPO_CREAT)
---
1
2
3
4
5
6
7
8
9
10
...
lua env:close()
env:ctl(sophia.SPDIR, flags, "./sophia")
---
- 0
- 0
...
lua env = box.sophia.create()
env:open()
---
- 0
...
lua flags = bit.bor(box.sophia.SPO_RDWR)
t = {}
---
...
lua env:ctl(box.sophia.SPDIR, flags, "./sophia")
for key=1, 10 do table.insert(t, env:set(tostring(key), tostring(key))) end
---
- 0
...
lua env:open()
t
---
- 0
- - 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
...
lua for key=1, 10 do print(env:get(tostring(key))) end
t = {}
---
1
2
3
4
5
6
7
8
9
10
...
lua for key=1, 10 do print(env:delete(tostring(key))) end
for key=1, 10 do table.insert(t, env:get(tostring(key))) end
---
0
0
0
0
0
0
0
0
0
0
...
lua for key=1, 10 do print(env:get(tostring(key))) end
t
---
nil
nil
nil
nil
nil
nil
nil
nil
nil
nil
- - '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- '10'
...
lua env:close()
t = {}
---
- 0
...
env:close()
---
- 0
...
env = sophia.create()
---
...
flags = bit.bor(sophia.SPO_RDWR)
---
...
env:ctl(sophia.SPDIR, flags, "./sophia")
---
- 0
...
env:open()
---
- 0
...
t = {}
---
...
for key=1, 10 do table.insert(t, env:get(tostring(key))) end
---
...
t
---
- - '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- '10'
...
t = {}
---
...
for key=1, 10 do table.insert(t, env:delete(tostring(key))) end
---
...
t
---
- - 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
...
t = {}
---
...
for key=1, 10 do table.insert(t, env:get(tostring(key))) end
---
...
t
---
- []
...
t = {}
---
...
env:close()
---
- 0
...
os.execute("rm -rf box/")
---
- 0
...
package.cpath = "?.so"
os.execute("mkdir -p box")
os.execute("cp ../../src/module/sophia/sophia.so box/")
sophia = require("box.sophia")
env = sophia.create()
flags = bit.bor(sophia.SPO_RDWR, sophia.SPO_CREAT)
env:ctl(sophia.SPDIR, flags, "./sophia")
env:open()
t = {}
for key=1, 10 do table.insert(t, env:set(tostring(key), tostring(key))) end
t
t = {}
for key=1, 10 do table.insert(t, env:get(tostring(key))) end
t
t = {}
env:close()
env = sophia.create()
flags = bit.bor(sophia.SPO_RDWR)
env:ctl(sophia.SPDIR, flags, "./sophia")
env:open()
t = {}
for key=1, 10 do table.insert(t, env:get(tostring(key))) end
t
t = {}
for key=1, 10 do table.insert(t, env:delete(tostring(key))) end
t
t = {}
for key=1, 10 do table.insert(t, env:get(tostring(key))) end
t
t = {}
env:close()
os.execute("rm -rf box/")
......@@ -23,8 +23,6 @@ logger="cat - >> tarantool.log"
#
# Read only and read-write port.
primary_port = 33013
# Read-only port.
secondary_port = 33014
#
# The port for administrative commands.
#
......@@ -34,12 +32,3 @@ admin_port = 33015
# When the limit is reached, Tarantool closes
# the WAL and starts a new one.
rows_per_wal = 50
# Define a simple space with 1 HASH-based
# primary key.
space[0].enabled = 1
space[0].index[0].type = "HASH"
space[0].index[0].unique = 1
space[0].index[0].key_field[0].fieldno = 0
space[0].index[0].key_field[0].type = "NUM"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment