@@ -2,6 +2,7 @@ local utils = require "luacheck.utils"
2
2
local multithreading = require " luacheck.multithreading"
3
3
local helper = require " spec.helper"
4
4
local luacheck_cmd = helper .luacheck_command ()
5
+ local get_output = helper .get_output
5
6
6
7
local function quote (argument )
7
8
-- Do not worry about special characters too much, just quote.
@@ -15,27 +16,6 @@ local function norm_output(output)
15
16
return output :gsub (" (%w)/(%w)" , " %1" .. utils .dir_sep .. " %2" )
16
17
end
17
18
18
- local function get_output (command , wd , color )
19
- if color then
20
- if utils .is_windows and not os.getenv (" ANSICON" ) then
21
- pending (" uses terminal colors" )
22
- end
23
- else
24
- command = " --no-color " .. command
25
- end
26
-
27
- command = (" %s %s 2>&1" ):format (helper .luacheck_command (wd ), command )
28
- local handler = io.popen (command )
29
- local output = handler :read (" *a" )
30
- handler :close ()
31
-
32
- if color then
33
- return (output :gsub (" \27 %[%d+m" , " \27 " ):gsub (" \27 +" , " #" ))
34
- else
35
- return output
36
- end
37
- end
38
-
39
19
local function get_exitcode (command )
40
20
local nosql_db = package.config :sub (1 , 1 ) == " /" and " /dev/null" or " NUL"
41
21
local code51 , _ , code52plus = os.execute (luacheck_cmd .. " " .. command .. " > " .. nosql_db .. " 2>&1" )
@@ -890,100 +870,6 @@ Total: 5 warnings / 0 errors in 2 files
890
870
]] , get_output " spec/samples/good_code.lua spec/samples/bad_code.lua -qq --config=spec/configs/format_opts_config.luacheckrc" )
891
871
end )
892
872
893
- it (" has built-in TAP formatter" , function ()
894
- assert .equal ([[
895
- 1..8
896
- not ok 1 bad_file: I/O error
897
- ok 2 spec/samples/good_code.lua
898
- not ok 3 spec/samples/bad_code.lua:3:16: unused function 'helper'
899
- not ok 4 spec/samples/bad_code.lua:3:23: unused variable length argument
900
- not ok 5 spec/samples/bad_code.lua:7:10: setting non-standard global variable 'embrace'
901
- not ok 6 spec/samples/bad_code.lua:8:10: variable 'opt' was previously defined as an argument on line 7
902
- not ok 7 spec/samples/bad_code.lua:9:11: accessing undefined variable 'hepler'
903
- not ok 8 spec/samples/python_code.lua:1:6: expected '=' near '__future__'
904
- ]] , get_output " bad_file spec/samples/good_code.lua spec/samples/bad_code.lua spec/samples/python_code.lua --std=lua52 --formatter TAP --no-config" )
905
-
906
- assert .equal ([[
907
- 1..8
908
- not ok 1 bad_file: I/O error
909
- ok 2 spec/samples/good_code.lua
910
- not ok 3 spec/samples/bad_code.lua:3:16: (W211) unused function 'helper'
911
- not ok 4 spec/samples/bad_code.lua:3:23: (W212) unused variable length argument
912
- not ok 5 spec/samples/bad_code.lua:7:10: (W111) setting non-standard global variable 'embrace'
913
- not ok 6 spec/samples/bad_code.lua:8:10: (W412) variable 'opt' was previously defined as an argument on line 7
914
- not ok 7 spec/samples/bad_code.lua:9:11: (W113) accessing undefined variable 'hepler'
915
- not ok 8 spec/samples/python_code.lua:1:6: (E011) expected '=' near '__future__'
916
- ]] , get_output " bad_file spec/samples/good_code.lua spec/samples/bad_code.lua spec/samples/python_code.lua --std=lua52 --formatter TAP --codes --no-config" )
917
- end )
918
-
919
- it (" has built-in JUnit formatter" , function ()
920
- assert .equal ([[
921
- <?xml version="1.0" encoding="UTF-8"?>
922
- <testsuite name="Luacheck report" tests="8">
923
- <testcase name="bad_file" classname="bad_file">
924
- <error type="I/O error"/>
925
- </testcase>
926
- <testcase name="spec/samples/good_code.lua" classname="spec/samples/good_code.lua"/>
927
- <testcase name="spec/samples/bad_code.lua:1" classname="spec/samples/bad_code.lua">
928
- <failure type="W211" message="spec/samples/bad_code.lua:3:16: unused function 'helper'"/>
929
- </testcase>
930
- <testcase name="spec/samples/bad_code.lua:2" classname="spec/samples/bad_code.lua">
931
- <failure type="W212" message="spec/samples/bad_code.lua:3:23: unused variable length argument"/>
932
- </testcase>
933
- <testcase name="spec/samples/bad_code.lua:3" classname="spec/samples/bad_code.lua">
934
- <failure type="W111" message="spec/samples/bad_code.lua:7:10: setting non-standard global variable 'embrace'"/>
935
- </testcase>
936
- <testcase name="spec/samples/bad_code.lua:4" classname="spec/samples/bad_code.lua">
937
- <failure type="W412" message="spec/samples/bad_code.lua:8:10: variable 'opt' was previously defined as an argument on line 7"/>
938
- </testcase>
939
- <testcase name="spec/samples/bad_code.lua:5" classname="spec/samples/bad_code.lua">
940
- <failure type="W113" message="spec/samples/bad_code.lua:9:11: accessing undefined variable 'hepler'"/>
941
- </testcase>
942
- <testcase name="spec/samples/python_code.lua:1" classname="spec/samples/python_code.lua">
943
- <failure type="E011" message="spec/samples/python_code.lua:1:6: expected '=' near '__future__'"/>
944
- </testcase>
945
- </testsuite>
946
- ]] , get_output " bad_file spec/samples/good_code.lua spec/samples/bad_code.lua spec/samples/python_code.lua --std=lua52 --formatter JUnit --no-config" )
947
- end )
948
-
949
- it (" has built-in Visual Studio aware formatter" , function ()
950
- assert .equal ([[
951
- luacheck : fatal error F1: couldn't check bad_file: couldn't read: No such file or directory
952
- spec/samples/bad_code.lua(3,16) : warning W211: unused function 'helper'
953
- spec/samples/bad_code.lua(3,23) : warning W212: unused variable length argument
954
- spec/samples/bad_code.lua(7,10) : warning W111: setting non-standard global variable 'embrace'
955
- spec/samples/bad_code.lua(8,10) : warning W412: variable 'opt' was previously defined as an argument on line 7
956
- spec/samples/bad_code.lua(9,11) : warning W113: accessing undefined variable 'hepler'
957
- spec/samples/python_code.lua(1,6) : error E011: expected '=' near '__future__'
958
- ]] , get_output " bad_file spec/samples/good_code.lua spec/samples/bad_code.lua spec/samples/python_code.lua --std=lua52 --formatter visual_studio --no-config" )
959
- end )
960
-
961
- it (" has built-in simple warning-per-line formatter" , function ()
962
- assert .equal (" " , get_output " spec/samples/good_code.lua --std=lua52 --formatter plain --no-config" )
963
-
964
- assert .equal ([[
965
- spec/samples/bad_code.lua:3:16: unused function 'helper'
966
- spec/samples/bad_code.lua:3:23: unused variable length argument
967
- spec/samples/bad_code.lua:7:10: setting non-standard global variable 'embrace'
968
- spec/samples/bad_code.lua:8:10: variable 'opt' was previously defined as an argument on line 7
969
- spec/samples/bad_code.lua:9:11: accessing undefined variable 'hepler'
970
- spec/samples/python_code.lua:1:6: expected '=' near '__future__'
971
- ]] , get_output " spec/samples/good_code.lua spec/samples/bad_code.lua spec/samples/python_code.lua --std=lua52 --formatter plain --no-config" )
972
-
973
- assert .equal ([[
974
- spec/samples/404.lua: I/O error (couldn't read: No such file or directory)
975
- ]] , get_output " spec/samples/404.lua --formatter plain --no-config" )
976
-
977
- assert .equal ([[
978
- spec/samples/bad_code.lua:3:16: (W211) unused function 'helper'
979
- spec/samples/bad_code.lua:3:23: (W212) unused variable length argument
980
- spec/samples/bad_code.lua:7:10: (W111) setting non-standard global variable 'embrace'
981
- spec/samples/bad_code.lua:8:10: (W412) variable 'opt' was previously defined as an argument on line 7
982
- spec/samples/bad_code.lua:9:11: (W113) accessing undefined variable 'hepler'
983
- spec/samples/python_code.lua:1:6: (E011) expected '=' near '__future__'
984
- ]] , get_output " spec/samples/good_code.lua spec/samples/bad_code.lua spec/samples/python_code.lua --std=lua52 --formatter plain --codes --no-config" )
985
- end )
986
-
987
873
it (" provides version info" , function ()
988
874
local output = get_output " --version"
989
875
assert .truthy (output :match (" ^Luacheck: [%w%p ]+\n Lua: [%w%p ]+\n Argparse: [%w%p ]+\n LuaLanes: [%w%p ]+\n $" ))
0 commit comments