diff --git a/tests/misc/Debug_category.ml b/tests/misc/Debug_category.ml
index 01515996ec887e0b04587bb5712cdf435c66b4d6..e3350258da575dd27ebe93ff3b7fd79b27a899ce 100644
--- a/tests/misc/Debug_category.ml
+++ b/tests/misc/Debug_category.ml
@@ -6,15 +6,15 @@ include
     let help = "test"
   end)
 
-let akey = register_category "a"
-let ckey = register_category "a:b:c"
-let bkey = register_category "a:b"
-let dkey = register_category "d"
+let akey = register_category ~help:"A short description for a" "a"
+let ckey = register_category ~help:"A short description for a::b::c" "a:b:c"
+let bkey = register_category ~help:"A short description for a::b" "a:b"
+let dkey = register_category ~help:"A short description for d" "d"
 
-let wkey = register_warn_category "a"
-let wkey_vis_err = register_warn_category "test-vis-err"
-let wkey_inv_err = register_warn_category "test-inv-err"
-let wkey_failure = register_warn_category "test-failure"
+let wkey = register_warn_category ~help:"A short description for a" "a"
+let wkey_vis_err = register_warn_category ~help:"A short description for test-vis-err" "test-vis-err"
+let wkey_inv_err = register_warn_category ~help:"A short description for test-inv-err" "test-inv-err"
+let wkey_failure = register_warn_category ~help:"A short description for test-failure" "test-failure"
 let () = set_warn_status wkey_vis_err Log.Winactive
 let () = set_warn_status wkey_inv_err Log.Winactive
 let () = set_warn_status wkey_failure Log.Winactive
diff --git a/tests/misc/debug_category.i b/tests/misc/debug_category.i
index f4b77fa6c365afe2abb45fb1aa71d9299e60b189..c9771f21c1de46995a087c84093d8dfbb90d1c5c 100644
--- a/tests/misc/debug_category.i
+++ b/tests/misc/debug_category.i
@@ -1,7 +1,8 @@
 /* run.config*
 MODULE: Debug_category
 EXIT: 0
-  OPT: -test-msg-key help -test-warn-key="a=inactive"
+  OPT: -test-msg-key help
+  OPT: -test-warn-key help -test-warn-key="a=inactive"
   OPT: -test-msg-key a -test-warn-key="a=inactive"
   OPT: -test-msg-key a -test-msg-key="-a:b" -test-warn-key="a=inactive"
   OPT: -test-msg-key a -test-msg-key="-a:b" -test-msg-key a:b:c -test-warn-key="a=inactive"
diff --git a/tests/misc/oracle/debug_category.0.res.oracle b/tests/misc/oracle/debug_category.0.res.oracle
index 32b25410f7869c25fc8b49b54f24b67ef1da34d9..6281af6ac7c686dff760a9096f88c4ac1a4ec3b8 100644
--- a/tests/misc/oracle/debug_category.0.res.oracle
+++ b/tests/misc/oracle/debug_category.0.res.oracle
@@ -1,6 +1,6 @@
-[test] Available message categories are:
-    *
-    a
-    a:b
-    a:b:c
-    d
+[test] Message categories for test are:
+    *     : All categories
+    a     : A short description for a
+    a:b   : A short description for a::b
+    a:b:c : A short description for a::b::c
+    d     : A short description for d
diff --git a/tests/misc/oracle/debug_category.1.res.oracle b/tests/misc/oracle/debug_category.1.res.oracle
index 7452d354800f3d6233dd65bc10460e625f630121..c5e413169e7a346ce5acf6f1cefe4fc304416d47 100644
--- a/tests/misc/oracle/debug_category.1.res.oracle
+++ b/tests/misc/oracle/debug_category.1.res.oracle
@@ -1,11 +1,6 @@
-[kernel] Parsing debug_category.i (no preprocessing)
-[test] Warning: Uncategorized warning
-[test:a] A is enabled
-[test:a:b] B is enabled
-[test:a:b:c] C is enabled
-[test:a] A is enabled
-[test:a:b] B is enabled
-[test:a:b:c] C is enabled
-[test:a] A is enabled
-[test:a:b] B is enabled
-[test:a:b:c] C is enabled
+[test] Warning categories for test are
+    *            : active   : All warning categories
+    a            : inactive : A short description for a
+    test-failure : inactive : A short description for test-failure
+    test-inv-err : inactive : A short description for test-inv-err
+    test-vis-err : inactive : A short description for test-vis-err
diff --git a/tests/misc/oracle/debug_category.10.res.oracle b/tests/misc/oracle/debug_category.10.res.oracle
index e1d1746e2bc8462bde195cb2f71de89b1a86f4af..b34487855db23d4970e7c1c38098e09f3f1bb3c3 100644
--- a/tests/misc/oracle/debug_category.10.res.oracle
+++ b/tests/misc/oracle/debug_category.10.res.oracle
@@ -1,4 +1,4 @@
 [kernel] Parsing debug_category.i (no preprocessing)
 [test] Warning: Uncategorized warning
-[test] User Error: warning  treated as fatal error.
-[kernel] Plug-in test aborted: invalid user input.
+[test:a] Warning A
+[test:a] Another Warning A
diff --git a/tests/misc/oracle/debug_category.11.res.oracle b/tests/misc/oracle/debug_category.11.res.oracle
index 6fb0b39bd0665b393ffa0bc32bba2b913b5496ed..e1d1746e2bc8462bde195cb2f71de89b1a86f4af 100644
--- a/tests/misc/oracle/debug_category.11.res.oracle
+++ b/tests/misc/oracle/debug_category.11.res.oracle
@@ -1,5 +1,4 @@
 [kernel] Parsing debug_category.i (no preprocessing)
 [test] Warning: Uncategorized warning
-[test:a] Warning: 
-  Warning A
-  (warn-once: no further messages from category 'a' will be emitted)
+[test] User Error: warning  treated as fatal error.
+[kernel] Plug-in test aborted: invalid user input.
diff --git a/tests/misc/oracle/debug_category.12.res.oracle b/tests/misc/oracle/debug_category.12.res.oracle
index 8f40020822cb9a258122d241e3362f92a33017a3..6fb0b39bd0665b393ffa0bc32bba2b913b5496ed 100644
--- a/tests/misc/oracle/debug_category.12.res.oracle
+++ b/tests/misc/oracle/debug_category.12.res.oracle
@@ -1,5 +1,5 @@
 [kernel] Parsing debug_category.i (no preprocessing)
 [test] Warning: Uncategorized warning
-[test:a] 
+[test:a] Warning: 
   Warning A
-  (warn-feedback-once: no further messages from category 'a' will be emitted)
+  (warn-once: no further messages from category 'a' will be emitted)
diff --git a/tests/misc/oracle/debug_category.13.res.oracle b/tests/misc/oracle/debug_category.13.res.oracle
index f7d982e9f13f7f2910553db3af0c8978c792bb6c..8f40020822cb9a258122d241e3362f92a33017a3 100644
--- a/tests/misc/oracle/debug_category.13.res.oracle
+++ b/tests/misc/oracle/debug_category.13.res.oracle
@@ -1,7 +1,5 @@
 [kernel] Parsing debug_category.i (no preprocessing)
 [test] Warning: Uncategorized warning
-[test:a] Warning: 
+[test:a] 
   Warning A
-  (warn-error-once: no further messages from category 'a' will be emitted)
-[test] Warning: warning a treated as deferred error. See above messages for more information.
-[kernel] Plug-in test aborted: invalid user input.
+  (warn-feedback-once: no further messages from category 'a' will be emitted)
diff --git a/tests/misc/oracle/debug_category.14.res.oracle b/tests/misc/oracle/debug_category.14.res.oracle
index b33ecc559a42c3b34bcbacc30b92a4fa569cf051..f7d982e9f13f7f2910553db3af0c8978c792bb6c 100644
--- a/tests/misc/oracle/debug_category.14.res.oracle
+++ b/tests/misc/oracle/debug_category.14.res.oracle
@@ -1,7 +1,7 @@
 [kernel] Parsing debug_category.i (no preprocessing)
 [test] Warning: Uncategorized warning
-[test:a] Warning: Warning A
-[test] User Error: Testing error function
-[test:a] Warning: Another Warning A
-[test] User Error: Deferred error message was emitted during execution. See above messages for more information.
+[test:a] Warning: 
+  Warning A
+  (warn-error-once: no further messages from category 'a' will be emitted)
+[test] Warning: warning a treated as deferred error. See above messages for more information.
 [kernel] Plug-in test aborted: invalid user input.
diff --git a/tests/misc/oracle/debug_category.15.res.oracle b/tests/misc/oracle/debug_category.15.res.oracle
index 6857c762cdb581b0e618826742415ce950b0b6b1..b33ecc559a42c3b34bcbacc30b92a4fa569cf051 100644
--- a/tests/misc/oracle/debug_category.15.res.oracle
+++ b/tests/misc/oracle/debug_category.15.res.oracle
@@ -1,6 +1,7 @@
 [kernel] Parsing debug_category.i (no preprocessing)
 [test] Warning: Uncategorized warning
 [test:a] Warning: Warning A
+[test] User Error: Testing error function
 [test:a] Warning: Another Warning A
-[test] Failure: Deferred error message was emitted during execution.
+[test] User Error: Deferred error message was emitted during execution. See above messages for more information.
 [kernel] Plug-in test aborted: invalid user input.
diff --git a/tests/misc/oracle/debug_category.16.res.oracle b/tests/misc/oracle/debug_category.16.res.oracle
index 64448bd5bd4427d7ac9cf9d550df0bb57d79048c..6857c762cdb581b0e618826742415ce950b0b6b1 100644
--- a/tests/misc/oracle/debug_category.16.res.oracle
+++ b/tests/misc/oracle/debug_category.16.res.oracle
@@ -1,15 +1,6 @@
 [kernel] Parsing debug_category.i (no preprocessing)
 [test] Warning: Uncategorized warning
 [test:a] Warning: Warning A
-[test] Failure: Testing failure function
 [test:a] Warning: Another Warning A
-[test] Failure: Deferred internal error message was emitted during execution. See above messages for more information.
-[kernel] Current source was: <unknown>
-  The full backtrace is:
-  
-  Plug-in test aborted: internal error.
-  Please report as 'crash' at https://git.frama-c.com/pub/frama-c/issues
-  Your Frama-C version is VERSION
-  Note that a version and a backtrace alone often do not contain enough
-  information to understand the bug. Guidelines for reporting bugs are at:
-  https://git.frama-c.com/pub/frama-c/-/wikis/Guidelines-for-reporting-bugs
+[test] Failure: Deferred error message was emitted during execution.
+[kernel] Plug-in test aborted: invalid user input.
diff --git a/tests/misc/oracle/debug_category.17.res.oracle b/tests/misc/oracle/debug_category.17.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..64448bd5bd4427d7ac9cf9d550df0bb57d79048c
--- /dev/null
+++ b/tests/misc/oracle/debug_category.17.res.oracle
@@ -0,0 +1,15 @@
+[kernel] Parsing debug_category.i (no preprocessing)
+[test] Warning: Uncategorized warning
+[test:a] Warning: Warning A
+[test] Failure: Testing failure function
+[test:a] Warning: Another Warning A
+[test] Failure: Deferred internal error message was emitted during execution. See above messages for more information.
+[kernel] Current source was: <unknown>
+  The full backtrace is:
+  
+  Plug-in test aborted: internal error.
+  Please report as 'crash' at https://git.frama-c.com/pub/frama-c/issues
+  Your Frama-C version is VERSION
+  Note that a version and a backtrace alone often do not contain enough
+  information to understand the bug. Guidelines for reporting bugs are at:
+  https://git.frama-c.com/pub/frama-c/-/wikis/Guidelines-for-reporting-bugs
diff --git a/tests/misc/oracle/debug_category.2.res.oracle b/tests/misc/oracle/debug_category.2.res.oracle
index 8c6f9e506b93254deeb9fab9e696330d8b0a7468..7452d354800f3d6233dd65bc10460e625f630121 100644
--- a/tests/misc/oracle/debug_category.2.res.oracle
+++ b/tests/misc/oracle/debug_category.2.res.oracle
@@ -1,5 +1,11 @@
 [kernel] Parsing debug_category.i (no preprocessing)
 [test] Warning: Uncategorized warning
 [test:a] A is enabled
+[test:a:b] B is enabled
+[test:a:b:c] C is enabled
 [test:a] A is enabled
+[test:a:b] B is enabled
+[test:a:b:c] C is enabled
 [test:a] A is enabled
+[test:a:b] B is enabled
+[test:a:b:c] C is enabled
diff --git a/tests/misc/oracle/debug_category.3.res.oracle b/tests/misc/oracle/debug_category.3.res.oracle
index ae35aa6bd0c9aa1402dbcc30b5e516a29dc72c5b..8c6f9e506b93254deeb9fab9e696330d8b0a7468 100644
--- a/tests/misc/oracle/debug_category.3.res.oracle
+++ b/tests/misc/oracle/debug_category.3.res.oracle
@@ -1,8 +1,5 @@
 [kernel] Parsing debug_category.i (no preprocessing)
 [test] Warning: Uncategorized warning
 [test:a] A is enabled
-[test:a:b:c] C is enabled
 [test:a] A is enabled
-[test:a:b:c] C is enabled
 [test:a] A is enabled
-[test:a:b:c] C is enabled
diff --git a/tests/misc/oracle/debug_category.4.res.oracle b/tests/misc/oracle/debug_category.4.res.oracle
index 69c1ff4aaf6493532324de6cc824adbd1e0986d2..ae35aa6bd0c9aa1402dbcc30b5e516a29dc72c5b 100644
--- a/tests/misc/oracle/debug_category.4.res.oracle
+++ b/tests/misc/oracle/debug_category.4.res.oracle
@@ -1,8 +1,8 @@
 [kernel] Parsing debug_category.i (no preprocessing)
 [test] Warning: Uncategorized warning
+[test:a] A is enabled
 [test:a:b:c] C is enabled
-[test:d] D is enabled
+[test:a] A is enabled
 [test:a:b:c] C is enabled
-[test:d] D is enabled
+[test:a] A is enabled
 [test:a:b:c] C is enabled
-[test:d] D is enabled
diff --git a/tests/misc/oracle/debug_category.5.res.oracle b/tests/misc/oracle/debug_category.5.res.oracle
index baaa05f1f56e65fb832bfd32cbe67922a60d751a..69c1ff4aaf6493532324de6cc824adbd1e0986d2 100644
--- a/tests/misc/oracle/debug_category.5.res.oracle
+++ b/tests/misc/oracle/debug_category.5.res.oracle
@@ -1,14 +1,8 @@
 [kernel] Parsing debug_category.i (no preprocessing)
 [test] Warning: Uncategorized warning
-[test:a] A is enabled
-[test:a:b] B is enabled
 [test:a:b:c] C is enabled
 [test:d] D is enabled
-[test:a] A is enabled
-[test:a:b] B is enabled
 [test:a:b:c] C is enabled
 [test:d] D is enabled
-[test:a] A is enabled
-[test:a:b] B is enabled
 [test:a:b:c] C is enabled
 [test:d] D is enabled
diff --git a/tests/misc/oracle/debug_category.6.res.oracle b/tests/misc/oracle/debug_category.6.res.oracle
index 6aa66ddb11b47a77f66a7954ae0107327f1930ca..baaa05f1f56e65fb832bfd32cbe67922a60d751a 100644
--- a/tests/misc/oracle/debug_category.6.res.oracle
+++ b/tests/misc/oracle/debug_category.6.res.oracle
@@ -1,4 +1,14 @@
 [kernel] Parsing debug_category.i (no preprocessing)
 [test] Warning: Uncategorized warning
-[test:a] Warning: Warning A
-[test:a] Warning: Another Warning A
+[test:a] A is enabled
+[test:a:b] B is enabled
+[test:a:b:c] C is enabled
+[test:d] D is enabled
+[test:a] A is enabled
+[test:a:b] B is enabled
+[test:a:b:c] C is enabled
+[test:d] D is enabled
+[test:a] A is enabled
+[test:a:b] B is enabled
+[test:a:b:c] C is enabled
+[test:d] D is enabled
diff --git a/tests/misc/oracle/debug_category.7.res.oracle b/tests/misc/oracle/debug_category.7.res.oracle
index 66200a611dba982af8261ffa538670a8f3908d45..6aa66ddb11b47a77f66a7954ae0107327f1930ca 100644
--- a/tests/misc/oracle/debug_category.7.res.oracle
+++ b/tests/misc/oracle/debug_category.7.res.oracle
@@ -2,5 +2,3 @@
 [test] Warning: Uncategorized warning
 [test:a] Warning: Warning A
 [test:a] Warning: Another Warning A
-[test] Warning: warning a treated as deferred error. See above messages for more information.
-[kernel] Plug-in test aborted: invalid user input.
diff --git a/tests/misc/oracle/debug_category.8.res.oracle b/tests/misc/oracle/debug_category.8.res.oracle
index ebba70ad52921a3403b40922ac739315251ea2c9..66200a611dba982af8261ffa538670a8f3908d45 100644
--- a/tests/misc/oracle/debug_category.8.res.oracle
+++ b/tests/misc/oracle/debug_category.8.res.oracle
@@ -1,5 +1,6 @@
 [kernel] Parsing debug_category.i (no preprocessing)
 [test] Warning: Uncategorized warning
 [test:a] Warning: Warning A
-[test] User Error: warning a treated as fatal error.
+[test:a] Warning: Another Warning A
+[test] Warning: warning a treated as deferred error. See above messages for more information.
 [kernel] Plug-in test aborted: invalid user input.
diff --git a/tests/misc/oracle/debug_category.9.res.oracle b/tests/misc/oracle/debug_category.9.res.oracle
index b34487855db23d4970e7c1c38098e09f3f1bb3c3..ebba70ad52921a3403b40922ac739315251ea2c9 100644
--- a/tests/misc/oracle/debug_category.9.res.oracle
+++ b/tests/misc/oracle/debug_category.9.res.oracle
@@ -1,4 +1,5 @@
 [kernel] Parsing debug_category.i (no preprocessing)
 [test] Warning: Uncategorized warning
-[test:a] Warning A
-[test:a] Another Warning A
+[test:a] Warning: Warning A
+[test] User Error: warning a treated as fatal error.
+[kernel] Plug-in test aborted: invalid user input.