stats: use llist_add_tail() in osmo_stats_reporter_alloc()

This allows printing reporters in the exact order as they were configired.

Change-Id: I904cd0ed53510dbe26c15cd287ba2707ca04cd6e
Related: SYS#5713
diff --git a/src/stats.c b/src/stats.c
index 28a3ab3..0967305 100644
--- a/src/stats.c
+++ b/src/stats.c
@@ -223,7 +223,7 @@
 		srep->name = talloc_strdup(srep, name);
 	srep->fd = -1;
 
-	llist_add(&srep->list, &osmo_stats_reporter_list);
+	llist_add_tail(&srep->list, &osmo_stats_reporter_list);
 
 	return srep;
 }
diff --git a/tests/stats/stats_test.err b/tests/stats/stats_test.err
index 1e604d1..4acd35d 100644
--- a/tests/stats/stats_test.err
+++ b/tests/stats/stats_test.err
@@ -7,26 +7,26 @@
   test1: open
   test2: open
 report (initial):
-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0
   test1: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0
-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0
+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0
   test1: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0
-  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0
+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0
   test1: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0
-  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0
+  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0
   test1: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0
-  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0
+  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0
   test1: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0
-  test2: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0
+  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0
   test1: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0
-  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma
+  test2: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0
   test1: item p= g=test.one i=2 n=item.a v=-1 u=ma
-  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb
+  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma
   test1: item p= g=test.one i=2 n=item.b v=-1 u=kb
-  test2: item p= g=test.one i=1 n=item.a v=-1 u=ma
+  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb
   test1: item p= g=test.one i=1 n=item.a v=-1 u=ma
-  test2: item p= g=test.one i=1 n=item.b v=-1 u=kb
+  test2: item p= g=test.one i=1 n=item.a v=-1 u=ma
   test1: item p= g=test.one i=1 n=item.b v=-1 u=kb
+  test2: item p= g=test.one i=1 n=item.b v=-1 u=kb
 reported: 12 counter vals, 8 stat item vals
 report (srep1 global):
   test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0
@@ -47,36 +47,36 @@
   test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0
   test2: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0
   test2: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0
-  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma
   test1: item p= g=test.one i=2 n=item.a v=-1 u=ma
-  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb
+  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma
   test1: item p= g=test.one i=2 n=item.b v=-1 u=kb
-  test2: item p= g=test.one i=1 n=item.a v=-1 u=ma
+  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb
   test1: item p= g=test.one i=1 n=item.a v=-1 u=ma
-  test2: item p= g=test.one i=1 n=item.b v=-1 u=kb
+  test2: item p= g=test.one i=1 n=item.a v=-1 u=ma
   test1: item p= g=test.one i=1 n=item.b v=-1 u=kb
+  test2: item p= g=test.one i=1 n=item.b v=-1 u=kb
 reported: 6 counter vals, 8 stat item vals
 report (srep1 subscriber):
-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0
   test1: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0
-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0
+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0
   test1: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0
-  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0
+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0
   test1: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0
-  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0
+  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0
   test1: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0
-  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0
+  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0
   test1: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0
-  test2: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0
+  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=0 d=0
   test1: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0
-  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma
+  test2: counter p= g=ctr-test:one i=1 n=ctr:b v=0 d=0
   test1: item p= g=test.one i=2 n=item.a v=-1 u=ma
-  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb
+  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma
   test1: item p= g=test.one i=2 n=item.b v=-1 u=kb
-  test2: item p= g=test.one i=1 n=item.a v=-1 u=ma
+  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb
   test1: item p= g=test.one i=1 n=item.a v=-1 u=ma
-  test2: item p= g=test.one i=1 n=item.b v=-1 u=kb
+  test2: item p= g=test.one i=1 n=item.a v=-1 u=ma
   test1: item p= g=test.one i=1 n=item.b v=-1 u=kb
+  test2: item p= g=test.one i=1 n=item.b v=-1 u=kb
 reported: 12 counter vals, 8 stat item vals
 report (srep2 disabled):
   test2: close
@@ -107,38 +107,38 @@
 report (should be empty):
 reported: 0 counter vals, 0 stat item vals
 report (group 1, counter 1 update):
-  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=1 d=1
   test1: counter p= g=ctr-test:one i=1 n=ctr:a v=1 d=1
+  test2: counter p= g=ctr-test:one i=1 n=ctr:a v=1 d=1
 reported: 2 counter vals, 0 stat item vals
 report (group 1, item 1 update):
-  test2: item p= g=test.one i=1 n=item.a v=10 u=ma
   test1: item p= g=test.one i=1 n=item.a v=10 u=ma
+  test2: item p= g=test.one i=1 n=item.a v=10 u=ma
 reported: 0 counter vals, 2 stat item vals
 report (group 1, item 1 update twice, with same value):
 reported: 0 counter vals, 0 stat item vals
 report (group 1, item 1 update twice, check max):
-  test2: item p= g=test.one i=1 n=item.a v=20 u=ma
   test1: item p= g=test.one i=1 n=item.a v=20 u=ma
+  test2: item p= g=test.one i=1 n=item.a v=20 u=ma
 reported: 0 counter vals, 2 stat item vals
 report (group 1, item 1 no update, send last item (!= last max), OS#5215):
-  test2: item p= g=test.one i=1 n=item.a v=10 u=ma
   test1: item p= g=test.one i=1 n=item.a v=10 u=ma
+  test2: item p= g=test.one i=1 n=item.a v=10 u=ma
 reported: 0 counter vals, 2 stat item vals
 report (group 1, item 1 no update, nothing to send):
 reported: 0 counter vals, 0 stat item vals
 report (remove statg1, ctrg1):
-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0
   test1: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0
-  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0
+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0
   test1: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0
-  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0
+  test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0
   test1: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0
-  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0
+  test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0
   test1: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0
-  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma
+  test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0
   test1: item p= g=test.one i=2 n=item.a v=-1 u=ma
-  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb
+  test2: item p= g=test.one i=2 n=item.a v=-1 u=ma
   test1: item p= g=test.one i=2 n=item.b v=-1 u=kb
+  test2: item p= g=test.one i=2 n=item.b v=-1 u=kb
 reported: 8 counter vals, 4 stat item vals
 report (remove srep1):
   test1: close