Module Name:    src
Committed By:   rillig
Date:           Thu Dec 16 21:14:59 UTC 2021

Modified Files:
        src/tests/usr.bin/xlint/lint1: msg_230_uchar.c
        src/usr.bin/xlint/lint1: check-msgs.lua

Log Message:
tests/lint: ensure that tests on a message mention this message


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/tests/usr.bin/xlint/lint1/msg_230_uchar.c
cvs rdiff -u -r1.12 -r1.13 src/usr.bin/xlint/lint1/check-msgs.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/xlint/lint1/msg_230_uchar.c
diff -u src/tests/usr.bin/xlint/lint1/msg_230_uchar.c:1.5 src/tests/usr.bin/xlint/lint1/msg_230_uchar.c:1.6
--- src/tests/usr.bin/xlint/lint1/msg_230_uchar.c:1.5	Thu Dec 16 20:23:40 2021
+++ src/tests/usr.bin/xlint/lint1/msg_230_uchar.c	Thu Dec 16 21:14:59 2021
@@ -1,7 +1,7 @@
-/*	$NetBSD: msg_230_uchar.c,v 1.5 2021/12/16 20:23:40 rillig Exp $	*/
+/*	$NetBSD: msg_230_uchar.c,v 1.6 2021/12/16 21:14:59 rillig Exp $	*/
 # 3 "msg_230_uchar.c"
 
-// Test for message: nonportable character comparison, op %s [230]
+// Test for message: nonportable character comparison '%s %d' [230]
 
 /* lint1-flags: -S -g -p -w */
 /* lint1-only-if: uchar */

Index: src/usr.bin/xlint/lint1/check-msgs.lua
diff -u src/usr.bin/xlint/lint1/check-msgs.lua:1.12 src/usr.bin/xlint/lint1/check-msgs.lua:1.13
--- src/usr.bin/xlint/lint1/check-msgs.lua:1.12	Sat Sep  4 12:30:46 2021
+++ src/usr.bin/xlint/lint1/check-msgs.lua	Thu Dec 16 21:14:58 2021
@@ -1,5 +1,5 @@
 #! /usr/bin/lua
--- $NetBSD: check-msgs.lua,v 1.12 2021/09/04 12:30:46 rillig Exp $
+-- $NetBSD: check-msgs.lua,v 1.13 2021/12/16 21:14:58 rillig Exp $
 
 --[[
 
@@ -98,6 +98,8 @@ local function file_contains(filename, t
 end
 
 
+-- Ensure that each test file for a particular message mentions the full text
+-- of that message and the message ID.
 local function check_test_files(msgs)
 
   local msgids = {}
@@ -107,13 +109,20 @@ local function check_test_files(msgs)
   table.sort(msgids)
 
   local testdir = "../../../tests/usr.bin/xlint/lint1"
-  for _, msgid in ipairs(msgids) do
-    local msg = msgs[msgid]:gsub("\\(.)", "%1")
-    local filename = ("%s/msg_%03d.c"):format(testdir, msgid)
-    if not file_contains(filename, msg) then
-      print_error("%s must contain: %s", filename, msg)
+  local cmd = ("cd '%s' && printf '%%s\\n' msg_[0-9][0-9][0-9]*.c"):format(testdir)
+  local filenames = assert(io.popen(cmd))
+  for filename in filenames:lines() do
+    local msgid = tonumber(filename:match("^msg_(%d%d%d)"))
+    if msgs[msgid] then
+      local unescaped_msg = msgs[msgid]:gsub("\\(.)", "%1")
+      local expected_text = ("%s [%d]"):format(unescaped_msg, msgid)
+      local fullname = ("%s/%s"):format(testdir, filename)
+      if not file_contains(fullname, expected_text) then
+        print_error("%s must contain: %s", fullname, expected_text)
+      end
     end
   end
+  filenames:close()
 end
 
 local function main(arg)

Reply via email to