LCLS: add string dump helpers

Add functions to dump LCLS (without GCR) and GCR. Dumping entire struct
results in inconveniently long string hence the separate functions. Both
use talloc functions so they expect caller to take care of providing
proper allocation context and freeing memory.

Change-Id: Ic3609224c8f3282d667e75f68bc20327e36eb9e6
diff --git a/tests/gsm0808/gsm0808_test.c b/tests/gsm0808/gsm0808_test.c
index 65fef53..af90d00 100644
--- a/tests/gsm0808/gsm0808_test.c
+++ b/tests/gsm0808/gsm0808_test.c
@@ -760,11 +760,12 @@
         }
 
 	if (!osmo_gcr_eq(&lcls_out->gcr, &lcls_in.gcr)) {
-		printf("GCR parsed wrong.\n");
+		printf("GCR parsed wrong:\n\t%s\n\t%s\n", osmo_gcr_dump(lcls_out), osmo_gcr_dump(&lcls_in));
                 abort();
         }
 
-	printf("\tdecoded %d bytes: %s\n", rc, rc == len ? "OK" : "FAIL");
+	printf("\tdecoded %d bytes: %s:\n%s\n", rc, rc == len ? "OK" : "FAIL", osmo_lcls_dump(lcls_out));
+	printf("\t%s\n", osmo_gcr_dump(lcls_out));
 	msgb_free(msg);
 }
 
diff --git a/tests/gsm0808/gsm0808_test.ok b/tests/gsm0808/gsm0808_test.ok
index 7819e7a..e7df007 100644
--- a/tests/gsm0808/gsm0808_test.ok
+++ b/tests/gsm0808/gsm0808_test.ok
@@ -27,7 +27,9 @@
 Testing prepend DTAP
 Testing Global Call Reference IE encoder...
 	15 bytes added: OK
-	decoded 15 bytes: OK
+	decoded 15 bytes: OK:
+LCLS Config: Not available, Control: Not available, Correlation-Needed: 1
+	GCR NetID 0xf1f2f3, Node 0xdead, CallRefID 0x4142434445
 test_gsm0808_enc_dec_cell_id_list_lac: encoded: 1a 07 05 01 24 ab cd 56 78 (rc = 9)
 ------- test_cell_id_list_add
      cell_id_list == CGI[0]:{}