further generalize mgcp testing code

use a data-structure driven approach
diff --git a/openbsc/tests/mgcp/mgcp_test.c b/openbsc/tests/mgcp/mgcp_test.c
index 66d0428..6add9b3 100644
--- a/openbsc/tests/mgcp/mgcp_test.c
+++ b/openbsc/tests/mgcp/mgcp_test.c
@@ -25,7 +25,21 @@
 #include <string.h>
 
 #define AUEP1	"AUEP 158663169 ds/e1-1/2@172.16.6.66 MGCP 1.0\r\n"
+#define AUEP1_RET "200 158663169 OK\r\n"
 #define AUEP2	"AUEP 18983213 ds/e1-2/1@172.16.6.66 MGCP 1.0\r\n"
+#define AUEP2_RET "500 18983213 FAIL\r\n"
+
+
+struct mgcp_test {
+	const char *name;
+	const char *req;
+	const char *exp_resp;
+};
+
+const struct mgcp_test tests[] = {
+	{ "AUEP1", AUEP1, AUEP1_RET },
+	{ "AUEP2", AUEP2, AUEP2_RET },
+};
 
 static struct msgb *create_msg(const char *str)
 {
@@ -39,33 +53,30 @@
 
 static void test_auep(void)
 {
-	struct msgb *inp;
-	struct msgb *msg;
 	struct mgcp_config *cfg;
-
-	printf("Testing AUEP\n");
+	int i;
 
 	cfg = mgcp_config_alloc();
+
 	cfg->trunk.number_endpoints = 64;
 	mgcp_endpoints_allocate(&cfg->trunk);
 
 	mgcp_endpoints_allocate(mgcp_trunk_alloc(cfg, 1));
 
-	inp = create_msg(AUEP1);
-	msg = mgcp_handle_message(cfg, inp);
-	msgb_free(inp);
-	if (strcmp((char *) msg->data, "200 158663169 OK\r\n") != 0)
-		printf("Result1 failed '%s'\n", (char *) msg->data);
-	/* Verify that the endpoint is fine */
-	msgb_free(msg);
+	for (i = 0; i < ARRAY_SIZE(tests); i++) {
+		const struct mgcp_test *t = &tests[i];
+		struct msgb *inp;
+		struct msgb *msg;
 
-	inp = create_msg(AUEP2);
-	msg = mgcp_handle_message(cfg, inp);
-	msgb_free(inp);
-	/* Verify that the endpoint is not fine */
-	if (strcmp((char *) msg->data, "500 18983213 FAIL\r\n") != 0)
-		printf("Result2 failed '%s'\n", (char *) msg->data);
-	msgb_free(msg);
+		printf("Testing %s\n", t->name);
+
+		inp = create_msg(t->req);
+		msg = mgcp_handle_message(cfg, inp);
+		msgb_free(inp);
+		if (strcmp((char *) msg->data, t->exp_resp) != 0)
+			printf("%s failed '%s'\n", t->name, (char *) msg->data);
+		msgb_free(msg);
+	}
 
 	talloc_free(cfg);
 }