[MERGED] osmo-hlr[master]: db_test: also test db_get_auc() return values

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Neels Hofmeyr gerrit-no-reply at lists.osmocom.org
Thu Nov 30 11:01:33 UTC 2017


Neels Hofmeyr has submitted this change and it was merged.

Change subject: db_test: also test db_get_auc() return values
......................................................................


db_test: also test db_get_auc() return values

Verify that it returns -ENOENT on non-existing IMSI and -ENOKEY for no auth
data.

Move the auc_compute_vectors() stub to the top near the db_get_auc() call, and
just return num_vec to get a successful return value when auth data is present.

Change-Id: Ic0158228afbd78b8ca21f62dffa9f868674682b9
---
M tests/db/db_test.c
M tests/db/db_test.err
2 files changed, 80 insertions(+), 5 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/tests/db/db_test.c b/tests/db/db_test.c
index 1a5d7e0..6bf7a86 100644
--- a/tests/db/db_test.c
+++ b/tests/db/db_test.c
@@ -100,6 +100,22 @@
 		fprintf(stderr, "\n"); \
 	} while (0)
 
+#define N_VECTORS 3
+
+#define ASSERT_DB_GET_AUC(imsi, expect_rc) \
+	do { \
+		struct osmo_auth_vector vec[N_VECTORS]; \
+		ASSERT_RC(db_get_auc(dbc, imsi, 3, vec, N_VECTORS, NULL, NULL), expect_rc); \
+	} while (0)
+
+/* Not linking the real auc_compute_vectors(), just returning num_vec.
+ * This gets called by db_get_auc(), but we're only interested in its rc. */
+int auc_compute_vectors(struct osmo_auth_vector *vec, unsigned int num_vec,
+			struct osmo_sub_auth_data *aud2g,
+			struct osmo_sub_auth_data *aud3g,
+			const uint8_t *rand_auts, const uint8_t *auts)
+{ return num_vec; }
+
 static struct db_context *dbc = NULL;
 static void *ctx = NULL;
 static struct hlr_subscriber g_subscr;
@@ -457,6 +473,7 @@
 
 	comment("Get auth data for non-existent subscriber");
 	ASSERT_SEL_AUD(unknown_imsi, -ENOENT, 0);
+	ASSERT_DB_GET_AUC(imsi0, -ENOENT);
 
 	comment("Create subscriber");
 
@@ -465,6 +482,7 @@
 
 	id = g_subscr.id;
 	ASSERT_SEL_AUD(imsi0, -ENOKEY, id);
+	ASSERT_DB_GET_AUC(imsi0, -ENOKEY);
 
 
 	comment("Set auth data, 2G only");
@@ -473,6 +491,7 @@
 		mk_aud_2g(OSMO_AUTH_ALG_COMP128v1, "0123456789abcdef0123456789abcdef")),
 		0);
 	ASSERT_SEL_AUD(imsi0, 0, id);
+	ASSERT_DB_GET_AUC(imsi0, N_VECTORS);
 
 	/* same again */
 	ASSERT_RC(db_subscr_update_aud_by_id(dbc, id,
@@ -501,6 +520,7 @@
 		mk_aud_2g(OSMO_AUTH_ALG_NONE, NULL)),
 		0);
 	ASSERT_SEL_AUD(imsi0, -ENOKEY, id);
+	ASSERT_DB_GET_AUC(imsi0, -ENOKEY);
 
 	/* Removing nothing results in -ENOENT */
 	ASSERT_RC(db_subscr_update_aud_by_id(dbc, id,
@@ -516,6 +536,7 @@
 		mk_aud_2g(OSMO_AUTH_ALG_NONE, "f000000000000f00000000000f000000")),
 		0);
 	ASSERT_SEL_AUD(imsi0, -ENOKEY, id);
+	ASSERT_DB_GET_AUC(imsi0, -ENOKEY);
 
 
 	comment("Set auth data, 3G only");
@@ -526,6 +547,7 @@
 			  "C01ffedC1cadaeAc1d1f1edAcac1aB0a", 5)),
 		0);
 	ASSERT_SEL_AUD(imsi0, 0, id);
+	ASSERT_DB_GET_AUC(imsi0, N_VECTORS);
 
 	/* same again */
 	ASSERT_RC(db_subscr_update_aud_by_id(dbc, id,
@@ -563,6 +585,7 @@
 		mk_aud_3g(OSMO_AUTH_ALG_NONE, NULL, false, NULL, 0)),
 		0);
 	ASSERT_SEL_AUD(imsi0, -ENOKEY, id);
+	ASSERT_DB_GET_AUC(imsi0, -ENOKEY);
 
 	/* Removing nothing results in -ENOENT */
 	ASSERT_RC(db_subscr_update_aud_by_id(dbc, id,
@@ -575,6 +598,7 @@
 			  "BeefedCafeFaceAcedAddedDecadeFee", 5)),
 		0);
 	ASSERT_SEL_AUD(imsi0, 0, id);
+	ASSERT_DB_GET_AUC(imsi0, N_VECTORS);
 
 	ASSERT_RC(db_subscr_update_aud_by_id(dbc, id,
 		mk_aud_3g(OSMO_AUTH_ALG_NONE,
@@ -582,6 +606,7 @@
 			  "asdfasdfasdf", 99999)),
 		0);
 	ASSERT_SEL_AUD(imsi0, -ENOKEY, id);
+	ASSERT_DB_GET_AUC(imsi0, -ENOKEY);
 
 
 	comment("Set auth data, 2G and 3G");
@@ -595,6 +620,7 @@
 			  "DeafBeddedBabeAcceededFadedDecaf", 5)),
 		0);
 	ASSERT_SEL_AUD(imsi0, 0, id);
+	ASSERT_DB_GET_AUC(imsi0, N_VECTORS);
 
 
 	comment("Set invalid auth data");
@@ -670,9 +696,11 @@
 	 * and make sure there are no auth data leftovers for this ID. */
 	OSMO_ASSERT(id == g_subscr.id);
 	ASSERT_SEL_AUD(imsi0, -ENOKEY, id);
+	ASSERT_DB_GET_AUC(imsi0, -ENOKEY);
 
 	ASSERT_RC(db_subscr_delete_by_id(dbc, id), 0);
 	ASSERT_SEL(imsi, imsi0, -ENOENT);
+	ASSERT_DB_GET_AUC(imsi0, -ENOENT);
 
 	comment_end();
 }
@@ -835,11 +863,6 @@
 }
 
 /* stubs */
-int auc_compute_vectors(struct osmo_auth_vector *vec, unsigned int num_vec,
-			struct osmo_sub_auth_data *aud2g,
-			struct osmo_sub_auth_data *aud3g,
-			const uint8_t *rand_auts, const uint8_t *auts)
-{ OSMO_ASSERT(false); return -1; }
 void *lu_op_alloc_conn(void *conn)
 { OSMO_ASSERT(false); return NULL; }
 void lu_op_tx_del_subscr_data(void *luop)
diff --git a/tests/db/db_test.err b/tests/db/db_test.err
index c5e5bac..1d34045 100644
--- a/tests/db/db_test.err
+++ b/tests/db/db_test.err
@@ -715,6 +715,9 @@
 DAUC IMSI='999999999': No such subscriber
 
 
+db_get_auc(dbc, imsi0, 3, vec, N_VECTORS, NULL, NULL) --> -2
+DAUC IMSI='123456789000000': No such subscriber
+
 
 --- Create subscriber
 
@@ -731,6 +734,10 @@
 DAUC IMSI='123456789000000': No 3G Auth Data
 
 
+db_get_auc(dbc, imsi0, 3, vec, N_VECTORS, NULL, NULL) --> -126
+DAUC IMSI='123456789000000': No 2G Auth Data
+DAUC IMSI='123456789000000': No 3G Auth Data
+
 
 --- Set auth data, 2G only
 
@@ -745,6 +752,11 @@
   .u.gsm.ki = '0123456789abcdef0123456789abcdef',
 }
 3G: none
+
+db_get_auc(dbc, imsi0, 3, vec, N_VECTORS, NULL, NULL) --> 3
+DAUC IMSI='123456789000000': No 3G Auth Data
+DAUC IMSI='123456789000000': Calling to generate 3 vectors
+DAUC IMSI='123456789000000': Generated 3 vectors
 
 db_subscr_update_aud_by_id(dbc, id, mk_aud_2g(OSMO_AUTH_ALG_COMP128v1, "0123456789abcdef0123456789abcdef")) --> 0
 
@@ -804,6 +816,10 @@
 DAUC IMSI='123456789000000': No 3G Auth Data
 
 
+db_get_auc(dbc, imsi0, 3, vec, N_VECTORS, NULL, NULL) --> -126
+DAUC IMSI='123456789000000': No 2G Auth Data
+DAUC IMSI='123456789000000': No 3G Auth Data
+
 db_subscr_update_aud_by_id(dbc, id, mk_aud_2g(OSMO_AUTH_ALG_NONE, NULL)) --> -ENOENT
 
 db_subscr_update_aud_by_id(dbc, id, mk_aud_2g(OSMO_AUTH_ALG_XOR, "CededEffacedAceFacedBadFadedBeef")) --> 0
@@ -825,6 +841,10 @@
 DAUC IMSI='123456789000000': No 3G Auth Data
 
 
+db_get_auc(dbc, imsi0, 3, vec, N_VECTORS, NULL, NULL) --> -126
+DAUC IMSI='123456789000000': No 2G Auth Data
+DAUC IMSI='123456789000000': No 3G Auth Data
+
 
 --- Set auth data, 3G only
 
@@ -843,6 +863,12 @@
   .u.umts.amf = '0000',
   .u.umts.ind_bitlen = 5,
 }
+
+db_get_auc(dbc, imsi0, 3, vec, N_VECTORS, NULL, NULL) --> 3
+DAUC IMSI='123456789000000': No 2G Auth Data
+DAUC IMSI='123456789000000': Calling to generate 3 vectors
+DAUC IMSI='123456789000000': Generated 3 vectors
+DAUC IMSI='123456789000000': Updating SQN=0 in DB
 
 db_subscr_update_aud_by_id(dbc, id, mk_aud_3g(OSMO_AUTH_ALG_MILENAGE, "BeefedCafeFaceAcedAddedDecadeFee", true, "C01ffedC1cadaeAc1d1f1edAcac1aB0a", 5)) --> 0
 
@@ -917,6 +943,10 @@
 DAUC IMSI='123456789000000': No 3G Auth Data
 
 
+db_get_auc(dbc, imsi0, 3, vec, N_VECTORS, NULL, NULL) --> -126
+DAUC IMSI='123456789000000': No 2G Auth Data
+DAUC IMSI='123456789000000': No 3G Auth Data
+
 db_subscr_update_aud_by_id(dbc, id, mk_aud_3g(OSMO_AUTH_ALG_NONE, NULL, false, NULL, 0)) --> -ENOENT
 
 db_subscr_update_aud_by_id(dbc, id, mk_aud_3g(OSMO_AUTH_ALG_MILENAGE, "CededEffacedAceFacedBadFadedBeef", false, "BeefedCafeFaceAcedAddedDecadeFee", 5)) --> 0
@@ -935,12 +965,22 @@
   .u.umts.ind_bitlen = 5,
 }
 
+db_get_auc(dbc, imsi0, 3, vec, N_VECTORS, NULL, NULL) --> 3
+DAUC IMSI='123456789000000': No 2G Auth Data
+DAUC IMSI='123456789000000': Calling to generate 3 vectors
+DAUC IMSI='123456789000000': Generated 3 vectors
+DAUC IMSI='123456789000000': Updating SQN=0 in DB
+
 db_subscr_update_aud_by_id(dbc, id, mk_aud_3g(OSMO_AUTH_ALG_NONE, "asdfasdfasd", false, "asdfasdfasdf", 99999)) --> 0
 
 db_get_auth_data(dbc, imsi0, &g_aud2g, &g_aud3g, &g_id) --> -126
 DAUC IMSI='123456789000000': No 2G Auth Data
 DAUC IMSI='123456789000000': No 3G Auth Data
 
+
+db_get_auc(dbc, imsi0, 3, vec, N_VECTORS, NULL, NULL) --> -126
+DAUC IMSI='123456789000000': No 2G Auth Data
+DAUC IMSI='123456789000000': No 3G Auth Data
 
 
 --- Set auth data, 2G and 3G
@@ -965,6 +1005,11 @@
   .u.umts.amf = '0000',
   .u.umts.ind_bitlen = 5,
 }
+
+db_get_auc(dbc, imsi0, 3, vec, N_VECTORS, NULL, NULL) --> 3
+DAUC IMSI='123456789000000': Calling to generate 3 vectors
+DAUC IMSI='123456789000000': Generated 3 vectors
+DAUC IMSI='123456789000000': Updating SQN=0 in DB
 
 
 --- Set invalid auth data
@@ -1179,11 +1224,18 @@
 DAUC IMSI='123456789000000': No 3G Auth Data
 
 
+db_get_auc(dbc, imsi0, 3, vec, N_VECTORS, NULL, NULL) --> -126
+DAUC IMSI='123456789000000': No 2G Auth Data
+DAUC IMSI='123456789000000': No 3G Auth Data
+
 db_subscr_delete_by_id(dbc, id) --> 0
 
 db_subscr_get_by_imsi(dbc, imsi0, &g_subscr) --> -ENOENT
 DAUC Cannot read subscriber from db: IMSI='123456789000000': No such subscriber
 
+db_get_auc(dbc, imsi0, 3, vec, N_VECTORS, NULL, NULL) --> -2
+DAUC IMSI='123456789000000': No such subscriber
+
 ===== test_subscr_aud: SUCCESS
 
 

-- 
To view, visit https://gerrit.osmocom.org/4989
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ic0158228afbd78b8ca21f62dffa9f868674682b9
Gerrit-PatchSet: 3
Gerrit-Project: osmo-hlr
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de>



More information about the gerrit-log mailing list