Skip to content
Snippets Groups Projects
Commit 70ea9998 authored by Serge Petrenko's avatar Serge Petrenko Committed by Vladimir Davydov
Browse files

test: extract on_shutdown tests from box/misc

This part of the test is flaky when tests are run in parallel, besides,
it is quite big on its own, so extract it into a separate file to add
more flexibility in running tests and to make finding problems easier.

Part of #4134
parent 3bd13cf5
No related branches found
No related tags found
No related merge requests found
......@@ -1269,164 +1269,3 @@ box.cfg{too_long_threshold = too_long_threshold}
s:drop()
---
...
--
-- gh-1607: on_shutdown triggers.
--
f = function() print('on_shutdown 1') end
---
...
g = function() print('on_shutdown 2') end
---
...
h = function() print('on_shutdown 3') end
---
...
-- Check that on_shutdown triggers may yield
-- and perform some complicated actions.
fiber = require('fiber')
---
...
test_run:cmd("setopt delimiter ';'")
---
- true
...
trig = function()
fiber.sleep(0.01)
fiber.yield()
box.schema.space.create("shutdown")
box.space.shutdown:create_index("pk")
box.space.shutdown:insert{1,2,3}
print('on_shutdown 4')
end;
---
...
test_run:cmd("setopt delimiter ''");
---
- true
...
_ = box.ctl.on_shutdown(f)
---
...
_ = box.ctl.on_shutdown(g)
---
...
-- Check that replacing triggers works
_ = box.ctl.on_shutdown(h, g)
---
...
_ = box.ctl.on_shutdown(trig)
---
...
test_run:cmd('restart server default')
test_run:grep_log('default', 'on_shutdown 1', nil, {noreset=true})
---
- on_shutdown 1
...
test_run:grep_log('default', 'on_shutdown 2', nil, {noreset=true})
---
- null
...
test_run:grep_log('default', 'on_shutdown 3', nil, {noreset=true})
---
- on_shutdown 3
...
test_run:grep_log('default', 'on_shutdown 4', nil, {noreset=true})
---
- on_shutdown 4
...
box.space.shutdown:select{}
---
- - [1, 2, 3]
...
box.space.shutdown:drop()
---
...
-- Check that os.exit invokes triggers
fiber = require("fiber")
---
...
test_run:cmd("create server test with script='box/proxy.lua'")
---
- true
...
test_run:cmd("start server test")
---
- true
...
logfile = test_run:eval("test", "box.cfg.log")[1]
---
...
test_run:cmd("stop server test")
---
- true
...
-- clean up any leftover logs
require("fio").unlink(logfile)
---
- true
...
test_run:cmd("start server test")
---
- true
...
test_run:cmd("switch test")
---
- true
...
_ = box.ctl.on_shutdown(function() print("on_shutdown 5") end)
---
...
-- Check that we don't hang infinitely after os.exit()
-- even if the following code doesn't yield.
fiber = require("fiber")
---
...
_ = fiber.create(function() fiber.sleep(0.05) os.exit() while true do end end)
---
...
test_run:cmd("switch default")
---
- true
...
fiber.sleep(0.1)
---
...
-- The server should be already stopped by os.exit(),
-- but start doesn't work without a prior call to stop.
test_run:cmd("stop server test")
---
- true
...
test_run:cmd("start server test")
---
- true
...
test_run:cmd("switch test")
---
- true
...
test_run:grep_log('test', 'on_shutdown 5', nil, {noreset=true})
---
- on_shutdown 5
...
-- make sure we exited because of os.exit(), not a signal.
test_run:grep_log('test', 'signal', nil, {noreset=true})
---
- null
...
test_run:cmd("switch default")
---
- true
...
test_run:cmd("stop server test")
---
- true
...
test_run:cmd("cleanup server test")
---
- true
...
test_run:cmd("delete server test")
---
- true
...
......@@ -353,64 +353,3 @@ lsn == expected_lsn
box.cfg{too_long_threshold = too_long_threshold}
s:drop()
--
-- gh-1607: on_shutdown triggers.
--
f = function() print('on_shutdown 1') end
g = function() print('on_shutdown 2') end
h = function() print('on_shutdown 3') end
-- Check that on_shutdown triggers may yield
-- and perform some complicated actions.
fiber = require('fiber')
test_run:cmd("setopt delimiter ';'")
trig = function()
fiber.sleep(0.01)
fiber.yield()
box.schema.space.create("shutdown")
box.space.shutdown:create_index("pk")
box.space.shutdown:insert{1,2,3}
print('on_shutdown 4')
end;
test_run:cmd("setopt delimiter ''");
_ = box.ctl.on_shutdown(f)
_ = box.ctl.on_shutdown(g)
-- Check that replacing triggers works
_ = box.ctl.on_shutdown(h, g)
_ = box.ctl.on_shutdown(trig)
test_run:cmd('restart server default')
test_run:grep_log('default', 'on_shutdown 1', nil, {noreset=true})
test_run:grep_log('default', 'on_shutdown 2', nil, {noreset=true})
test_run:grep_log('default', 'on_shutdown 3', nil, {noreset=true})
test_run:grep_log('default', 'on_shutdown 4', nil, {noreset=true})
box.space.shutdown:select{}
box.space.shutdown:drop()
-- Check that os.exit invokes triggers
fiber = require("fiber")
test_run:cmd("create server test with script='box/proxy.lua'")
test_run:cmd("start server test")
logfile = test_run:eval("test", "box.cfg.log")[1]
test_run:cmd("stop server test")
-- clean up any leftover logs
require("fio").unlink(logfile)
test_run:cmd("start server test")
test_run:cmd("switch test")
_ = box.ctl.on_shutdown(function() print("on_shutdown 5") end)
-- Check that we don't hang infinitely after os.exit()
-- even if the following code doesn't yield.
fiber = require("fiber")
_ = fiber.create(function() fiber.sleep(0.05) os.exit() while true do end end)
test_run:cmd("switch default")
fiber.sleep(0.1)
-- The server should be already stopped by os.exit(),
-- but start doesn't work without a prior call to stop.
test_run:cmd("stop server test")
test_run:cmd("start server test")
test_run:cmd("switch test")
test_run:grep_log('test', 'on_shutdown 5', nil, {noreset=true})
-- make sure we exited because of os.exit(), not a signal.
test_run:grep_log('test', 'signal', nil, {noreset=true})
test_run:cmd("switch default")
test_run:cmd("stop server test")
test_run:cmd("cleanup server test")
test_run:cmd("delete server test")
env = require('test_run')
---
...
test_run = env.new()
---
...
--
-- gh-1607: on_shutdown triggers.
--
f = function() print('on_shutdown 1') end
---
...
g = function() print('on_shutdown 2') end
---
...
h = function() print('on_shutdown 3') end
---
...
-- Check that on_shutdown triggers may yield
-- and perform some complicated actions.
fiber = require('fiber')
---
...
test_run:cmd("setopt delimiter ';'")
---
- true
...
trig = function()
fiber.sleep(0.01)
fiber.yield()
box.schema.space.create("shutdown")
box.space.shutdown:create_index("pk")
box.space.shutdown:insert{1,2,3}
print('on_shutdown 4')
end;
---
...
test_run:cmd("setopt delimiter ''");
---
- true
...
_ = box.ctl.on_shutdown(f)
---
...
_ = box.ctl.on_shutdown(g)
---
...
-- Check that replacing triggers works
_ = box.ctl.on_shutdown(h, g)
---
...
_ = box.ctl.on_shutdown(trig)
---
...
test_run:cmd('restart server default')
test_run:grep_log('default', 'on_shutdown 1', nil, {noreset=true})
---
- on_shutdown 1
...
test_run:grep_log('default', 'on_shutdown 2', nil, {noreset=true})
---
- null
...
test_run:grep_log('default', 'on_shutdown 3', nil, {noreset=true})
---
- on_shutdown 3
...
test_run:grep_log('default', 'on_shutdown 4', nil, {noreset=true})
---
- on_shutdown 4
...
box.space.shutdown:select{}
---
- - [1, 2, 3]
...
box.space.shutdown:drop()
---
...
-- Check that os.exit invokes triggers
fiber = require("fiber")
---
...
test_run:cmd("create server test with script='box/proxy.lua'")
---
- true
...
test_run:cmd("start server test")
---
- true
...
logfile = test_run:eval("test", "box.cfg.log")[1]
---
...
test_run:cmd("stop server test")
---
- true
...
-- clean up any leftover logs
require("fio").unlink(logfile)
---
- true
...
test_run:cmd("start server test")
---
- true
...
test_run:cmd("switch test")
---
- true
...
_ = box.ctl.on_shutdown(function() print("on_shutdown 5") end)
---
...
-- Check that we don't hang infinitely after os.exit()
-- even if the following code doesn't yield.
fiber = require("fiber")
---
...
_ = fiber.create(function() fiber.sleep(0.05) os.exit() while true do end end)
---
...
test_run:cmd("switch default")
---
- true
...
fiber.sleep(0.1)
---
...
-- The server should be already stopped by os.exit(),
-- but start doesn't work without a prior call to stop.
test_run:cmd("stop server test")
---
- true
...
test_run:cmd("start server test")
---
- true
...
test_run:cmd("switch test")
---
- true
...
test_run:grep_log('test', 'on_shutdown 5', nil, {noreset=true})
---
- on_shutdown 5
...
-- make sure we exited because of os.exit(), not a signal.
test_run:grep_log('test', 'signal', nil, {noreset=true})
---
- null
...
test_run:cmd("switch default")
---
- true
...
test_run:cmd("stop server test")
---
- true
...
test_run:cmd("cleanup server test")
---
- true
...
test_run:cmd("delete server test")
---
- true
...
env = require('test_run')
test_run = env.new()
--
-- gh-1607: on_shutdown triggers.
--
f = function() print('on_shutdown 1') end
g = function() print('on_shutdown 2') end
h = function() print('on_shutdown 3') end
-- Check that on_shutdown triggers may yield
-- and perform some complicated actions.
fiber = require('fiber')
test_run:cmd("setopt delimiter ';'")
trig = function()
fiber.sleep(0.01)
fiber.yield()
box.schema.space.create("shutdown")
box.space.shutdown:create_index("pk")
box.space.shutdown:insert{1,2,3}
print('on_shutdown 4')
end;
test_run:cmd("setopt delimiter ''");
_ = box.ctl.on_shutdown(f)
_ = box.ctl.on_shutdown(g)
-- Check that replacing triggers works
_ = box.ctl.on_shutdown(h, g)
_ = box.ctl.on_shutdown(trig)
test_run:cmd('restart server default')
test_run:grep_log('default', 'on_shutdown 1', nil, {noreset=true})
test_run:grep_log('default', 'on_shutdown 2', nil, {noreset=true})
test_run:grep_log('default', 'on_shutdown 3', nil, {noreset=true})
test_run:grep_log('default', 'on_shutdown 4', nil, {noreset=true})
box.space.shutdown:select{}
box.space.shutdown:drop()
-- Check that os.exit invokes triggers
fiber = require("fiber")
test_run:cmd("create server test with script='box/proxy.lua'")
test_run:cmd("start server test")
logfile = test_run:eval("test", "box.cfg.log")[1]
test_run:cmd("stop server test")
-- clean up any leftover logs
require("fio").unlink(logfile)
test_run:cmd("start server test")
test_run:cmd("switch test")
_ = box.ctl.on_shutdown(function() print("on_shutdown 5") end)
-- Check that we don't hang infinitely after os.exit()
-- even if the following code doesn't yield.
fiber = require("fiber")
_ = fiber.create(function() fiber.sleep(0.05) os.exit() while true do end end)
test_run:cmd("switch default")
fiber.sleep(0.1)
-- The server should be already stopped by os.exit(),
-- but start doesn't work without a prior call to stop.
test_run:cmd("stop server test")
test_run:cmd("start server test")
test_run:cmd("switch test")
test_run:grep_log('test', 'on_shutdown 5', nil, {noreset=true})
-- make sure we exited because of os.exit(), not a signal.
test_run:grep_log('test', 'signal', nil, {noreset=true})
test_run:cmd("switch default")
test_run:cmd("stop server test")
test_run:cmd("cleanup server test")
test_run:cmd("delete server test")
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