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.
/* 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,
--- /dev/null
+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)
+}