aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeepak Singh Rathore <dsrdeepak8@gmail.com>2021-06-23 01:56:56 +0530
committerGitHub <noreply@github.com>2021-06-22 17:26:56 -0300
commita9ea4395bca05516e8297588ec943c648f726345 (patch)
tree2c3106d2841e72acf999a324d84f34ee5f37bb39
parent7e6bfb6d8c1d45d62ceb4bbe8e89a184d4c96ffb (diff)
downloadluarocks-a9ea4395bca05516e8297588ec943c648f726345.tar.gz
luarocks-a9ea4395bca05516e8297588ec943c648f726345.tar.bz2
luarocks-a9ea4395bca05516e8297588ec943c648f726345.zip
luarocks test: add --prepare flag (#1314)
* Added prepare flag in test command * Added test for prepare flag in spec/test_spec.lua Fixes #1303
-rw-r--r--spec/test_spec.lua26
-rw-r--r--src/luarocks/cmd/test.lua9
-rw-r--r--src/luarocks/test.lua8
3 files changed, 37 insertions, 6 deletions
diff --git a/spec/test_spec.lua b/spec/test_spec.lua
index 220ae632..943d0e48 100644
--- a/spec/test_spec.lua
+++ b/spec/test_spec.lua
@@ -70,6 +70,32 @@ describe("luarocks test #integration", function()
70 -- Assert that busted ran, whether successfully or not 70 -- Assert that busted ran, whether successfully or not
71 assert.match("%d+ success.* / %d+ failure.* / %d+ error.* / %d+ pending", output) 71 assert.match("%d+ success.* / %d+ failure.* / %d+ error.* / %d+ pending", output)
72 end) 72 end)
73
74 it("prepare", function()
75 finally(function()
76 -- delete downloaded and unpacked files
77 lfs.chdir(testing_paths.testrun_dir)
78 test_env.remove_dir("busted_project-0.1-1")
79 os.remove("busted_project-0.1-1.src.rock")
80 end)
81
82 -- make luassert
83 assert.is_true(run.luarocks_bool("download --server="..testing_paths.fixtures_repo_dir.." busted_project 0.1-1"))
84 assert.is_true(run.luarocks_bool("unpack busted_project-0.1-1.src.rock"))
85 lfs.chdir("busted_project-0.1-1/busted_project")
86 assert.is_true(run.luarocks_bool("make"))
87
88 run.luarocks_bool("remove busted")
89 local prepareOutput = run.luarocks_bool("test --prepare")
90 assert.is_true(run.luarocks_bool("show busted"))
91
92 -- Assert that "test --prepare" run successfully
93 assert.is_true(prepareOutput)
94
95 local output = run.luarocks("test")
96 assert.not_match(tostring(prepareOutput), output)
97
98 end)
73 end) 99 end)
74end) 100end)
75 101
diff --git a/src/luarocks/cmd/test.lua b/src/luarocks/cmd/test.lua
index 21838c90..be9a5dfb 100644
--- a/src/luarocks/cmd/test.lua
+++ b/src/luarocks/cmd/test.lua
@@ -23,7 +23,8 @@ to separate LuaRocks arguments from test suite arguments.]],
23 :args("?") 23 :args("?")
24 cmd:argument("args", "Test suite arguments.") 24 cmd:argument("args", "Test suite arguments.")
25 :args("*") 25 :args("*")
26 26 cmd:flag("--prepare", "Only install dependencies needed for testing only, but do not run the test")
27
27 cmd:option("--test-type", "Specify the test suite type manually if it was ".. 28 cmd:option("--test-type", "Specify the test suite type manually if it was "..
28 "not specified in the rockspec and it could not be auto-detected.") 29 "not specified in the rockspec and it could not be auto-detected.")
29 :argname("<type>") 30 :argname("<type>")
@@ -31,7 +32,7 @@ end
31 32
32function cmd_test.command(args) 33function cmd_test.command(args)
33 if args.rockspec and args.rockspec:match("rockspec$") then 34 if args.rockspec and args.rockspec:match("rockspec$") then
34 return test.run_test_suite(args.rockspec, args.test_type, args.args) 35 return test.run_test_suite(args.rockspec, args.test_type, args.args, args.prepare)
35 end 36 end
36 37
37 table.insert(args.args, 1, args.rockspec) 38 table.insert(args.args, 1, args.rockspec)
@@ -40,8 +41,8 @@ function cmd_test.command(args)
40 if not rockspec then 41 if not rockspec then
41 return nil, err 42 return nil, err
42 end 43 end
43 44
44 return test.run_test_suite(rockspec, args.test_type, args.args) 45 return test.run_test_suite(rockspec, args.test_type, args.args, args.prepare)
45end 46end
46 47
47return cmd_test 48return cmd_test
diff --git a/src/luarocks/test.lua b/src/luarocks/test.lua
index 15eca234..cf475fd3 100644
--- a/src/luarocks/test.lua
+++ b/src/luarocks/test.lua
@@ -33,7 +33,7 @@ local function get_test_type(rockspec)
33end 33end
34 34
35-- Run test suite as configured in rockspec in the current directory. 35-- Run test suite as configured in rockspec in the current directory.
36function test.run_test_suite(rockspec_arg, test_type, args) 36function test.run_test_suite(rockspec_arg, test_type, args, prepare)
37 local rockspec 37 local rockspec
38 if type(rockspec_arg) == "string" then 38 if type(rockspec_arg) == "string" then
39 local err, errcode 39 local err, errcode
@@ -68,7 +68,11 @@ function test.run_test_suite(rockspec_arg, test_type, args)
68 return nil, "failed loading test execution module " .. mod_name 68 return nil, "failed loading test execution module " .. mod_name
69 end 69 end
70 70
71 return test_mod.run_tests(rockspec.test, args) 71 if prepare then
72 return test_mod.run_tests(rockspec_arg, {"--version"})
73 else
74 return test_mod.run_tests(rockspec.test, args)
75 end
72end 76end
73 77
74return test 78return test