mirror of https://gerrit.osmocom.org/libosmocore
gsm0408_test: add a testcase for gsm48_decode_bearer_cap()
The new testcase contains a Bearer capability IE from Siemens S11E, which does not use octet 3a (no extension bit set in octet 3). gsm48_decode_bearer_cap() currently fails to parse it. Change-Id: Ia19f3f6d80bc09ca3f8d39d35b148a0c0245141f
This commit is contained in:
parent
1a077cb0ca
commit
95fc8ea056
|
@ -354,7 +354,8 @@ EXTRA_DIST = testsuite.at $(srcdir)/package.m4 $(TESTSUITE) \
|
|||
timer/timer_test.ok sms/sms_test.ok ussd/ussd_test.ok \
|
||||
smscb/smscb_test.ok bits/bitrev_test.ok a5/a5_test.ok \
|
||||
conv/conv_test.ok auth/milenage_test.ok ctrl/ctrl_test.ok \
|
||||
lapd/lapd_test.ok gsm0408/gsm0408_test.ok \
|
||||
lapd/lapd_test.ok \
|
||||
gsm0408/gsm0408_test.ok gsm0408/gsm0408_test.err \
|
||||
gsm0808/gsm0808_test.ok gb/bssgp_fc_tests.err \
|
||||
gb/bssgp_fc_tests.ok gb/bssgp_fc_tests.sh \
|
||||
gb/gprs_bssgp_test.ok gb/gprs_ns_test.ok gea/gea_test.ok \
|
||||
|
@ -496,7 +497,8 @@ endif
|
|||
gsm29205/gsm29205_test \
|
||||
>$(srcdir)/gsm29205/gsm29205_test.ok
|
||||
gsm0408/gsm0408_test \
|
||||
>$(srcdir)/gsm0408/gsm0408_test.ok
|
||||
2>$(srcdir)/gsm0408/gsm0408_test.err \
|
||||
1>$(srcdir)/gsm0408/gsm0408_test.ok
|
||||
gsm48/rest_octets_test \
|
||||
>$(srcdir)/gsm48/rest_octets_test.ok
|
||||
gprs/gprs_test \
|
||||
|
|
|
@ -65,6 +65,18 @@ static const struct gsm_mncc_bearer_cap bcap_speech_all = {
|
|||
},
|
||||
};
|
||||
|
||||
static const uint8_t speech_no3a_lv[] = { 0x01, 0xa0 };
|
||||
|
||||
static const struct gsm_mncc_bearer_cap bcap_speech_no3a = {
|
||||
.transfer = GSM48_BCAP_ITCAP_SPEECH,
|
||||
.mode = GSM48_BCAP_TMOD_CIRCUIT,
|
||||
.coding = GSM48_BCAP_CODING_GSM_STD,
|
||||
.radio = GSM48_BCAP_RRQ_FR_ONLY,
|
||||
.speech_ver = {
|
||||
0, -1,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
struct bcap_test {
|
||||
const uint8_t *lv;
|
||||
|
@ -75,6 +87,7 @@ struct bcap_test {
|
|||
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" },
|
||||
{ speech_no3a_lv, &bcap_speech_no3a, "Speech, without octet 3a" },
|
||||
};
|
||||
|
||||
static int test_bearer_cap()
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
Incorrect decoded result of Speech, without octet 3a:
|
||||
should: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
is: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
|
@ -1,5 +1,6 @@
|
|||
Test `CSD 9600/V.110/transparent' passed
|
||||
Test `Speech, all codecs' passed
|
||||
Test `Speech, without octet 3a' failed
|
||||
Simple TMSI encoding test....passed
|
||||
Simple IMSI encoding test....passed: [10] 17 08 99 10 07 00 00 00 64 02
|
||||
|
||||
|
|
|
@ -153,7 +153,8 @@ AT_CLEANUP
|
|||
AT_SETUP([gsm0408])
|
||||
AT_KEYWORDS([gsm0408])
|
||||
cat $abs_srcdir/gsm0408/gsm0408_test.ok > expout
|
||||
AT_CHECK([$abs_top_builddir/tests/gsm0408/gsm0408_test], [0], [expout], [ignore])
|
||||
cat $abs_srcdir/gsm0408/gsm0408_test.err > experr
|
||||
AT_CHECK([$abs_top_builddir/tests/gsm0408/gsm0408_test], [0], [expout], [experr])
|
||||
AT_CLEANUP
|
||||
|
||||
AT_SETUP([gsm48_rest_octets])
|
||||
|
|
Loading…
Reference in New Issue