summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Smith <osmith@sysmocom.de>2018-12-21 10:18:28 +0100
committerOliver Smith <osmith@sysmocom.de>2018-12-21 13:13:11 +0100
commit19742408cf3d83bb67e4b8c2fc3b0cbbee7bee59 (patch)
treeed055dde1b3982298221d869b92fe243625083da
parente8c3b1bc0b459a94aa490743e8e1320185e48473 (diff)
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
-rw-r--r--include/osmocom/gsm/gsup.h2
-rw-r--r--tests/gsup/gsup_test.c6
2 files changed, 3 insertions, 5 deletions
diff --git a/include/osmocom/gsm/gsup.h b/include/osmocom/gsm/gsup.h
index 51871e44..37e474c2 100644
--- a/include/osmocom/gsm/gsup.h
+++ b/include/osmocom/gsm/gsup.h
@@ -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 */
diff --git a/tests/gsup/gsup_test.c b/tests/gsup/gsup_test.c
index b3a8c772..079a7031 100644
--- a/tests/gsup/gsup_test.c
+++ b/tests/gsup/gsup_test.c
@@ -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;