[Tarantool-patches] [PATCH v7] test: fix luacheck warnings in test/long_run-py

Vladislav Shpilevoy v.shpilevoy at tarantool.org
Fri Jan 15 00:46:40 MSK 2021


>>> diff --git a/test/long_run-py/lua/finalizers.lua b/test/long_run-py/lua/finalizers.lua
>>> index 69146a323..cb6400363 100644
>>> --- a/test/long_run-py/lua/finalizers.lua
>>> +++ b/test/long_run-py/lua/finalizers.lua
>>> @@ -1,19 +1,17 @@
>>>   #!/usr/bin/env tarantool
>>>   -function on_gc(t)
>>> +local function on_gc()
>>>   end;
>>>   -function test_finalizers()
>>> +local function test_finalizers()
>>>       local result = {}
>>>       local i = 1
>>>       local ffi = require('ffi')
>>>       while true do
>>> -        result[i] = ffi.gc(ffi.cast('void *', 0), on_gc)
>>> +        local result[i] = ffi.gc(ffi.cast('void *', 0), on_gc)
>> 2. This change is not correct. Even luacheck tells it, if you don't
>> ignore this file. You assign a value to a table member, not
>> declare a variable.
> 
> It is still not unclear for me why luacheck complains here.
> 
> result table declared before a loop and scope for it is a whole function body, what's wrong?
> 
> Similar lua chunk successfully executed by puc lua:
> 
> local result = {}
> local i = 0
> while i == 0 do
>     result[i] = 1
> end

Your chunk is similar, but not the same. Originally you used 'local result[i] = ...'
expression which is obviously wrong. You can't "declare" a table member as local.
'result[i]' is not a valid variable name, so it can't be used with 'local' keyword
to declare it as a variable.

>>> diff --git a/test/long_run-py/suite.lua b/test/long_run-py/suite.lua
>>> index 0b33dec7d..7a09dd2b8 100644
>>> --- a/test/long_run-py/suite.lua
>>> +++ b/test/long_run-py/suite.lua
>>> @@ -109,3 +106,8 @@ function delete_insert(engine_name)
>>>       box.space.tester:drop()
>>>       return {counter, string_value_2}
>>>   end
>>> +
>>> +return {
>>> +    delete_replace_update = delete_replace_update;
>>> +    delete_insert = delete_insert;
>> 3. Please, use ',' instead of ';'.
>>
> Fixed in a branch.

I realized suite.lua functions are never used. The file is imported in
long_run-py/box.lua, but the imported functions are not used. I deleted
it and the tests pass. I suggest you to delete this file entirely:

====================
diff --git a/test/long_run-py/box.lua b/test/long_run-py/box.lua
index b4f65dcdb..354e680b4 100644
--- a/test/long_run-py/box.lua
+++ b/test/long_run-py/box.lua
@@ -1,7 +1,5 @@
 #!/usr/bin/env tarantool
 
-require('suite')
-
 os.execute("rm -rf vinyl_test")
 os.execute("mkdir -p vinyl_test")
 
diff --git a/test/long_run-py/suite.ini b/test/long_run-py/suite.ini
index 110bbb548..7561fdb5a 100644
--- a/test/long_run-py/suite.ini
+++ b/test/long_run-py/suite.ini
@@ -5,7 +5,6 @@ script = box.lua
 long_run =  finalizers.test.py
 valgrind_disabled =
 release_disabled =
-lua_libs = suite.lua
 use_unix_sockets = True
 use_unix_sockets_iproto = True
 is_parallel = True

+ delete suite.lua file.


More information about the Tarantool-patches mailing list