diff --git a/test/box/finalizers.result b/test/box/finalizers.result new file mode 100644 index 0000000000000000000000000000000000000000..fa4c2f0c0368def7ea4f67a9947e3dd955e5c62f --- /dev/null +++ b/test/box/finalizers.result @@ -0,0 +1 @@ +Expected error: <type 'exceptions.OSError'> diff --git a/test/box/finalizers.test.py b/test/box/finalizers.test.py new file mode 100644 index 0000000000000000000000000000000000000000..8c1358d834a2b4aeeefd46c2ed78c88c2d3a2a8b --- /dev/null +++ b/test/box/finalizers.test.py @@ -0,0 +1,17 @@ +import os +import sys +import re +import yaml +from lib.tarantool_server import TarantoolServer + +server = TarantoolServer(server.ini) +server.script = 'box/lua/finalizers.lua' +server.vardir = os.path.join(server.vardir, 'finalizers') +try: + server.deploy() +except: + print "Expected error:", sys.exc_info()[0] +else: + print "Error! exception did not occured" + + diff --git a/test/box/lua/finalizers.lua b/test/box/lua/finalizers.lua new file mode 100644 index 0000000000000000000000000000000000000000..068a3b9b3bc19b4f5b072e478aabe5ff59729609 --- /dev/null +++ b/test/box/lua/finalizers.lua @@ -0,0 +1,23 @@ +#!/usr/bin/env tarantool + +--# setopt delimiter ';' + +function on_gc(t) +end; + +function test_finalizers() + local result = {} + local i = 1 + local ffi = require('ffi') + while true do + result[i] = ffi.gc(ffi.cast('void *', NULL), on_gc) + i = i + 1 + end + return "done" +end; + +--# setopt delimiter '' + +test_finalizers() +test_finalizers() +