<p>osmith has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/libosmocore/+/23389">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">tests/stats: enable logging in test output<br><br>Move test output from stdout to stderr and enable logging to stderr.<br>This is in preparation for the next patch, which will add a new log<br>message when osmo_stat_item_get_next() skips a value.<br><br>Related: SYS#4877<br>Change-Id: Ie0eaec2f93ac6859397a6bfca45039fdcc27cb9e<br>---<br>M tests/stats/stats_test.c<br>A tests/stats/stats_test.err<br>M tests/stats/stats_test.ok<br>M tests/testsuite.at<br>4 files changed, 177 insertions(+), 163 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/89/23389/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/tests/stats/stats_test.c b/tests/stats/stats_test.c</span><br><span>index 05caf98..707f606 100644</span><br><span>--- a/tests/stats/stats_test.c</span><br><span>+++ b/tests/stats/stats_test.c</span><br><span>@@ -22,6 +22,7 @@</span><br><span>  *</span><br><span>  */</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/core/application.h></span><br><span> #include <osmocom/core/logging.h></span><br><span> #include <osmocom/core/utils.h></span><br><span> #include <osmocom/core/stat_item.h></span><br><span>@@ -271,7 +272,7 @@</span><br><span> {</span><br><span>         const char *group_name = ctrg ? ctrg->desc->group_name_prefix : "";</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- printf("  %s: counter p=%s g=%s i=%u n=%s v=%lld d=%lld\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ fprintf(stderr, "  %s: counter p=%s g=%s i=%u n=%s v=%lld d=%lld\n",</span><br><span>               srep->name,</span><br><span>               srep->name_prefix ? srep->name_prefix : "",</span><br><span>          group_name, ctrg ? ctrg->idx : 0,</span><br><span>@@ -285,7 +286,7 @@</span><br><span>   const struct osmo_stat_item_group *statg,</span><br><span>    const struct osmo_stat_item_desc *desc, int64_t value)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-     printf("  %s: item p=%s g=%s i=%u n=%s v=%"PRId64" u=%s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "  %s: item p=%s g=%s i=%u n=%s v=%"PRId64" u=%s\n",</span><br><span>             srep->name,</span><br><span>               srep->name_prefix ? srep->name_prefix : "",</span><br><span>          statg->desc->group_name_prefix, statg->idx,</span><br><span>@@ -297,13 +298,13 @@</span><br><span> </span><br><span> static int stats_reporter_test_open(struct osmo_stats_reporter *srep)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  printf("  %s: open\n", srep->name);</span><br><span style="color: hsl(120, 100%, 40%);">+      fprintf(stderr, "  %s: open\n", srep->name);</span><br><span>    return 0;</span><br><span> }</span><br><span> </span><br><span> static int stats_reporter_test_close(struct osmo_stats_reporter *srep)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       printf("  %s: close\n", srep->name);</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "  %s: close\n", srep->name);</span><br><span>   return 0;</span><br><span> }</span><br><span> </span><br><span>@@ -332,7 +333,7 @@</span><br><span> </span><br><span>         int rc;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     printf("Start test: %s\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "Start test: %s\n", __func__);</span><br><span> </span><br><span>         /* Allocate counters and items */</span><br><span>    statg1 = osmo_stat_item_group_alloc(stats_ctx, &statg_desc, 1);</span><br><span>@@ -374,12 +375,12 @@</span><br><span>  rc = osmo_stats_reporter_set_max_class(srep2, OSMO_STATS_CLASS_SUBSCRIBER);</span><br><span>  OSMO_ASSERT(rc >= 0);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    printf("report (initial):\n");</span><br><span style="color: hsl(120, 100%, 40%);">+      fprintf(stderr, "report (initial):\n");</span><br><span>    send_count = 0;</span><br><span>      osmo_stats_report();</span><br><span>         OSMO_ASSERT(send_count == 20);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      printf("report (srep1 global):\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ fprintf(stderr, "report (srep1 global):\n");</span><br><span>       /* force single flush */</span><br><span>     osmo_stats_reporter_set_max_class(srep1, OSMO_STATS_CLASS_GLOBAL);</span><br><span>   srep1->force_single_flush = 1;</span><br><span>@@ -388,7 +389,7 @@</span><br><span>      osmo_stats_report();</span><br><span>         OSMO_ASSERT(send_count == 10);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      printf("report (srep1 peer):\n");</span><br><span style="color: hsl(120, 100%, 40%);">+   fprintf(stderr, "report (srep1 peer):\n");</span><br><span>         /* force single flush */</span><br><span>     osmo_stats_reporter_set_max_class(srep1, OSMO_STATS_CLASS_PEER);</span><br><span>     srep1->force_single_flush = 1;</span><br><span>@@ -397,7 +398,7 @@</span><br><span>      osmo_stats_report();</span><br><span>         OSMO_ASSERT(send_count == 14);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      printf("report (srep1 subscriber):\n");</span><br><span style="color: hsl(120, 100%, 40%);">+     fprintf(stderr, "report (srep1 subscriber):\n");</span><br><span>   /* force single flush */</span><br><span>     osmo_stats_reporter_set_max_class(srep1, OSMO_STATS_CLASS_SUBSCRIBER);</span><br><span>       srep1->force_single_flush = 1;</span><br><span>@@ -406,7 +407,7 @@</span><br><span>      osmo_stats_report();</span><br><span>         OSMO_ASSERT(send_count == 20);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      printf("report (srep2 disabled):\n");</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "report (srep2 disabled):\n");</span><br><span>     /* force single flush */</span><br><span>     srep1->force_single_flush = 1;</span><br><span>    srep2->force_single_flush = 1;</span><br><span>@@ -416,45 +417,45 @@</span><br><span>    osmo_stats_report();</span><br><span>         OSMO_ASSERT(send_count == 10);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      printf("report (srep2 enabled, no flush forced):\n");</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "report (srep2 enabled, no flush forced):\n");</span><br><span>     rc = osmo_stats_reporter_enable(srep2);</span><br><span>      OSMO_ASSERT(rc >= 0);</span><br><span>     send_count = 0;</span><br><span>      osmo_stats_report();</span><br><span>         OSMO_ASSERT(send_count == 10);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      printf("report (should be empty):\n");</span><br><span style="color: hsl(120, 100%, 40%);">+      fprintf(stderr, "report (should be empty):\n");</span><br><span>    send_count = 0;</span><br><span>      osmo_stats_report();</span><br><span>         OSMO_ASSERT(send_count == 0);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       printf("report (group 1, counter 1 update):\n");</span><br><span style="color: hsl(120, 100%, 40%);">+    fprintf(stderr, "report (group 1, counter 1 update):\n");</span><br><span>  rate_ctr_inc(&ctrg1->ctr[TEST_A_CTR]);</span><br><span>        send_count = 0;</span><br><span>      osmo_stats_report();</span><br><span>         OSMO_ASSERT(send_count == 2);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       printf("report (group 1, item 1 update):\n");</span><br><span style="color: hsl(120, 100%, 40%);">+       fprintf(stderr, "report (group 1, item 1 update):\n");</span><br><span>     osmo_stat_item_set(statg1->items[TEST_A_ITEM], 10);</span><br><span>       send_count = 0;</span><br><span>      osmo_stats_report();</span><br><span>         OSMO_ASSERT(send_count == 2);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       printf("report (group 1, item 1 update twice):\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ fprintf(stderr, "report (group 1, item 1 update twice):\n");</span><br><span>       osmo_stat_item_set(statg1->items[TEST_A_ITEM], 10);</span><br><span>       osmo_stat_item_set(statg1->items[TEST_A_ITEM], 10);</span><br><span>       send_count = 0;</span><br><span>      osmo_stats_report();</span><br><span>         OSMO_ASSERT(send_count == 2);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       printf("report (group 1, item 1 update twice, check max):\n");</span><br><span style="color: hsl(120, 100%, 40%);">+      fprintf(stderr, "report (group 1, item 1 update twice, check max):\n");</span><br><span>    osmo_stat_item_set(statg1->items[TEST_A_ITEM], 20);</span><br><span>       osmo_stat_item_set(statg1->items[TEST_A_ITEM], 10);</span><br><span>       send_count = 0;</span><br><span>      osmo_stats_report();</span><br><span>         OSMO_ASSERT(send_count == 2);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       printf("report (remove statg1, ctrg1):\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ fprintf(stderr, "report (remove statg1, ctrg1):\n");</span><br><span>       /* force single flush */</span><br><span>     srep1->force_single_flush = 1;</span><br><span>    srep2->force_single_flush = 1;</span><br><span>@@ -464,7 +465,7 @@</span><br><span>      osmo_stats_report();</span><br><span>         OSMO_ASSERT(send_count == 12);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      printf("report (remove srep1):\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ fprintf(stderr, "report (remove srep1):\n");</span><br><span>       /* force single flush */</span><br><span>     srep1->force_single_flush = 1;</span><br><span>    srep2->force_single_flush = 1;</span><br><span>@@ -473,7 +474,7 @@</span><br><span>      osmo_stats_report();</span><br><span>         OSMO_ASSERT(send_count == 6);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       printf("report (remove statg2):\n");</span><br><span style="color: hsl(120, 100%, 40%);">+        fprintf(stderr, "report (remove statg2):\n");</span><br><span>      /* force single flush */</span><br><span>     srep2->force_single_flush = 1;</span><br><span>    osmo_stat_item_group_free(statg2);</span><br><span>@@ -481,7 +482,7 @@</span><br><span>     osmo_stats_report();</span><br><span>         OSMO_ASSERT(send_count == 4);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       printf("report (remove srep2):\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ fprintf(stderr, "report (remove srep2):\n");</span><br><span>       /* force single flush */</span><br><span>     srep2->force_single_flush = 1;</span><br><span>    osmo_stats_reporter_free(srep2);</span><br><span>@@ -489,7 +490,7 @@</span><br><span>       osmo_stats_report();</span><br><span>         OSMO_ASSERT(send_count == 0);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       printf("report (remove ctrg2, should be empty):\n");</span><br><span style="color: hsl(120, 100%, 40%);">+        fprintf(stderr, "report (remove ctrg2, should be empty):\n");</span><br><span>      rate_ctr_group_free(ctrg2);</span><br><span>  send_count = 0;</span><br><span>      osmo_stats_report();</span><br><span>@@ -501,17 +502,24 @@</span><br><span>         OSMO_ASSERT(talloc_total_blocks(stats_ctx) == 1);</span><br><span>    talloc_free(stats_ctx);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     printf("End test: %s\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+ fprintf(stderr, "End test: %s\n", __func__);</span><br><span> }</span><br><span> </span><br><span> int main(int argc, char **argv)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- static const struct log_info log_info = {};</span><br><span style="color: hsl(0, 100%, 40%);">-     log_init(&log_info, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+        void *ctx = talloc_named_const(NULL, 0, "main");</span><br><span style="color: hsl(120, 100%, 40%);">+    osmo_init_logging2(ctx, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      log_set_print_filename2(osmo_stderr_target, LOG_FILENAME_NONE);</span><br><span style="color: hsl(120, 100%, 40%);">+       log_set_print_level(osmo_stderr_target, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+   log_set_print_category(osmo_stderr_target, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+        log_set_print_category_hex(osmo_stderr_target, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+    log_set_use_color(osmo_stderr_target, 0);</span><br><span> </span><br><span>        osmo_stat_item_init(NULL);</span><br><span> </span><br><span>       stat_test();</span><br><span>         test_reporting();</span><br><span style="color: hsl(120, 100%, 40%);">+     talloc_free(ctx);</span><br><span>    return 0;</span><br><span> }</span><br><span>diff --git a/tests/stats/stats_test.err b/tests/stats/stats_test.err</span><br><span>new file mode 100644</span><br><span>index 0000000..3accf54</span><br><span>--- /dev/null</span><br><span>+++ b/tests/stats/stats_test.err</span><br><span>@@ -0,0 +1,143 @@</span><br><span style="color: hsl(120, 100%, 40%);">+Start test: test_reporting</span><br><span style="color: hsl(120, 100%, 40%);">+DLGLOBAL ERROR counter group 'ctr-test:one' already exists for index 2, instead using index 3. This is a software bug that needs fixing.</span><br><span style="color: hsl(120, 100%, 40%);">+DLGLOBAL ERROR 'ctr-test.one_dot' is not a valid counter group identifier</span><br><span style="color: hsl(120, 100%, 40%);">+DLGLOBAL NOTICE counter group name mangled: 'ctr-test.one_dot' -> 'ctr-test:one_dot'</span><br><span style="color: hsl(120, 100%, 40%);">+DLGLOBAL NOTICE counter group name mangled: 'ctr.a' -> 'ctr:a'</span><br><span style="color: hsl(120, 100%, 40%);">+DLGLOBAL NOTICE counter group name mangled: 'ctr.b' -> 'ctr:b'</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: open</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: open</span><br><span style="color: hsl(120, 100%, 40%);">+report (initial):</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=1 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=1 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+report (srep1 global):</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=1 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+report (srep1 peer):</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=1 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=1 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+report (srep1 subscriber):</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=1 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=1 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+report (srep2 disabled):</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: close</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=1 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+report (srep2 enabled, no flush forced):</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: open</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=1 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+report (should be empty):</span><br><span style="color: hsl(120, 100%, 40%);">+report (group 1, counter 1 update):</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=1 d=1</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one i=1 n=ctr:a v=1 d=1</span><br><span style="color: hsl(120, 100%, 40%);">+report (group 1, item 1 update):</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=1 n=item.a v=10 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=1 n=item.a v=10 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+report (group 1, item 1 update twice):</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=1 n=item.a v=10 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=1 n=item.a v=10 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+report (group 1, item 1 update twice, check max):</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=1 n=item.a v=20 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=1 n=item.a v=20 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+report (remove statg1, ctrg1):</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+report (remove srep1):</span><br><span style="color: hsl(120, 100%, 40%);">+  test1: close</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(120, 100%, 40%);">+report (remove statg2):</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(120, 100%, 40%);">+report (remove srep2):</span><br><span style="color: hsl(120, 100%, 40%);">+  test2: close</span><br><span style="color: hsl(120, 100%, 40%);">+report (remove ctrg2, should be empty):</span><br><span style="color: hsl(120, 100%, 40%);">+End test: test_reporting</span><br><span>diff --git a/tests/stats/stats_test.ok b/tests/stats/stats_test.ok</span><br><span>index 26d9e38..e69de29 100644</span><br><span>--- a/tests/stats/stats_test.ok</span><br><span>+++ b/tests/stats/stats_test.ok</span><br><span>@@ -1,138 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-Start test: test_reporting</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: open</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: open</span><br><span style="color: hsl(0, 100%, 40%);">-report (initial):</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=1 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=1 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-report (srep1 global):</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=1 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-report (srep1 peer):</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=1 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=1 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-report (srep1 subscriber):</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=1 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=1 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-report (srep2 disabled):</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: close</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=1 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-report (srep2 enabled, no flush forced):</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: open</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=1 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-report (should be empty):</span><br><span style="color: hsl(0, 100%, 40%);">-report (group 1, counter 1 update):</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=1 d=1</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one i=1 n=ctr:a v=1 d=1</span><br><span style="color: hsl(0, 100%, 40%);">-report (group 1, item 1 update):</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=1 n=item.a v=10 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=1 n=item.a v=10 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-report (group 1, item 1 update twice):</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=1 n=item.a v=10 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=1 n=item.a v=10 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-report (group 1, item 1 update twice, check max):</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=1 n=item.a v=20 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=1 n=item.a v=20 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-report (remove statg1, ctrg1):</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-report (remove srep1):</span><br><span style="color: hsl(0, 100%, 40%);">-  test1: close</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span style="color: hsl(0, 100%, 40%);">-report (remove statg2):</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span style="color: hsl(0, 100%, 40%);">-report (remove srep2):</span><br><span style="color: hsl(0, 100%, 40%);">-  test2: close</span><br><span style="color: hsl(0, 100%, 40%);">-report (remove ctrg2, should be empty):</span><br><span style="color: hsl(0, 100%, 40%);">-End test: test_reporting</span><br><span>diff --git a/tests/testsuite.at b/tests/testsuite.at</span><br><span>index d2a10dd..cb84229 100644</span><br><span>--- a/tests/testsuite.at</span><br><span>+++ b/tests/testsuite.at</span><br><span>@@ -249,7 +249,8 @@</span><br><span> AT_SETUP([stats])</span><br><span> AT_KEYWORDS([stats])</span><br><span> cat $abs_srcdir/stats/stats_test.ok > expout</span><br><span style="color: hsl(0, 100%, 40%);">-AT_CHECK([$abs_top_builddir/tests/stats/stats_test], [0], [expout], [ignore])</span><br><span style="color: hsl(120, 100%, 40%);">+cat $abs_srcdir/stats/stats_test.err > experr</span><br><span style="color: hsl(120, 100%, 40%);">+AT_CHECK([$abs_top_builddir/tests/stats/stats_test], [0], [expout], [experr])</span><br><span> AT_CLEANUP</span><br><span> </span><br><span> AT_SETUP([write_queue])</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmocore/+/23389">change 23389</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/libosmocore/+/23389"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmocore </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ie0eaec2f93ac6859397a6bfca45039fdcc27cb9e </div>
<div style="display:none"> Gerrit-Change-Number: 23389 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>