[Tarantool-patches] [PATCH v1 1/1] lua: fix test sql/func-recreate.test.lua
imeevma at tarantool.org
imeevma at tarantool.org
Thu Apr 16 22:07:31 MSK 2020
Closes #4384
---
https://github.com/tarantool/tarantool/issues/4384
https://github.com/tarantool/tarantool/tree/imeevma/gh-4384-fix-test-func-recreate
@ChangeLog
- Fixed flaky test sql/func-recreate.test.lua (gh-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 73fb03c..470ce5a 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 753e9ca..d482fa9 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 a8664c5..cc1d641 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
--
2.7.4
More information about the Tarantool-patches
mailing list