From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id E46FC8205E; Sun, 24 Jan 2021 20:33:20 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org E46FC8205E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1611509601; bh=2FvYMs/bsnBBYpgsohIRTnzEODfHLUFt/yHUHHprEso=; h=To:References:Date:In-Reply-To:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=K6560dVDXEei1TIm6yc8pPNXiVsuwzJag3jJTwYUMnbkl6pNBBBCISqSGhBvaN/x5 uoU3hWiF5d0/yu7LLkaXd1Dl4JCxIA8cLh3GFH/qlPAXzoUMi0rpwYB/uUCQ//T0Gl cscCuQB+qhICwxtyFRf4gmoa7jqdWkUN7MDUcghs= Received: from smtpng3.m.smailru.net (smtpng3.m.smailru.net [94.100.177.149]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id A28878205E for ; Sun, 24 Jan 2021 20:33:19 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org A28878205E Received: by smtpng3.m.smailru.net with esmtpa (envelope-from ) id 1l3jGI-0007tw-CR; Sun, 24 Jan 2021 20:33:19 +0300 To: sergeyb@tarantool.org, tarantool-patches@dev.tarantool.org References: <3a5360daf42cd920e3ce536020a6ff2fbccc095e.1611232655.git.sergeyb@tarantool.org> Message-ID: <140f1c8e-dc25-3295-9bd8-e7835e2e89c8@tarantool.org> Date: Sun, 24 Jan 2021 18:33:17 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.6.1 MIME-Version: 1.0 In-Reply-To: <3a5360daf42cd920e3ce536020a6ff2fbccc095e.1611232655.git.sergeyb@tarantool.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-7564579A: B8F34718100C35BD X-77F55803: 4F1203BC0FB41BD9F0E84CC1954AA43820AFEE167473C3281A531C928E5BB44000894C459B0CD1B9D27885C024C21FBDFCA8CC4D6DE27DBA1F942A5D71E7AEBE7B12D36DB06ABBA0 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE787D390A33DAA1DB5EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637509039C6BFF921C08638F802B75D45FF5571747095F342E8C7A0BC55FA0FE5FCBDC2C7681C9E6372B94FD11950ADAEBF7A4DE336EC930A42389733CBF5DBD5E913377AFFFEAFD269176DF2183F8FC7C0D9442B0B5983000E8941B15DA834481FCF19DD082D7633A0EF3E4896CB9E6436389733CBF5DBD5E9D5E8D9A59859A8B68424CA1AAF98A6958941B15DA834481F9449624AB7ADAF3735872C767BF85DA29E625A9149C048EE0A3850AC1BE2E73528A6D463EDFD0DBB4AD6D5ED66289B524E70A05D1297E1BB35872C767BF85DA227C277FBC8AE2E8B706619B2D358707475ECD9A6C639B01B4E70A05D1297E1BBC6867C52282FAC85D9B7C4F32B44FF57E8FBB06288C1946000306258E7E6ABB4E4A6367B16DE6309 X-C1DE0DAB: 0D63561A33F958A59AF51C58D6631C97C5981D97C4552E21A618F7C4F5A56443D59269BC5F550898D99A6476B3ADF6B47008B74DF8BB9EF7333BD3B22AA88B938A852937E12ACA75F04B387B5D7535DE410CA545F18667F91A7EA1CDA0B5A7A0 X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D349BD6FB698A487E7E1F14BB2888D4DCE6B8A9640D451B988950AA8398C7BF154AF0EDF703220892721D7E09C32AA3244C46D61799C7D034069263826EE6122236A95CA90A1D8AC565FACE5A9C96DEB163 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojEcKN7r9rK/2oraSHYHhBSQ== X-Mailru-Sender: 689FA8AB762F73936BC43F508A063822FBEBC7FBD68173F07B72C5D010640EBA3841015FED1DE5223CC9A89AB576DD93FB559BB5D741EB963CF37A108A312F5C27E8A8C3839CE0E267EA787935ED9F1B X-Mras: Ok Subject: Re: [Tarantool-patches] [PATCH v8 03/14] test: fix luacheck warnings W113 in test/sql-tap X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Vladislav Shpilevoy via Tarantool-patches Reply-To: Vladislav Shpilevoy Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" Hi! Thanks for the patch! See 3 comments below. On 21.01.2021 13:49, sergeyb@tarantool.org wrote: > From: Sergey Bronnikov > > W113 (Accessing an undefined global variable) > > Part of #5464 > --- > .luacheckrc | 37 +++++++++- > test/sql-tap/badutf1.test.lua | 10 ++- > test/sql-tap/index1.test.lua | 2 +- > test/sql-tap/lua/sqltester.lua | 2 +- > test/sql-tap/lua_sql.test.lua | 6 +- > test/sql-tap/minmax2.test.lua | 2 + > test/sql-tap/select1.test.lua | 4 ++ > test/sql-tap/subquery.test.lua | 7 +- > test/sql-tap/table.test.lua | 6 +- > test/sql-tap/tkt1443.test.lua | 2 +- > test/sql-tap/trigger9.test.lua | 1 + > test/sql-tap/triggerC.test.lua | 1 - > test/sql-tap/view.test.lua | 126 +++++++++++++++------------------ > 13 files changed, 122 insertions(+), 84 deletions(-) > > diff --git a/.luacheckrc b/.luacheckrc > index 81aa61a2b..eb709d6a3 100644 > --- a/.luacheckrc > +++ b/.luacheckrc > @@ -124,3 +122,38 @@ files["test/box-tap/extended_error.test.lua"] = { > "forbidden_function", > }, > } > +files["test/sql-tap/analyze5.test.lua"] = { > + ignore = { > + "113", > + }, > +} > +files["test/sql-tap/cast.test.lua"] = { > + ignore = { > + "113", > + }, > +} > +files["test/sql-tap/func.test.lua"] = { > + ignore = { > + "113", > + }, > +} > +files["test/sql-tap/e_expr.test.lua"] = { > + ignore = { > + "113", > + }, > +} > +files["test/sql-tap/e_select1.test.lua"] = { > + ignore = { > + "113", > + }, > +} > +files["test/sql-tap/misc1.test.lua"] = { > + ignore = { > + "113", > + }, > +} > +files["test/sql-tap/sort.test.lua"] = { > + ignore = { > + "113", > + }, > +} 1. The commit title says "fix", but it does not look like a fix. I suggest you to try harder to remove the warnings, not hide them. For example, analyze5 can be fixed like this: ==================== diff --git a/.luacheckrc b/.luacheckrc index eb709d6a3..977eb2945 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -122,11 +122,6 @@ files["test/box-tap/extended_error.test.lua"] = { "forbidden_function", }, } -files["test/sql-tap/analyze5.test.lua"] = { - ignore = { - "113", - }, -} files["test/sql-tap/cast.test.lua"] = { ignore = { "113", diff --git a/test/sql-tap/analyze5.test.lua b/test/sql-tap/analyze5.test.lua index 1d6665ad0..a9eb4dd2f 100755 --- a/test/sql-tap/analyze5.test.lua +++ b/test/sql-tap/analyze5.test.lua @@ -26,6 +26,8 @@ local function eqp(sql) return test:execsql("EXPLAIN QUERY PLAN"..sql) end +local X = nil + local function alpha(blob) local ret = "" for _, c in ipairs(X(37, "X!cmd", [=[["split",["blob"],""]]=])) do @@ -155,6 +157,9 @@ test:do_test( -- Verify that range queries generate the correct row count estimates -- +local t1x = nil +local t1y = nil +local t1z = nil for i, v in pairs({ {'z>=0 AND z<=0', t1z, 400}, {'z>=1 AND z<=1', t1z, 300}, ==================== It does not make much sense, and the whole test does not make it, because it is disabled. But it is better than just move the ignores from one place to another. At least now they are local to the disabled places, not to the whole file. Cast.test.lua: ==================== diff --git a/.luacheckrc b/.luacheckrc index eb709d6a3..15944e378 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -127,11 +127,6 @@ files["test/sql-tap/analyze5.test.lua"] = { "113", }, } -files["test/sql-tap/cast.test.lua"] = { - ignore = { - "113", - }, -} files["test/sql-tap/func.test.lua"] = { ignore = { "113", diff --git a/test/sql-tap/cast.test.lua b/test/sql-tap/cast.test.lua index 4d7c92cfc..bcee65d9b 100755 --- a/test/sql-tap/cast.test.lua +++ b/test/sql-tap/cast.test.lua @@ -786,13 +786,19 @@ test:do_execsql_test( -- Test to see if it is possible to trick sql into reading past -- the end of a blob when converting it to a number. if 0 > 0 then +-- Legacy from the original code. Must be replaced with analogue +-- functions from box. +local sql_prepare = nil +local sql_bind_blob = nil +local sql_step = nil +local sql_column_int = nil +local STMT test:do_test( "cast-3.32.1", function() - local blob, DB, STMT + local blob blob = 1234567890 - DB = sql_connection_pointer("db") - STMT = sql_prepare(DB, "SELECT CAST(? AS NUMBER)", -1, "TAIL") + STMT = sql_prepare("SELECT CAST(? AS NUMBER)", -1, "TAIL") sql_bind_blob("-static", STMT, 1, blob, 5) return sql_step(STMT) end, { ==================== Func.test.lua: ==================== diff --git a/.luacheckrc b/.luacheckrc index eb709d6a3..7608240c5 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -132,11 +132,6 @@ files["test/sql-tap/cast.test.lua"] = { "113", }, } -files["test/sql-tap/func.test.lua"] = { - ignore = { - "113", - }, -} files["test/sql-tap/e_expr.test.lua"] = { ignore = { "113", diff --git a/test/sql-tap/func.test.lua b/test/sql-tap/func.test.lua index d14eef421..a83b15fbc 100755 --- a/test/sql-tap/func.test.lua +++ b/test/sql-tap/func.test.lua @@ -1048,7 +1048,8 @@ test:do_execsql_test( -- -- MUST_WORK_TEST testfunc not implemented if 0 > 0 then -local DB = sql_connection_pointer("db") +local DB = nil +local X = nil X(525, "X!cmd", [=[["sql_register_test_function",["::DB"],"testfunc"]]=]) test:do_catchsql_test( "func-10.1", @@ -1142,6 +1143,18 @@ end -- -- MUST_WORK_TEST test_destructor_count not implemented if 0 > 0 then +local X = nil +-- Legacy from the original code. Must be replaced with analogue +-- functions from box. +local sql_prepare = nil +local sql_bind_text = nil +local sql_bind_blob = nil +local sql_column_text = nil +local sql_step = nil +local sql_finalize = nil +local db = nil +local STMT + if X(595, "X!cmd", "[\"expr\",\"[db eval {PRAGMA encoding}]==\\\"UTF-8\\\"\"]") then test:do_execsql_test( @@ -1300,10 +1313,9 @@ test:do_execsql_test( test:do_test( "func-13.7", function() - local DB, sql, STMT, res - DB = sql_connection_pointer("db") + local sql, STMT, res sql = "SELECT test_auxdata( ? , a ) FROM t4;" - STMT = sql_prepare(DB, sql, -1, "TAIL") + STMT = sql_prepare(sql, -1, "TAIL") sql_bind_text(STMT, 1, "hello\0", -1) res = { } while X(690, "X!cmd", [=[["expr"," \"sql_ROW\"==[sql_step $STMT] "]]=]) @@ -1455,7 +1467,7 @@ test:do_test( test:execsql([[ CREATE TABLE tbl2(id integer primary key, a INT, b INT); ]]) - local STMT = sql_prepare(DB, "INSERT INTO tbl2 VALUES(1, ?, ?)", -1, "TAIL") + local STMT = sql_prepare("INSERT INTO tbl2 VALUES(1, ?, ?)", -1, "TAIL") sql_bind_blob(STMT, 1, "abc", 3) sql_step(STMT) sql_finalize(STMT) @@ -2439,6 +2451,7 @@ test:do_execsql_test( -- -- MUST_WORK_TEST if 0>0 then +local X = nil test:do_execsql_test( "func-25.1", [[ @@ -2470,7 +2483,7 @@ test:do_test( "func-26.2", function() local a = "" - for _ in X(0, "X!for", [=[["set i 1","$i<=$::sql_MAX_FUNCTION_ARG","incr i"]]=]) do + for i in X(0, "X!for", [=[["set i 1","$i<=$::sql_MAX_FUNCTION_ARG","incr i"]]=]) do table.insert(a,i) end return test:execsql(string.format([[ @@ -2486,7 +2499,7 @@ test:do_test( "func-26.3", function() local a = "" - for _ in X(0, "X!for", [=[["set i 1","$i<=$::sql_MAX_FUNCTION_ARG+1","incr i"]]=]) do + for i in X(0, "X!for", [=[["set i 1","$i<=$::sql_MAX_FUNCTION_ARG+1","incr i"]]=]) do table.insert(a,i) end return test:catchsql(string.format([[ @@ -2502,7 +2515,7 @@ test:do_test( "func-26.4", function() local a = "" - for _ in X(0, "X!for", [=[["set i 1","$i<=$::sql_MAX_FUNCTION_ARG-1","incr i"]]=]) do + for i in X(0, "X!for", [=[["set i 1","$i<=$::sql_MAX_FUNCTION_ARG-1","incr i"]]=]) do table.insert(a,i) end return test:catchsql(string.format([[ ==================== I am sure the other files also can be properly fixed, with stubs and comments for legacy old functions, and with normal fixes for the things like in the last lines of the diff above, where it was a real bug - loop variable was not defined. > diff --git a/test/sql-tap/badutf1.test.lua b/test/sql-tap/badutf1.test.lua > index 654629bf7..b7fa8ce0b 100755 > --- a/test/sql-tap/badutf1.test.lua > +++ b/test/sql-tap/badutf1.test.lua > @@ -93,8 +93,12 @@ test:do_test( > }) > > -- commented as it uses utf16 > -if 0>0 then > -sql("db2", "") > +-- testcases are broken > +-- https://github.com/tarantool/tarantool/issues/5743 > +local is_gh_5743_closed = false > +if is_gh_5743_closed then > +sql("db2", "") -- luacheck: ignore sql > +-- luacheck: push ignore sql_exec 2. Or you can use 'local sql_exec = nil', and won't need to write 'pop'. The same to the other places, where you try to ignore the same unknown variable again and again. However I don't insist on hacks vs luacheck comments. > test:do_test( > "badutf-1.10", > function() > @@ -206,7 +210,7 @@ test:do_test( > -- > }) > end > - > +-- luacheck: pop > > diff --git a/test/sql-tap/view.test.lua b/test/sql-tap/view.test.lua > index 2f1af29b0..67f461132 100755 > --- a/test/sql-tap/view.test.lua > +++ b/test/sql-tap/view.test.lua > @@ -1,6 +1,6 @@ > #!/usr/bin/env tarantool > local test = require("sqltester") > -test:plan(78) > +test:plan(83) > > --!./tcltestrunner.lua > -- 2002 February 26 > @@ -501,21 +501,18 @@ test:do_execsql_test( > }) > > -- MUST_WORK_TEST 3. Why did you keep MUST_WORK_TEST, if it passes now? The same in other places below. > -if (0 > 0) > - then > - test:do_test( > - "view-7.2", > - function() > - return test:execsql [[ > - SELECT * FROM test; > - ]] > - end, { > - -- > - 1, 2, 3 > - -- > - }) > +test:do_test( > + "view-7.2", > + function() > + return test:execsql [[ > + SELECT * FROM test; > + ]] > + end, { > + -- > + 1, 2, 3 > + -- > + }) > > -end > test:do_execsql_test( > "view-7.3", > [[ > @@ -531,21 +528,18 @@ test:do_execsql_test( > }) > > -- MUST_WORK_TEST > -if (0 > 0) > - then > - test:do_test( > - "view-7.4", > - function() > - return test:execsql [[ > - SELECT * FROM test; > - ]] > - end, { > - -- > - 1, 2, 3 > - -- > - }) > +test:do_test( > + "view-7.4", > + function() > + return test:execsql [[ > + SELECT * FROM test; > + ]] > + end, { > + -- > + 1, 2, 3 > + -- > + }) > > -end > test:do_execsql_test( > "view-7.5", > [[ > @@ -561,21 +555,18 @@ test:do_execsql_test( > }) > > -- MUST_WORK_TEST > -if (0 > 0) > - then > - test:do_test( > - "view-7.6", > - function() > - return test:execsql [[ > - SELECT * FROM test; > - ]] > - end, { > - -- > - 1, 2, 3 > - -- > - }) > +test:do_test( > + "view-7.6", > + function() > + return test:execsql [[ > + SELECT * FROM test; > + ]] > + end, { > + -- > + 1, 2, 3 > + -- > + }) > > -end > test:do_execsql_test( > "view-8.1", > [[ > @@ -588,33 +579,29 @@ test:do_execsql_test( > }) > > -- MUST_WORK_TEST > -if (0 > 0) > - then > - test:do_test( > - "view-8.2", > - function() > - return test:execsql [[ > - SELECT * FROM v6 ORDER BY xyz; > - ]] > - end, { > - -- > - 7, 2, 13, 5, 19, 8, 27, 12 > - -- > - }) > - > - -- MUST_WORK_TEST problem with column names > - test:do_execsql_test( > - "view-8.3", > - [[ > - CREATE VIEW v7(a) AS SELECT pqr+xyz FROM v6; > - SELECT * FROM v7 ORDER BY a; > - ]], { > - -- > - 9, 18, 27, 39 > - -- > - }) > +test:do_test( > + "view-8.2", > + function() > + return test:execsql [[ > + SELECT * FROM v6 ORDER BY xyz; > + ]] > + end, { > + -- > + 7, 2, 13, 5, 19, 8, 27, 12 > + -- > + }) > > -end > +-- MUST_WORK_TEST problem with column names > +test:do_execsql_test( > + "view-8.3", > + [[ > + CREATE VIEW v7(a) AS SELECT pqr+xyz FROM v6; > + SELECT * FROM v7 ORDER BY a; > + ]], { > + -- > + 9, 18, 27, 39 > + -- > + }) > > test:do_execsql_test( > "view-8.4",