From 2f25747e3f74dfa743363fb36069b78a19e0ce98 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Thu, 22 Nov 2012 19:04:10 +0100 Subject: abis: Activate the newest available installed on the BTS Select thew newest software from all available file versions. --- openbsc/tests/abis/abis_test.c | 51 +++++++++++++++++++++++++++++++++++++++++ openbsc/tests/abis/abis_test.ok | 24 ++++++++++++------- 2 files changed, 67 insertions(+), 8 deletions(-) (limited to 'openbsc/tests/abis') diff --git a/openbsc/tests/abis/abis_test.c b/openbsc/tests/abis/abis_test.c index a2f6a05c2..4942a1e25 100644 --- a/openbsc/tests/abis/abis_test.c +++ b/openbsc/tests/abis/abis_test.c @@ -38,6 +38,16 @@ static const uint8_t dual_config[] = { 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, + 0x32, 0x30, 0x30, 0x62, 0x31, 0x34, 0x33, 0x64, + 0x30, 0x00, 0x42, 0x12, 0x00, 0x08, 0x31, 0x36, + 0x38, 0x64, 0x34, 0x37, 0x32, 0x00, 0x13, 0x00, + 0x0b, 0x76, 0x32, 0x30, 0x30, 0x62, 0x31, 0x34, + 0x33, 0x64, 0x31, 0x00 +}; + static void test_simple_sw_config(void) { struct abis_nm_sw_descr descr[1]; @@ -107,12 +117,53 @@ static void test_dual_sw_config(void) 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; + int rc, pos; + + rc = abis_nm_parse_sw_config(load_config, ARRAY_SIZE(load_config), + &descr[0], ARRAY_SIZE(descr)); + if (rc != 2) { + printf("FAILED to parse the File Id/File version\n"); + abort(); + } + + printf("Start: %u 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: %u 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)); + + /* start */ + pos = abis_nm_select_newest_sw(descr, rc); + if (pos != 1) { + printf("Selected the wrong version: %d\n", pos); + abort(); + } + printf("SELECTED: %d\n", pos); + + /* shuffle */ + tmp = descr[0]; + descr[0] = descr[1]; + descr[1] = tmp; + pos = abis_nm_select_newest_sw(descr, rc); + if (pos != 0) { + printf("Selected the wrong version: %d\n", pos); + abort(); + } + printf("SELECTED: %d\n", pos); +} + 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 64019880c..ba1da338a 100644 --- a/openbsc/tests/abis/abis_test.ok +++ b/openbsc/tests/abis/abis_test.ok @@ -1,9 +1,17 @@ Start: 0 len: 13 -file_id: 01 02 03 -file_ver: 03 04 05 -Start: 13 len: 26 -file_id: 01 02 03 -file_ver: 03 04 05 -Start: 26 len: 13 -file_id: 09 07 05 -file_ver: 06 07 08 +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: 51 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: 77 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 -- cgit v1.2.3