summaryrefslogtreecommitdiff
path: root/cesar/bsu/test
diff options
context:
space:
mode:
Diffstat (limited to 'cesar/bsu/test')
-rw-r--r--cesar/bsu/test/utest/src/bsut.c92
1 files changed, 92 insertions, 0 deletions
diff --git a/cesar/bsu/test/utest/src/bsut.c b/cesar/bsu/test/utest/src/bsut.c
index c2d9260716..08d2ad206a 100644
--- a/cesar/bsu/test/utest/src/bsut.c
+++ b/cesar/bsu/test/utest/src/bsut.c
@@ -39,6 +39,9 @@ bsu_beacon_process__avln_tracked (bsu_t *ctx, bsu_beacon_t *beacon,
pbproc_rx_beacon_params_t *params);
void
+bsu_handle_key_change (bsu_t *ctx);
+
+void
test_case_bsu_process (test_t test)
{
uint i;
@@ -808,6 +811,94 @@ test_case_bsu_nek_index (test_t test)
bsu_test_uninit (&t);
}
+void
+test_case_bsu_handle_key_change (test_t test)
+{
+ test_case_begin (test, "Handle key change");
+ bsu_test_t t;
+ bsu_test_init (&t);
+ test_begin (test, "No key bentry");
+ {
+ t.bsu->nek_switch = 0;
+ t.bsu->sta_avln->beacon.bmis.eks.present = false;
+ t.bsu->sta_avln->beacon.bmis.eks.kbc = BSU_BEACON_EKS_KBC_NEK;
+ t.bsu->sta_avln->beacon.bmis.eks.kccd = 1;
+
+ bsu_handle_key_change (t.bsu);
+
+ test_fail_unless (t.bsu->nek_switch == 0);
+ test_fail_unless (t.bsu->sta_avln->beacon.bmis.eks.present == false);
+ test_fail_unless (t.bsu->sta_avln->beacon.bmis.eks.kbc
+ == BSU_BEACON_EKS_KBC_NEK);
+ test_fail_unless (t.bsu->sta_avln->beacon.bmis.eks.kccd == 1);
+ }
+ test_end;
+ test_begin (test, "Key bentry:Not NEK");
+ {
+ t.bsu->nek_switch = 0;
+ t.bsu->sta_avln->beacon.bmis.eks.present = true;
+ t.bsu->sta_avln->beacon.bmis.eks.kbc = BSU_BEACON_EKS_KBC_NMK;
+ t.bsu->sta_avln->beacon.bmis.eks.kccd = 4;
+
+ bsu_handle_key_change (t.bsu);
+
+ test_fail_unless (t.bsu->nek_switch == 0);
+ test_fail_unless (t.bsu->sta_avln->beacon.bmis.eks.present == true);
+ test_fail_unless (t.bsu->sta_avln->beacon.bmis.eks.kbc
+ == BSU_BEACON_EKS_KBC_NMK);
+ test_fail_unless (t.bsu->sta_avln->beacon.bmis.eks.kccd == 3);
+ }
+ test_end;
+ test_begin (test, "Key bentry:NEK");
+ {
+ t.bsu->nek_switch = 0;
+ t.bsu->sta_avln->beacon.bmis.eks.present = true;
+ t.bsu->sta_avln->beacon.bmis.eks.kbc = BSU_BEACON_EKS_KBC_NEK;
+ t.bsu->sta_avln->beacon.bmis.eks.kccd = 4;
+
+ bsu_handle_key_change (t.bsu);
+
+ test_fail_unless (t.bsu->nek_switch == 0);
+ test_fail_unless (t.bsu->sta_avln->beacon.bmis.eks.present == true);
+ test_fail_unless (t.bsu->sta_avln->beacon.bmis.eks.kbc
+ == BSU_BEACON_EKS_KBC_NEK);
+ test_fail_unless (t.bsu->sta_avln->beacon.bmis.eks.kccd == 3);
+ }
+ test_end;
+ test_begin (test, "Key bentry:Not NEK:KCCD == 1");
+ {
+ t.bsu->nek_switch = 0;
+ t.bsu->sta_avln->beacon.bmis.eks.present = true;
+ t.bsu->sta_avln->beacon.bmis.eks.kbc = BSU_BEACON_EKS_KBC_NMK;
+ t.bsu->sta_avln->beacon.bmis.eks.kccd = 1;
+
+ bsu_handle_key_change (t.bsu);
+
+ test_fail_unless (t.bsu->nek_switch == 0);
+ test_fail_unless (t.bsu->sta_avln->beacon.bmis.eks.present == false);
+ test_fail_unless (t.bsu->sta_avln->beacon.bmis.eks.kbc
+ == BSU_BEACON_EKS_KBC_NMK);
+ test_fail_unless (t.bsu->sta_avln->beacon.bmis.eks.kccd == 1);
+ }
+ test_end;
+ test_begin (test, "Key bentry:NEK:KCCD == 1");
+ {
+ t.bsu->nek_switch = 0;
+ t.bsu->sta_avln->beacon.bmis.eks.present = true;
+ t.bsu->sta_avln->beacon.bmis.eks.kbc = BSU_BEACON_EKS_KBC_NEK;
+ t.bsu->sta_avln->beacon.bmis.eks.kccd = 1;
+
+ bsu_handle_key_change (t.bsu);
+
+ test_fail_unless (t.bsu->nek_switch == 1);
+ test_fail_unless (t.bsu->sta_avln->beacon.bmis.eks.present == false);
+ test_fail_unless (t.bsu->sta_avln->beacon.bmis.eks.kbc
+ == BSU_BEACON_EKS_KBC_NEK);
+ test_fail_unless (t.bsu->sta_avln->beacon.bmis.eks.kccd == 1);
+ }
+ test_end;
+ bsu_test_uninit (&t);
+}
void
test_case_bsu_discover_update (test_t test)
@@ -1045,6 +1136,7 @@ test_suite_bsu (test_t t)
test_case_bsu_timer_event (t);
test_case_bsu_persistent_schedules_update (t);
test_case_bsu_nek_index (t);
+ test_case_bsu_handle_key_change (t);
test_case_bsu_discover_update (t);
test_case_bsu_add_avln_array_full (t);
test_case_bsu_avln_remove (t);