Module Name: src
Committed By: rillig
Date: Thu Dec 12 05:33:47 UTC 2024
Modified Files:
src/tests/usr.bin/indent: t_options.lua
Log Message:
tests/indent: clean up test driver
To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/tests/usr.bin/indent/t_options.lua
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/tests/usr.bin/indent/t_options.lua
diff -u src/tests/usr.bin/indent/t_options.lua:1.7 src/tests/usr.bin/indent/t_options.lua:1.8
--- src/tests/usr.bin/indent/t_options.lua:1.7 Mon Jun 26 12:21:18 2023
+++ src/tests/usr.bin/indent/t_options.lua Thu Dec 12 05:33:47 2024
@@ -1,4 +1,4 @@
--- $NetBSD: t_options.lua,v 1.7 2023/06/26 12:21:18 rillig Exp $
+-- $NetBSD: t_options.lua,v 1.8 2024/12/12 05:33:47 rillig Exp $
--
-- Copyright (c) 2023 The NetBSD Foundation, Inc.
-- All rights reserved.
@@ -24,11 +24,10 @@
-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-- POSSIBILITY OF SUCH DAMAGE.
--- usage: [INDENT=...] lua t_options.lua <file>...
+-- usage: [INDENT=...] lua t_options.lua <file.c>...
--
--- Test driver for indent that runs indent on several inputs, checks the
--- output and can run indent with different command line options on the same
--- input.
+-- Run indent on several inputs with different command line options, verifying
+-- that the actual output equals the expected output.
--
-- The test files contain the input to be formatted, the formatting options
-- and the output, all as close together as possible. The test files use the
@@ -41,7 +40,8 @@
-- //indent end
-- Finishes an '//indent input' or '//indent run' section.
-- //indent run-equals-input [options]
--- Runs indent on the input, expecting unmodified output.
+-- Runs indent on the input, expecting that the output is the
+-- same as the input.
-- //indent run-equals-prev-output [options]
-- Runs indent on the input, expecting the same output as from
-- the previous run.
@@ -52,7 +52,7 @@
-- are filtered out, they can be used for remarks near the affected code.
--
-- The actual output from running indent is written to stdout, the expected
--- test output is written to 'expected.out'.
+-- test output is written to 'expected.out', ready to be compared using diff.
local warned = false
@@ -78,7 +78,7 @@ local output_lineno = 0
local expected_out = assert(io.open("expected.out", "w"))
-local function die(ln, msg)
+local function err(ln, msg)
io.stderr:write(("%s:%d: error: %s\n"):format(filename, ln, msg))
os.exit(false)
end
@@ -112,9 +112,8 @@ end
local function check_empty_lines_block(n)
if max_empty_lines ~= n and seen_input_section then
- local lines = n ~= 1 and "lines" or "line"
warn(lineno, ("expecting %d empty %s, got %d")
- :format(n, lines, max_empty_lines))
+ :format(n, n ~= 1 and "lines" or "line", max_empty_lines))
end
end
@@ -139,23 +138,23 @@ local function run_indent(inp, args)
end
end
-local function handle_empty_section(line)
+local function handle_line_outside_section(line)
if line == "" then
curr_empty_lines = curr_empty_lines + 1
- else
- if curr_empty_lines > max_empty_lines then
- max_empty_lines = curr_empty_lines
- end
- if curr_empty_lines > 0 then
- if prev_empty_lines > 1 then
- warn(lineno - curr_empty_lines - 1,
- prev_empty_lines .. " empty lines a few "
- .. "lines above, should be only 1")
- end
- prev_empty_lines = curr_empty_lines
+ return
+ end
+ if curr_empty_lines > max_empty_lines then
+ max_empty_lines = curr_empty_lines
+ end
+ if curr_empty_lines > 0 then
+ if prev_empty_lines > 1 then
+ warn(lineno - curr_empty_lines - 1,
+ prev_empty_lines .. " empty lines a few "
+ .. "lines above, should be only 1")
end
- curr_empty_lines = 0
+ prev_empty_lines = curr_empty_lines
end
+ curr_empty_lines = 0
end
local function handle_indent_input()
@@ -264,7 +263,7 @@ local function handle_indent_directive(l
elseif command == "end" then
warn(lineno, "misplaced '//indent end'")
else
- die(lineno, "invalid line '" .. line .. "'")
+ err(lineno, "invalid line '" .. line .. "'")
end
prev_empty_lines = 0
@@ -273,7 +272,7 @@ end
local function handle_line(line)
if section == "" then
- handle_empty_section(line)
+ handle_line_outside_section(line)
end
-- Hide comments starting with dollar from indent; they are used for
@@ -326,7 +325,7 @@ local function main()
handle_file(arg)
end
if section ~= "" then
- die(lineno, "still in section '" .. section .. "'")
+ err(lineno, "still in section '" .. section .. "'")
end
check_unused_input()
expected_out:close()