diff options
Diffstat (limited to 'src/shared/libosmocore/tests/gsm0408/gsm0408_test.c')
-rw-r--r-- | src/shared/libosmocore/tests/gsm0408/gsm0408_test.c | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/src/shared/libosmocore/tests/gsm0408/gsm0408_test.c b/src/shared/libosmocore/tests/gsm0408/gsm0408_test.c deleted file mode 100644 index 077063be..00000000 --- a/src/shared/libosmocore/tests/gsm0408/gsm0408_test.c +++ /dev/null @@ -1,133 +0,0 @@ -/* - * (C) 2012 by Harald Welte <laforge@gnumonks.org> - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 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 General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - */ - -#include <string.h> -#include <stdio.h> - -#include <osmocom/gsm/protocol/gsm_04_08.h> -#include <osmocom/gsm/gsm48_ie.h> -#include <osmocom/gsm/mncc.h> -#include <osmocom/core/utils.h> -#include <osmocom/core/msgb.h> - - -static const uint8_t csd_9600_v110_lv[] = { 0x07, 0xa1, 0xb8, 0x89, 0x21, 0x15, 0x63, 0x80 }; - -static const struct gsm_mncc_bearer_cap bcap_csd_9600_v110 = { - .transfer = GSM48_BCAP_ITCAP_UNR_DIG_INF, - .mode = GSM48_BCAP_TMOD_CIRCUIT, - .coding = GSM48_BCAP_CODING_GSM_STD, - .radio = GSM48_BCAP_RRQ_FR_ONLY, - .speech_ver[0]= -1, - .data = { - .rate_adaption = GSM48_BCAP_RA_V110_X30, - .sig_access = GSM48_BCAP_SA_I440_I450, - .async = 1, - .nr_stop_bits = 1, - .nr_data_bits = 8, - .user_rate = GSM48_BCAP_UR_9600, - .parity = GSM48_BCAP_PAR_NONE, - .interm_rate = GSM48_BCAP_IR_16k, - .transp = GSM48_BCAP_TR_TRANSP, - .modem_type = GSM48_BCAP_MT_NONE, - }, -}; - -static const uint8_t speech_all_lv[] = { 0x06, 0x60, 0x04, 0x02, 0x00, 0x05, 0x81 }; - -static const struct gsm_mncc_bearer_cap bcap_speech_all = { - .transfer = GSM48_BCAP_ITCAP_SPEECH, - .mode = GSM48_BCAP_TMOD_CIRCUIT, - .coding = GSM48_BCAP_CODING_GSM_STD, - .radio = GSM48_BCAP_RRQ_DUAL_FR, - .speech_ver = { - 4, 2, 0, 5, 1, -1, - }, -}; - - -struct bcap_test { - const uint8_t *lv; - const struct gsm_mncc_bearer_cap *bc; - const char *name; -}; - -static const struct bcap_test bcap_tests[] = { - { csd_9600_v110_lv, &bcap_csd_9600_v110, "CSD 9600/V.110/transparent" }, - { speech_all_lv, &bcap_speech_all, "Speech, all codecs" }, -}; - -static int test_bearer_cap() -{ - struct gsm_mncc_bearer_cap bc; - int i, rc; - - for (i = 0; i < ARRAY_SIZE(bcap_tests); i++) { - struct msgb *msg = msgb_alloc(100, "test"); - int lv_len; - - memset(&bc, 0, sizeof(bc)); - - /* test decoding */ - rc = gsm48_decode_bearer_cap(&bc, bcap_tests[i].lv); - if (rc < 0) { - fprintf(stderr, "Error decoding %s\n", - bcap_tests[i].name); - return rc; - } - if (memcmp(&bc, bcap_tests[i].bc, sizeof(bc))) { - fprintf(stderr, "Incorrect decoded result of %s:\n", - bcap_tests[i].name); - fprintf(stderr, " should: %s\n", - osmo_hexdump((uint8_t *) bcap_tests[i].bc, sizeof(bc))); - fprintf(stderr, " is: %s\n", - osmo_hexdump((uint8_t *) &bc, sizeof(bc))); - return -1; - } - - /* also test re-encode? */ - rc = gsm48_encode_bearer_cap(msg, 1, &bc); - if (rc < 0) { - fprintf(stderr, "Error encoding %s\n", - bcap_tests[i].name); - return rc; - } - lv_len = bcap_tests[i].lv[0]+1; - if (memcmp(msg->data, bcap_tests[i].lv, lv_len)) { - fprintf(stderr, "Incorrect encoded result of %s:\n", - bcap_tests[i].name); - fprintf(stderr, " should: %s\n", - osmo_hexdump(bcap_tests[i].lv, lv_len)); - fprintf(stderr, " is: %s\n", - osmo_hexdump(msg->data, msg->len)); - return -1; - } - - printf("Test `%s' passed\n", bcap_tests[i].name); - msgb_free(msg); - } - - return 0; -} - -int main(int argc, char **argv) -{ - test_bearer_cap(); -} |