From b9c4c7c04ae99c5d00124f6c578b7f19a0b98174 Mon Sep 17 00:00:00 2001 From: Mergen Imeev <imeevma@gmail.com> Date: Thu, 16 Apr 2020 21:35:02 +0300 Subject: [PATCH] lua: fix test sql/func-recreate.test.lua Closes #4384 --- test/sql/func-recreate.result | 19 +++++++++++-------- test/sql/func-recreate.test.lua | 11 ++++++----- test/sql/suite.ini | 1 - 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/test/sql/func-recreate.result b/test/sql/func-recreate.result index 73fb03cc45..470ce5acd0 100644 --- a/test/sql/func-recreate.result +++ b/test/sql/func-recreate.result @@ -12,31 +12,34 @@ box.execute('pragma sql_default_engine=\''..engine..'\'') fiber = require('fiber') --- ... -box.internal.sql_create_function('WAITFOR', 'INT', function (n) fiber.sleep(n) return n end) +flag = true --- ... -ch = fiber.channel(1) +box.internal.sql_create_function('WAITFOR', 'INT', function () while flag do fiber.sleep(0.01) end return 0 end) --- ... -_ = fiber.create(function () ch:put(box.execute('select WAITFOR(0.2)')) end) +ch = fiber.channel(1) --- ... -fiber.sleep(0.1) +_ = fiber.create(function () ch:put(box.execute('select WAITFOR()')) end) --- ... -box.internal.sql_create_function('WAITFOR', 'INT', function (n) require('fiber').sleep(n) return n end) +box.internal.sql_create_function('WAITFOR', 'INT', function () while flag do fiber.sleep(0.01) end return 0 end) --- - error: 'Failed to create function ''WAITFOR'': unable to create function due to active statements' ... +flag = false +--- +... ch:get() --- - metadata: - - name: WAITFOR(0.2) + - name: WAITFOR() type: integer rows: - - [0.2] + - [0] ... -box.internal.sql_create_function('WAITFOR', 'INT', function (n) require('fiber').sleep(n) return n end) +box.internal.sql_create_function('WAITFOR', 'INT', function () while flag do fiber.sleep(0.01) end return 0 end) --- ... diff --git a/test/sql/func-recreate.test.lua b/test/sql/func-recreate.test.lua index 753e9ca4df..d482fa9db7 100644 --- a/test/sql/func-recreate.test.lua +++ b/test/sql/func-recreate.test.lua @@ -4,14 +4,15 @@ box.execute('pragma sql_default_engine=\''..engine..'\'') -- Check errors during function create process fiber = require('fiber') -box.internal.sql_create_function('WAITFOR', 'INT', function (n) fiber.sleep(n) return n end) +flag = true +box.internal.sql_create_function('WAITFOR', 'INT', function () while flag do fiber.sleep(0.01) end return 0 end) ch = fiber.channel(1) -_ = fiber.create(function () ch:put(box.execute('select WAITFOR(0.2)')) end) -fiber.sleep(0.1) +_ = fiber.create(function () ch:put(box.execute('select WAITFOR()')) end) -box.internal.sql_create_function('WAITFOR', 'INT', function (n) require('fiber').sleep(n) return n end) +box.internal.sql_create_function('WAITFOR', 'INT', function () while flag do fiber.sleep(0.01) end return 0 end) +flag = false ch:get() -box.internal.sql_create_function('WAITFOR', 'INT', function (n) require('fiber').sleep(n) return n end) +box.internal.sql_create_function('WAITFOR', 'INT', function () while flag do fiber.sleep(0.01) end return 0 end) diff --git a/test/sql/suite.ini b/test/sql/suite.ini index a8664c510b..cc1d641a85 100644 --- a/test/sql/suite.ini +++ b/test/sql/suite.ini @@ -11,4 +11,3 @@ release_disabled = errinj.test.lua view_delayed_wal.test.lua sql-debug.test.lua disabled = sql-statN-index-drop.test.lua pretest_clean = True fragile = dll.test.lua ; gh-4427 - func-recreate.test.lua ; gh-4384 -- GitLab