MINOR: stats: protect against future stats fields omissions

As seen in commits 33a4461fa ("BUG/MINOR: stats: Fix Lua's `get_stats`
function") and a46b142e8 ("BUG/MINOR: Missing stat_field_names (since
f21d17bb)") it seems frequent to omit to update stats_fields[] when
adding a new ST_F_xxx entry. This breaks Lua's get_stats() and shows
a "(null)" in the header of "show stat", but that one is not detectable
to the naked eye anymore.

Let's add a reminder above the enum declaration about this, and a small
reg tests checking for the absence of "(null)". It was verified to fail
before the last patch above.
This commit is contained in:
Willy Tarreau 2023-06-02 08:35:50 +02:00
parent 33a4461fa9
commit ae0f8be011
2 changed files with 17 additions and 1 deletions

View File

@ -355,7 +355,9 @@ enum info_field {
/* Stats fields for CSV output. For any field added here, please add the text
* representation in the stat_fields array. Please only append at the end,
* before the ST_F_TOTAL_FIELDS entry, and never insert anything in the middle
* nor at the beginning.
* nor at the beginning.When adding an entry here, one must always add a
* corresponding one in stat_fields[] otherwise Lua's get_stats() will break,
* and "show stats" will show a null.
*/
enum stat_field {
ST_F_PXNAME,

View File

@ -0,0 +1,14 @@
varnishtest "Verifies the absence of (null) in 'show stats' header"
# This can happen if a new ST_F_xxx enum is added without updating
# stats_fields[].
feature ignore_unknown_macro
haproxy h1 -conf {
} -start
haproxy h1 -cli {
send "show stat"
expect !~ (null)
}