Move {min|max}_complete choice logic into function
Signed-off-by: Paul Elliott <paul.elliott@arm.com>
diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function
index bee9232..a1b3c90 100644
--- a/tests/suites/test_suite_psa_crypto.function
+++ b/tests/suites/test_suite_psa_crypto.function
@@ -1220,6 +1220,31 @@
INJECT_ANTICIPATE_KEY_DERIVATION_2,
} ecjpake_injected_failure_t;
+static void interruptible_signverify_get_minmax_completes(uint32_t max_ops,
+ psa_status_t expected_status,
+ size_t *min_completes,
+ size_t *max_completes)
+{
+
+ /* This is slightly contrived, but we only really know that with a minimum
+ value of max_ops that a successful operation should take more than one op
+ to complete, and likewise that with a max_ops of
+ PSA_INTERRUPTIBLE_MAX_OPS_UNLIMITED, it should complete in one go. */
+ if (max_ops == 0 || max_ops == 1) {
+ /* Failure test cases will fail on the first op. */
+ if (expected_status == PSA_SUCCESS) {
+ *min_completes = 2;
+ } else {
+ *min_completes = 1;
+ }
+
+ *max_completes = PSA_INTERRUPTIBLE_MAX_OPS_UNLIMITED;
+ } else {
+ *min_completes = 1;
+ *max_completes = 1;
+ }
+}
+
/* END_HEADER */
/* BEGIN_DEPENDENCIES
@@ -6489,13 +6514,8 @@
psa_interruptible_set_max_ops(max_ops);
- if (max_ops == PSA_INTERRUPTIBLE_MAX_OPS_UNLIMITED) {
- min_completes = 1;
- max_completes = 1;
- } else {
- min_completes = 2;
- max_completes = PSA_INTERRUPTIBLE_MAX_OPS_UNLIMITED;
- }
+ interruptible_signverify_get_minmax_completes(max_ops, PSA_SUCCESS,
+ &min_completes, &max_completes);
num_ops_prior = psa_sign_hash_get_num_ops(&operation);
TEST_ASSERT(num_ops_prior == 0);
@@ -6636,19 +6656,10 @@
psa_interruptible_set_max_ops(max_ops);
- if (max_ops == PSA_INTERRUPTIBLE_MAX_OPS_UNLIMITED) {
- min_completes = 1;
- max_completes = 1;
- } else {
- /* Unfortunate, but failure cases tend to fail on the first op. */
- if (expected_complete_status == PSA_SUCCESS) {
- min_completes = 2;
- } else {
- min_completes = 1;
- }
-
- max_completes = PSA_INTERRUPTIBLE_MAX_OPS_UNLIMITED;
- }
+ interruptible_signverify_get_minmax_completes(max_ops,
+ expected_complete_status,
+ &min_completes,
+ &max_completes);
num_ops_prior = psa_sign_hash_get_num_ops(&operation);
TEST_ASSERT(num_ops_prior == 0);
@@ -6834,13 +6845,8 @@
psa_interruptible_set_max_ops(max_ops);
- if (max_ops == PSA_INTERRUPTIBLE_MAX_OPS_UNLIMITED) {
- min_completes = 1;
- max_completes = 1;
- } else {
- min_completes = 2;
- max_completes = PSA_INTERRUPTIBLE_MAX_OPS_UNLIMITED;
- }
+ interruptible_signverify_get_minmax_completes(max_ops, PSA_SUCCESS,
+ &min_completes, &max_completes);
/* Start performing the signature. */
PSA_ASSERT(psa_sign_hash_start(&sign_operation, key, alg,
@@ -6989,13 +6995,8 @@
psa_interruptible_set_max_ops(max_ops);
- if (max_ops == PSA_INTERRUPTIBLE_MAX_OPS_UNLIMITED) {
- min_completes = 1;
- max_completes = 1;
- } else {
- min_completes = 2;
- max_completes = PSA_INTERRUPTIBLE_MAX_OPS_UNLIMITED;
- }
+ interruptible_signverify_get_minmax_completes(max_ops, PSA_SUCCESS,
+ &min_completes, &max_completes);
num_ops_prior = psa_verify_hash_get_num_ops(&operation);
@@ -7111,13 +7112,10 @@
psa_interruptible_set_max_ops(max_ops);
- if (max_ops == PSA_INTERRUPTIBLE_MAX_OPS_UNLIMITED) {
- min_completes = 1;
- max_completes = 1;
- } else {
- min_completes = 2;
- max_completes = PSA_INTERRUPTIBLE_MAX_OPS_UNLIMITED;
- }
+ interruptible_signverify_get_minmax_completes(max_ops,
+ expected_complete_status,
+ &min_completes,
+ &max_completes);
num_ops_prior = psa_verify_hash_get_num_ops(&operation);
TEST_ASSERT(num_ops_prior == 0);