diff options
author | Max <msuraev@sysmocom.de> | 2017-03-24 21:04:57 +0100 |
---|---|---|
committer | Max <msuraev@sysmocom.de> | 2017-05-08 11:49:40 +0000 |
commit | fd2c1f90ba590fbb8c790e3619713769817997de (patch) | |
tree | 0944f57cab91f38ba01b9adc0287a8917f055a1c /openbsc/tests/abis | |
parent | 310b73079814584c0ff92772939f9cc80e1c0171 (diff) |
Use libosmocore for SW Description parsing
Requires libosmocore with Ib63b6b5e83b8914864fc7edd789f8958cdc993cd.
Change-Id: Ib94db414e94a2a1f234ac6f1cb346dca1c7a8be3
Diffstat (limited to 'openbsc/tests/abis')
-rw-r--r-- | openbsc/tests/abis/abis_test.c | 104 | ||||
-rw-r--r-- | openbsc/tests/abis/abis_test.ok | 14 |
2 files changed, 17 insertions, 101 deletions
diff --git a/openbsc/tests/abis/abis_test.c b/openbsc/tests/abis/abis_test.c index 496267f6e..591f8350f 100644 --- a/openbsc/tests/abis/abis_test.c +++ b/openbsc/tests/abis/abis_test.c @@ -22,22 +22,12 @@ #include <osmocom/core/application.h> #include <osmocom/core/utils.h> +#include <osmocom/gsm/protocol/gsm_12_21.h> #include <openbsc/gsm_data.h> #include <openbsc/abis_nm.h> #include <openbsc/debug.h> -static const uint8_t simple_config[] = { - /*0, 13, */ - 66, 18, 0, 3, 1, 2, 3, 19, 0, 3, 3, 4, 5, -}; - -static const uint8_t dual_config[] = { - /*0, 26, */ - 66, 18, 0, 3, 1, 2, 3, 19, 0, 3, 3, 4, 5, - 66, 18, 0, 3, 9, 7, 5, 19, 0, 3, 6, 7, 8, -}; - static const uint8_t load_config[] = { 0x42, 0x12, 0x00, 0x08, 0x31, 0x36, 0x38, 0x64, 0x34, 0x37, 0x32, 0x00, 0x13, 0x00, 0x0b, 0x76, @@ -48,94 +38,29 @@ static const uint8_t load_config[] = { 0x33, 0x64, 0x31, 0x00 }; -static void test_simple_sw_config(void) -{ - struct abis_nm_sw_descr descr[1]; - int rc; - - rc = abis_nm_parse_sw_config(simple_config, ARRAY_SIZE(simple_config), - &descr[0], ARRAY_SIZE(descr)); - if (rc != 1) { - printf("FAILED to parse the File Id/File version\n"); - abort(); - } - - if (descr[0].len != 13) { - printf("WRONG SIZE: %zu\n", descr[0].len); - abort(); - } - - printf("Start: %td len: %zu\n", descr[0].start - simple_config, descr[0].len); - printf("file_id: %s\n", osmo_hexdump(descr[0].file_id, descr[0].file_id_len)); - printf("file_ver: %s\n", osmo_hexdump(descr[0].file_ver, descr[0].file_ver_len)); -} - -static void test_simple_sw_short(void) -{ - struct abis_nm_sw_descr descr[1]; - int i; - - for (i = 1; i < ARRAY_SIZE(simple_config); ++i) { - int rc = abis_nm_parse_sw_config(simple_config, - ARRAY_SIZE(simple_config) - i, &descr[0], - ARRAY_SIZE(descr)); - if (rc >= 1) { - printf("SHOULD not have parsed: %d\n", rc); - abort(); - } - } -} - -static void test_dual_sw_config(void) -{ - struct abis_nm_sw_descr descr[2]; - int rc; - - rc = abis_nm_parse_sw_config(dual_config, ARRAY_SIZE(dual_config), - &descr[0], ARRAY_SIZE(descr)); - if (rc != 2) { - printf("FAILED to parse the File Id/File version\n"); - abort(); - } - - if (descr[0].len != 13) { - printf("WRONG SIZE0: %zu\n", descr[0].len); - abort(); - } - - if (descr[1].len != 13) { - printf("WRONG SIZE1: %zu\n", descr[1].len); - abort(); - } - - printf("Start: %td len: %zu\n", descr[0].start - dual_config, descr[0].len); - printf("file_id: %s\n", osmo_hexdump(descr[0].file_id, descr[0].file_id_len)); - printf("file_ver: %s\n", osmo_hexdump(descr[0].file_ver, descr[0].file_ver_len)); - - printf("Start: %td len: %zu\n", descr[1].start - dual_config, descr[1].len); - printf("file_id: %s\n", osmo_hexdump(descr[1].file_id, descr[1].file_id_len)); - printf("file_ver: %s\n", osmo_hexdump(descr[1].file_ver, descr[1].file_ver_len)); -} - static void test_sw_selection(void) { - struct abis_nm_sw_descr descr[8], tmp; + struct abis_nm_sw_desc descr[8], tmp; + uint16_t len0, len1; int rc, pos; - rc = abis_nm_parse_sw_config(load_config, ARRAY_SIZE(load_config), + rc = abis_nm_get_sw_conf(load_config, ARRAY_SIZE(load_config), &descr[0], ARRAY_SIZE(descr)); if (rc != 2) { - printf("FAILED to parse the File Id/File version\n"); + printf("%s(): FAILED to parse the File Id/File version: %d\n", + __func__, rc); abort(); } - printf("Start: %td len: %zu\n", descr[0].start - load_config, descr[0].len); + len0 = abis_nm_sw_desc_len(&descr[0], true); + printf("len: %u\n", len0); printf("file_id: %s\n", osmo_hexdump(descr[0].file_id, descr[0].file_id_len)); - printf("file_ver: %s\n", osmo_hexdump(descr[0].file_ver, descr[0].file_ver_len)); + printf("file_ver: %s\n", osmo_hexdump(descr[0].file_version, descr[0].file_version_len)); - printf("Start: %td len: %zu\n", descr[1].start - load_config, descr[1].len); + len1 = abis_nm_sw_desc_len(&descr[1], true); + printf("len: %u\n", len1); printf("file_id: %s\n", osmo_hexdump(descr[1].file_id, descr[1].file_id_len)); - printf("file_ver: %s\n", osmo_hexdump(descr[1].file_ver, descr[1].file_ver_len)); + printf("file_ver: %s\n", osmo_hexdump(descr[1].file_version, descr[1].file_version_len)); /* start */ pos = abis_nm_select_newest_sw(descr, rc); @@ -155,14 +80,13 @@ static void test_sw_selection(void) abort(); } printf("SELECTED: %d\n", pos); + printf("%s(): OK\n", __func__); } int main(int argc, char **argv) { osmo_init_logging(&log_info); - test_simple_sw_config(); - test_simple_sw_short(); - test_dual_sw_config(); + test_sw_selection(); return EXIT_SUCCESS; diff --git a/openbsc/tests/abis/abis_test.ok b/openbsc/tests/abis/abis_test.ok index 2f99f9d49..8418cad87 100644 --- a/openbsc/tests/abis/abis_test.ok +++ b/openbsc/tests/abis/abis_test.ok @@ -1,17 +1,9 @@ -Start: 0 len: 13 -file_id: 01 02 03 -file_ver: 03 04 05 -Start: 0 len: 13 -file_id: 01 02 03 -file_ver: 03 04 05 -Start: 13 len: 13 -file_id: 09 07 05 -file_ver: 06 07 08 -Start: 0 len: 26 +len: 26 file_id: 31 36 38 64 34 37 32 00 file_ver: 76 32 30 30 62 31 34 33 64 30 00 -Start: 26 len: 26 +len: 26 file_id: 31 36 38 64 34 37 32 00 file_ver: 76 32 30 30 62 31 34 33 64 31 00 SELECTED: 1 SELECTED: 0 +test_sw_selection(): OK |