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/.
Max gerrit-no-reply at lists.osmocom.orgMax has uploaded this change for review. ( https://gerrit.osmocom.org/12226
Change subject: Add tests for IMSI ACLs
......................................................................
Add tests for IMSI ACLs
Change-Id: Ia782f12b49bed6428bc9b9f513237e4e6aefdec9
---
M tests/sgsn/sgsn_test.c
M tests/sgsn/sgsn_test.ok
2 files changed, 115 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/26/12226/1
diff --git a/tests/sgsn/sgsn_test.c b/tests/sgsn/sgsn_test.c
index 4c0dc00..21bff5c 100644
--- a/tests/sgsn/sgsn_test.c
+++ b/tests/sgsn/sgsn_test.c
@@ -1337,6 +1337,108 @@
cleanup_test();
}
+static bool add_check_acl(const char *imsi, struct sgsn_config *cfg)
+{
+ struct imsi_acl_entry *e;
+ size_t old = sgsn_acl_count(cfg), new;
+ int rc;
+
+ printf("[%zu] Adding ACL %s [%zu]... ", old, imsi, strlen(imsi));
+
+ rc = sgsn_acl_add(imsi, cfg);
+ new = sgsn_acl_count(cfg);
+
+ if (rc < 0) {
+ printf("failed to add acl %s, total entries %zu\n", imsi, new);
+ return false;
+ }
+
+ if (new - old != 1) {
+ printf("failed to add acl %s: incorrect number of total entries %zu\n", imsi, new);
+ return false;
+ }
+
+ e = sgsn_acl_lookup(imsi, cfg);
+ if (e)
+ printf("added as %s [%zu], total entries %zu\n", e->imsi, strlen(e->imsi), new);
+ else {
+ printf("failed to obtain added %s entry, total entries %zu\n", imsi, new);
+ return false;
+ }
+
+ return true;
+}
+
+static bool del_check_acl(const char *imsi, struct sgsn_config *cfg)
+{
+ size_t old = sgsn_acl_count(cfg), new;
+ int rc;
+
+ printf("[%zu] Removing ACL %s... ", old, imsi);
+
+ rc = sgsn_acl_del(imsi, cfg);
+ new = sgsn_acl_count(cfg);
+
+ if (rc < 0) {
+ printf("failed to remove acl %s, total entries %zu\n", imsi, sgsn_acl_count(cfg));
+ if (new != old)
+ printf("\tincorrect number of total entries %zu\n", new);
+ return false;
+ }
+
+ if (old - new != 1) {
+ printf("failed to remove acl %s: incorrect number of total entries %zu\n", imsi, new);
+ return false;
+ }
+
+ printf("OK, total entries %zu\n", new);
+
+ return true;
+}
+
+static void test_imsi_acl(struct sgsn_config *cfg)
+{
+ printf("Testing IMSI ACLs\n");
+
+ /* add short IMSI */
+ if (!add_check_acl("1010000000016", cfg))
+ return;
+
+ /* add complete IMSI */
+ if (!add_check_acl("001010000000011", cfg))
+ return;
+ if (!add_check_acl("001010000000012", cfg))
+ return;
+ if (!add_check_acl("001010000000013", cfg))
+ return;
+
+ /* delete non-existent - should fail: */
+ if (del_check_acl("666010000000012", cfg))
+ return;
+
+ /* delete existent short */
+ if (!del_check_acl("1010000000016", cfg))
+ return;
+
+ /* delete existent complete */
+ if (!del_check_acl("001010000000012", cfg))
+ return;
+ if (!del_check_acl("001010000000011", cfg))
+ return;
+ if (!del_check_acl("001010000000013", cfg))
+ return;
+
+ /* double-delete - should fail: */
+ if (del_check_acl("001010000000013", cfg))
+ return;
+
+ /* add long IMSI - should fail: */
+ if (add_check_acl("00101002222222222222222200000011", cfg))
+ return;
+
+ cleanup_test();
+}
+
static void test_apn_matching(void)
{
struct apn_ctx *actx, *actxs[9];
@@ -1660,6 +1762,7 @@
test_gmm_cancel();
test_apn_matching();
test_ggsn_selection();
+ test_imsi_acl(&sgsn->cfg);
printf("Done\n");
talloc_report_full(osmo_sgsn_ctx, stderr);
diff --git a/tests/sgsn/sgsn_test.ok b/tests/sgsn/sgsn_test.ok
index e7e7cf6..3d63a63 100644
--- a/tests/sgsn/sgsn_test.ok
+++ b/tests/sgsn/sgsn_test.ok
@@ -24,4 +24,16 @@
Testing cancellation
Testing APN matching
Testing GGSN selection
+Testing IMSI ACLs
+[0] Adding ACL 1010000000016 [13]... added as 1010000000016 [13], total entries 1
+[1] Adding ACL 001010000000011 [15]... added as 001010000000011 [15], total entries 2
+[2] Adding ACL 001010000000012 [15]... added as 001010000000012 [15], total entries 3
+[3] Adding ACL 001010000000013 [15]... added as 001010000000013 [15], total entries 4
+[4] Removing ACL 666010000000012... failed to remove acl 666010000000012, total entries 4
+[4] Removing ACL 1010000000016... OK, total entries 3
+[3] Removing ACL 001010000000012... OK, total entries 2
+[2] Removing ACL 001010000000011... OK, total entries 1
+[1] Removing ACL 001010000000013... OK, total entries 0
+[0] Removing ACL 001010000000013... failed to remove acl 001010000000013, total entries 0
+[0] Adding ACL 00101002222222222222222200000011 [32]... failed to obtain added 00101002222222222222222200000011 entry, total entries 1
Done
--
To view, visit https://gerrit.osmocom.org/12226
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-sgsn
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia782f12b49bed6428bc9b9f513237e4e6aefdec9
Gerrit-Change-Number: 12226
Gerrit-PatchSet: 1
Gerrit-Owner: Max <msuraev at sysmocom.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20181210/db1327b9/attachment.htm>