tinyyarn

scenario testing of Unix command line tools
Log | Files | Refs | README | LICENSE

commit 6c6c7a4b6305e34d4c7db6d601705ee20ff0e9cb
parent 4a0e87f86be277c8777bb143b99d65edc4ecbff7
Author: Richard Ipsum <richardipsum@fastmail.co.uk>
Date:   Sat,  2 Mar 2019 13:09:14 +0000

Run yarns in the order in which they are written

Diffstat:
Mtyarn.in | 17++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/tyarn.in b/tyarn.in @@ -121,7 +121,7 @@ function parse_scenario_line(scenario, scenario_name, steps_seen, return last_step_type end -function _parse_scenarios(scenarios, file, scenario_name, scenario_line_no) +function _parse_scenarios(scenario_list, scenarios, file, scenario_name, scenario_line_no) debug('Parsing scenario', scenario_name) last_step_type = nil scenario = {} @@ -151,10 +151,11 @@ function _parse_scenarios(scenarios, file, scenario_name, scenario_line_no) -- validate, and store current scenario validate_scenario(steps_seen, scenario_name, scenario_line_no) scenarios[scenario_name] = scenario + table.insert(scenario_list, scenario_name) -- now onto the next scenario scenario_name = matches[2] - _parse_scenarios(scenarios, file, scenario_name, line_no) + _parse_scenarios(scenario_list, scenarios, file, scenario_name, line_no) return end end @@ -164,10 +165,12 @@ function _parse_scenarios(scenarios, file, scenario_name, scenario_line_no) if scenario_name then validate_scenario(steps_seen, scenario_name, scenario_line_no) scenarios[scenario_name] = scenario + table.insert(scenario_list, scenario_name) end end function parse_scenarios(filepath) + scenario_list = {} scenarios = {} line_no = 0 @@ -190,9 +193,9 @@ function parse_scenarios(filepath) end -- now we have the base case, begin the recursion - _parse_scenarios(scenarios, file, scenario_name, line_no) + _parse_scenarios(scenario_list, scenarios, file, scenario_name, line_no) - return scenarios + return scenario_list, scenarios end function find_matching_implementation(implementations, step) @@ -420,11 +423,11 @@ if parsed_args["debug"] or DEBUG then end end -scenarios = parse_scenarios(parsed_args[1]) +scenario_list, scenarios = parse_scenarios(parsed_args[1]) implementations = parse_implementations(parsed_args[2]) -for k,v in pairs(scenarios) do - run_scenario(scenarios, implementations, k, parsed_args['shell_lib']) +for _, scenario_name in ipairs(scenario_list) do + run_scenario(scenarios, implementations, scenario_name, parsed_args['shell_lib']) seen_scenario = true end