Convert set lengths options over to enum

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 543b2f6..9918399 100644
--- a/tests/suites/test_suite_psa_crypto.function
+++ b/tests/suites/test_suite_psa_crypto.function
@@ -264,6 +264,13 @@
     DERIVE_KEY = 2
 } generate_method;
 
+typedef enum
+{
+    DO_NOT_SET_LENGTHS = 0,
+    SET_LENGTHS_BEFORE_NONCE = 1,
+    SET_LENGTHS_AFTER_NONCE = 2
+} setlengths_method;
+
 /*!
  * \brief                           Internal Function for AEAD multipart tests.
  *
@@ -300,12 +307,11 @@
                                          int ad_part_len_arg,
                                          data_t *input_data,
                                          int data_part_len_arg,
-                                         int do_set_lengths,
+                                         setlengths_method set_lengths_method,
                                          data_t *expected_output,
                                          int expect_valid_signature,
                                          int is_encrypt,
-                                         int do_zero_parts,
-                                         int swap_set_functions )
+                                         int do_zero_parts )
 {
     mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT;
     psa_key_type_t key_type = key_type_arg;
@@ -404,25 +410,20 @@
 
     PSA_ASSERT( status );
 
-    if( swap_set_functions )
+    if( set_lengths_method ==  DO_NOT_SET_LENGTHS )
+        PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) );
+    else if( set_lengths_method == SET_LENGTHS_BEFORE_NONCE )
     {
-        if( do_set_lengths )
-        {
-            PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len,
-                                              data_true_size ) );
-        }
-
+        PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len,
+                                          data_true_size ) );
         PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) );
     }
-    else
+    else if( set_lengths_method ==  SET_LENGTHS_AFTER_NONCE )
     {
         PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) );
 
-        if( do_set_lengths )
-        {
-            PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len,
-                                              data_true_size ) );
-        }
+        PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len,
+                                          data_true_size ) );
     }
 
     if( ad_part_len_arg != -1 )
@@ -3496,6 +3497,7 @@
 {
     size_t ad_part_len = 0;
     size_t data_part_len = 0;
+    setlengths_method set_lengths_method = DO_NOT_SET_LENGTHS;
 
     /* Ensure that either one part of the test or the other is done, i.e this
      * test does something. */
@@ -3509,16 +3511,23 @@
         {
             mbedtls_test_set_step( ad_part_len );
 
+            if( do_set_lengths )
+            {
+                if( ad_part_len & 0x01 )
+                    set_lengths_method = SET_LENGTHS_AFTER_NONCE;
+                else
+                    set_lengths_method = SET_LENGTHS_BEFORE_NONCE;
+            }
+
             /* Split ad into length(ad_part_len) parts. */
             if( !aead_multipart_internal_func( key_type_arg, key_data,
                                                alg_arg, nonce,
                                                additional_data,
                                                ad_part_len,
                                                input_data, -1,
-                                               do_set_lengths,
+                                               set_lengths_method,
                                                expected_output,
-                                               1, 1, 0,
-                                               ( ad_part_len & 0x01 ) ) )
+                                               1, 1, 0 ) )
                 break;
 
             /* length(0) part, length(ad_part_len) part, length(0) part... */
@@ -3529,10 +3538,9 @@
                                                additional_data,
                                                ad_part_len,
                                                input_data, -1,
-                                               do_set_lengths,
+                                               set_lengths_method,
                                                expected_output,
-                                               1, 1, 1,
-                                               ( ad_part_len & 0x01 ) ) )
+                                               1, 1, 1 ) )
                 break;
         }
     }
@@ -3546,14 +3554,21 @@
             /* Split data into length(data_part_len) parts. */
             mbedtls_test_set_step( 2000 + data_part_len );
 
+            if( do_set_lengths )
+            {
+                if( data_part_len & 0x01 )
+                    set_lengths_method = SET_LENGTHS_AFTER_NONCE;
+                else
+                    set_lengths_method = SET_LENGTHS_BEFORE_NONCE;
+            }
+
             if( !aead_multipart_internal_func( key_type_arg, key_data,
                                                alg_arg, nonce,
                                                additional_data, -1,
                                                input_data, data_part_len,
-                                               do_set_lengths,
+                                               set_lengths_method,
                                                expected_output,
-                                               1, 1, 0,
-                                               ( data_part_len & 0x01 ) ) )
+                                               1, 1, 0 ) )
                 break;
 
             /* length(0) part, length(data_part_len) part, length(0) part... */
@@ -3563,10 +3578,9 @@
                                                alg_arg, nonce,
                                                additional_data, -1,
                                                input_data, data_part_len,
-                                               do_set_lengths,
+                                               set_lengths_method,
                                                expected_output,
-                                               1, 1, 1,
-                                               ( data_part_len & 0x01 ) ) )
+                                               1, 1, 1 ) )
                 break;
         }
     }
@@ -3592,6 +3606,7 @@
 {
     size_t ad_part_len = 0;
     size_t data_part_len = 0;
+    setlengths_method set_lengths_method = DO_NOT_SET_LENGTHS;
 
     /* Ensure that either one part of the test or the other is done, i.e this
      * test does something. */
@@ -3606,16 +3621,23 @@
             /* Split ad into length(ad_part_len) parts. */
             mbedtls_test_set_step( ad_part_len );
 
+            if( do_set_lengths )
+            {
+                if( ad_part_len & 0x01 )
+                    set_lengths_method = SET_LENGTHS_AFTER_NONCE;
+                else
+                    set_lengths_method = SET_LENGTHS_BEFORE_NONCE;
+            }
+
             if( !aead_multipart_internal_func( key_type_arg, key_data,
                                                alg_arg, nonce,
                                                additional_data,
                                                ad_part_len,
                                                input_data, -1,
-                                               do_set_lengths,
+                                               set_lengths_method,
                                                expected_output,
                                                expect_valid_signature,
-                                               0, 0,
-                                               ( ad_part_len & 0x01 ) ) )
+                                               0, 0 ) )
                 break;
 
             /* length(0) part, length(ad_part_len) part, length(0) part... */
@@ -3626,11 +3648,10 @@
                                                additional_data,
                                                ad_part_len,
                                                input_data, -1,
-                                               do_set_lengths,
+                                               set_lengths_method,
                                                expected_output,
                                                expect_valid_signature,
-                                               0, 1,
-                                               ( ad_part_len & 0x01 ) ) )
+                                               0, 1 ) )
                 break;
         }
     }
@@ -3644,15 +3665,22 @@
             /* Split data into length(data_part_len) parts. */
             mbedtls_test_set_step( 2000 + data_part_len );
 
+            if( do_set_lengths )
+            {
+                if( data_part_len & 0x01 )
+                    set_lengths_method = SET_LENGTHS_AFTER_NONCE;
+                else
+                    set_lengths_method = SET_LENGTHS_BEFORE_NONCE;
+            }
+
             if( !aead_multipart_internal_func( key_type_arg, key_data,
                                                alg_arg, nonce,
                                                additional_data, -1,
                                                input_data, data_part_len,
-                                               do_set_lengths,
+                                               set_lengths_method,
                                                expected_output,
                                                expect_valid_signature,
-                                               0, 0,
-                                               ( data_part_len & 0x01 ) ) )
+                                               0, 0 ) )
                 break;
 
             /* length(0) part, length(data_part_len) part, length(0) part... */
@@ -3662,11 +3690,10 @@
                                                alg_arg, nonce,
                                                additional_data, -1,
                                                input_data, data_part_len,
-                                               do_set_lengths,
+                                               set_lengths_method,
                                                expected_output,
                                                expect_valid_signature,
-                                               0, 1,
-                                               ( data_part_len & 0x01 ) ) )
+                                               0, 1 ) )
                 break;
         }
     }