2
-- a first implementation of the a script test-suite
4
-- it is inspired by all the different unit-testsuites our there and
6
-- * a set of assert functions
7
-- * a fake proxy implementation
9
-- @todo the local script scope isn't managed yet
12
-- the fake script scope
18
append = function (id, query)
19
queries[#queries + 1] = {
32
PROXY_SEND_RESULT = 1,
39
require("active-queries")
40
local tests = require("proxy.test")
43
-- overwrite the scripts dump_global_state
44
-- to get rid of the printout
46
function print_stats(stats)
49
TestScript = tests.BaseTest:new({
50
active_qs = proxy.global.active_queries
53
function TestScript:setUp()
54
-- reset the query queue
56
proxy.global.max_active_trx = 0
57
proxy.global.active_queries = { }
60
function TestScript:testInit()
61
assertEquals(type(self.active_qs), "table")
64
function TestScript:testCleanStats()
65
local stats = collect_stats()
67
assertEquals(stats.max_active_trx, 0)
68
assertEquals(stats.num_conns, 0)
71
function TestScript:testQueryQueuing()
73
assertNotEquals(read_query(string.char(proxy.COM_QUERY) .. "SELECT 1"), nil)
75
local stats = collect_stats()
76
assertEquals(stats.max_active_trx, 1)
77
assertEquals(stats.num_conns, 1)
78
assertEquals(stats.active_conns, 1)
80
-- and here is the result
81
assertEquals(#queries, 1)
84
function TestScript:testQueryTracking()
87
query = string.char(proxy.COM_QUERY) .. "SELECT 1"
90
-- setup the query queue
91
assertNotEquals(read_query(inj.query), nil)
93
local stats = collect_stats()
94
assertEquals(stats.num_conns, 1)
95
assertEquals(stats.active_conns, 1)
97
-- check if the stats are updated
98
assertEquals(read_query_result(inj), nil)
100
local stats = collect_stats()
101
assertEquals(stats.num_conns, 1)
102
assertEquals(stats.active_conns, 0)
103
assertEquals(stats.max_active_trx, 1)
106
function TestScript:testDisconnect()
109
query = string.char(proxy.COM_QUERY) .. "SELECT 1"
113
assertNotEquals(read_query(inj.query), nil)
114
assertEquals(read_query_result(inj), nil)
116
local stats = collect_stats()
117
assertEquals(stats.num_conns, 1)
119
-- the disconnect should set the num_conns to 0 again
120
assertEquals(disconnect_client(), nil)
122
local stats = collect_stats()
123
assertEquals(stats.num_conns, 0)
124
assertEquals(stats.active_conns, 0)
125
assertEquals(stats.max_active_trx, 1)
129
-- the test suite runner
131
local suite = proxy.test.Suite:new({ result = proxy.test.Result:new()})