GSUP: add end marker to enum osmo_gsup_iei

Simplify gsup_test.c by defining an end marker in gsup.h. No need to
manually update the last element every time anymore.

The C standard guarantees, that the end marker will have the last value
plus one: "Each subsequent enumerator with no = defines its enumeration
constant as the value of the constant expression obtained by adding 1 to
the value of the previous enumeration constant." (From C99: 6.7.2.2
Enumeration specifiers)

Change-Id: I2aab7245e209f0ebd2f33a83d4d181dd3339cb17
This commit is contained in:
Oliver Smith 2018-12-21 10:18:28 +01:00
parent e8c3b1bc0b
commit 19742408cf
2 changed files with 3 additions and 5 deletions

View File

@ -98,6 +98,8 @@ enum osmo_gsup_iei {
OSMO_GSUP_SM_RP_CAUSE_IE = 0x44,
OSMO_GSUP_SM_RP_MMS_IE = 0x45,
OSMO_GSUP_SM_ALERT_RSN_IE = 0x46,
_OSMO_GSUP_IEI_END_MARKER
};
/*! GSUP message type */

View File

@ -401,11 +401,7 @@ static void test_gsup_messages_dec_enc(void)
osmo_hexdump(t->data + j, ie_end - j));
OSMO_ASSERT(j <= ie_end - 2);
/**
* FIXME: share the maximal IE value somehow
* in order to avoid manual updating of this
*/
OSMO_ASSERT(t->data[j+0] <= OSMO_GSUP_SM_ALERT_RSN_IE);
OSMO_ASSERT(t->data[j+0] < _OSMO_GSUP_IEI_END_MARKER);
OSMO_ASSERT(t->data[j+1] <= ie_end - j - 2);
ie_end = j;