diff options
Diffstat (limited to 'tests/gsup_server/gsup_server_test.c')
-rw-r--r-- | tests/gsup_server/gsup_server_test.c | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/tests/gsup_server/gsup_server_test.c b/tests/gsup_server/gsup_server_test.c deleted file mode 100644 index cc475be..0000000 --- a/tests/gsup_server/gsup_server_test.c +++ /dev/null @@ -1,145 +0,0 @@ -/* (C) 2017 by sysmocom s.f.m.c. GmbH <info@sysmocom.de> - * All Rights Reserved - * - * Author: Neels Hofmeyr <nhofmeyr@sysmocom.de> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#include <stdio.h> -#include <osmocom/core/utils.h> -#include "gsup_server.h" - -#define comment_start() printf("\n===== %s\n", __func__) -#define comment_end() printf("===== %s: SUCCESS\n\n", __func__) -#define btw(fmt, args...) printf("\n" fmt "\n", ## args) - -#define VERBOSE_ASSERT(val, expect_op, fmt) \ - do { \ - printf(#val " == " fmt "\n", (val)); \ - OSMO_ASSERT((val) expect_op); \ - } while (0) - -void osmo_gsup_server_add_conn(struct llist_head *clients, - struct osmo_gsup_conn *conn); - -static void test_add_conn(void) -{ - struct llist_head _list; - struct llist_head *clients = &_list; - struct osmo_gsup_conn conn_inst[23] = {}; - struct osmo_gsup_conn *conn; - unsigned int i; - - comment_start(); - - INIT_LLIST_HEAD(clients); - - btw("Add 10 items"); - for (i = 0; i < 10; i++) { - osmo_gsup_server_add_conn(clients, &conn_inst[i]); - printf("conn_inst[%u].auc_3g_ind == %u\n", i, conn_inst[i].auc_3g_ind); - OSMO_ASSERT(clients->next == &conn_inst[0].list); - } - - btw("Expecting a list of 0..9"); - i = 0; - llist_for_each_entry(conn, clients, list) { - printf("conn[%u].auc_3g_ind == %u\n", i, conn->auc_3g_ind); - OSMO_ASSERT(conn->auc_3g_ind == i); - OSMO_ASSERT(conn == &conn_inst[i]); - i++; - } - - btw("Punch two holes in the sequence in arbitrary order," - " a larger one from 2..4 and a single one at 7."); - llist_del(&conn_inst[4].list); - llist_del(&conn_inst[2].list); - llist_del(&conn_inst[3].list); - llist_del(&conn_inst[7].list); - - btw("Expecting a list of 0,1, 5,6, 8,9"); - i = 0; - llist_for_each_entry(conn, clients, list) { - printf("conn[%u].auc_3g_ind == %u\n", i, conn->auc_3g_ind); - i++; - } - - btw("Add conns, expecting them to take the open slots"); - osmo_gsup_server_add_conn(clients, &conn_inst[12]); - VERBOSE_ASSERT(conn_inst[12].auc_3g_ind, == 2, "%u"); - - osmo_gsup_server_add_conn(clients, &conn_inst[13]); - VERBOSE_ASSERT(conn_inst[13].auc_3g_ind, == 3, "%u"); - - osmo_gsup_server_add_conn(clients, &conn_inst[14]); - VERBOSE_ASSERT(conn_inst[14].auc_3g_ind, == 4, "%u"); - - osmo_gsup_server_add_conn(clients, &conn_inst[17]); - VERBOSE_ASSERT(conn_inst[17].auc_3g_ind, == 7, "%u"); - - osmo_gsup_server_add_conn(clients, &conn_inst[18]); - VERBOSE_ASSERT(conn_inst[18].auc_3g_ind, == 10, "%u"); - - btw("Expecting a list of 0..10"); - i = 0; - llist_for_each_entry(conn, clients, list) { - printf("conn[%u].auc_3g_ind == %u\n", i, conn->auc_3g_ind); - OSMO_ASSERT(conn->auc_3g_ind == i); - i++; - } - - btw("Does it also work for the first item?"); - llist_del(&conn_inst[0].list); - - btw("Expecting a list of 1..10"); - i = 0; - llist_for_each_entry(conn, clients, list) { - printf("conn[%u].auc_3g_ind == %u\n", i, conn->auc_3g_ind); - OSMO_ASSERT(conn->auc_3g_ind == i + 1); - i++; - } - - btw("Add another conn, should take auc_3g_ind == 0"); - osmo_gsup_server_add_conn(clients, &conn_inst[20]); - VERBOSE_ASSERT(conn_inst[20].auc_3g_ind, == 0, "%u"); - - btw("Expecting a list of 0..10"); - i = 0; - llist_for_each_entry(conn, clients, list) { - printf("conn[%u].auc_3g_ind == %u\n", i, conn->auc_3g_ind); - OSMO_ASSERT(conn->auc_3g_ind == i); - i++; - } - - btw("If a client reconnects, it will (likely) get the same auc_3g_ind"); - VERBOSE_ASSERT(conn_inst[5].auc_3g_ind, == 5, "%u"); - llist_del(&conn_inst[5].list); - conn_inst[5].auc_3g_ind = 423; - osmo_gsup_server_add_conn(clients, &conn_inst[5]); - VERBOSE_ASSERT(conn_inst[5].auc_3g_ind, == 5, "%u"); - - comment_end(); -} - -int main(int argc, char **argv) -{ - printf("test_gsup_server.c\n"); - - test_add_conn(); - - printf("Done\n"); - return 0; -} |