<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>