<p>fixeria <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/libosmocore/+/26170">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  pespin: Looks good to me, but someone else must approve
  osmith: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">stats: use llist_add_tail() in osmo_stats_reporter_alloc()<br><br>This allows printing reporters in the exact order as they were configired.<br><br>Change-Id: I904cd0ed53510dbe26c15cd287ba2707ca04cd6e<br>Related: SYS#5713<br>---<br>M src/stats.c<br>M tests/stats/stats_test.err<br>2 files changed, 35 insertions(+), 35 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/stats.c b/src/stats.c</span><br><span>index 28a3ab3..0967305 100644</span><br><span>--- a/src/stats.c</span><br><span>+++ b/src/stats.c</span><br><span>@@ -223,7 +223,7 @@</span><br><span>            srep->name = talloc_strdup(srep, name);</span><br><span>   srep->fd = -1;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   llist_add(&srep->list, &osmo_stats_reporter_list);</span><br><span style="color: hsl(120, 100%, 40%);">+ llist_add_tail(&srep->list, &osmo_stats_reporter_list);</span><br><span> </span><br><span>       return srep;</span><br><span> }</span><br><span>diff --git a/tests/stats/stats_test.err b/tests/stats/stats_test.err</span><br><span>index 1e604d1..4acd35d 100644</span><br><span>--- a/tests/stats/stats_test.err</span><br><span>+++ b/tests/stats/stats_test.err</span><br><span>@@ -7,26 +7,26 @@</span><br><span>   test1: open</span><br><span>   test2: open</span><br><span> 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>   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(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span>   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(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span>   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(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span>   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(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span>   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(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0</span><br><span>   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(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0</span><br><span>   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(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span>   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(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span>   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(120, 100%, 40%);">+  test2: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span>   test1: item p= g=test.one i=1 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.b v=-1 u=kb</span><br><span> reported: 12 counter vals, 8 stat item vals</span><br><span> report (srep1 global):</span><br><span>   test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span>@@ -47,36 +47,36 @@</span><br><span>   test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span>   test2: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0</span><br><span>   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>   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(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span>   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(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span>   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(120, 100%, 40%);">+  test2: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span>   test1: item p= g=test.one i=1 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.b v=-1 u=kb</span><br><span> reported: 6 counter vals, 8 stat item vals</span><br><span> 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>   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(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span>   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(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span>   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(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span>   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(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span>   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(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0</span><br><span>   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(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0</span><br><span>   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(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span>   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(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb</span><br><span>   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(120, 100%, 40%);">+  test2: item p= g=test.one i=1 n=item.a v=-1 u=ma</span><br><span>   test1: item p= g=test.one i=1 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.b v=-1 u=kb</span><br><span> reported: 12 counter vals, 8 stat item vals</span><br><span> report (srep2 disabled):</span><br><span>   test2: close</span><br><span>@@ -107,38 +107,38 @@</span><br><span> report (should be empty):</span><br><span> reported: 0 counter vals, 0 stat item vals</span><br><span> 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>   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%);">+  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=1 d=1</span><br><span> reported: 2 counter vals, 0 stat item vals</span><br><span> 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>   test1: item p= g=test.one i=1 n=item.a v=10 u=ma</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> reported: 0 counter vals, 2 stat item vals</span><br><span> report (group 1, item 1 update twice, with same value):</span><br><span> reported: 0 counter vals, 0 stat item vals</span><br><span> 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>   test1: item p= g=test.one i=1 n=item.a v=20 u=ma</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> reported: 0 counter vals, 2 stat item vals</span><br><span> report (group 1, item 1 no update, send last item (!= last max), OS#5215):</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>   test1: item p= g=test.one i=1 n=item.a v=10 u=ma</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> reported: 0 counter vals, 2 stat item vals</span><br><span> report (group 1, item 1 no update, nothing to send):</span><br><span> reported: 0 counter vals, 0 stat item vals</span><br><span> 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>   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(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0</span><br><span>   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(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0</span><br><span>   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(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0</span><br><span>   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(120, 100%, 40%);">+  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0</span><br><span>   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(120, 100%, 40%);">+  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma</span><br><span>   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=2 n=item.b v=-1 u=kb</span><br><span> reported: 8 counter vals, 4 stat item vals</span><br><span> report (remove srep1):</span><br><span>   test1: close</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmocore/+/26170">change 26170</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/+/26170"/><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: I904cd0ed53510dbe26c15cd287ba2707ca04cd6e </div>
<div style="display:none"> Gerrit-Change-Number: 26170 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>