The test dummy vector data is incorrect for AEAD decryption, so we should
only run when passed a valid test vector file. This patch also moves the
check for correct test vector data to after the vector has been
populated by test vector file or dummy data.

Signed-off-by: Emma Finn <emma.f...@intel.com>
---
 app/test-crypto-perf/cperf_options_parsing.c | 19 +++++++++++++++++--
 app/test-crypto-perf/main.c                  | 12 ++++++------
 2 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/app/test-crypto-perf/cperf_options_parsing.c 
b/app/test-crypto-perf/cperf_options_parsing.c
index 0e0dc4fd06..12623e4cfe 100644
--- a/app/test-crypto-perf/cperf_options_parsing.c
+++ b/app/test-crypto-perf/cperf_options_parsing.c
@@ -1482,11 +1482,26 @@ cperf_options_check(struct cperf_options *options)
                }
        }
 
-       if (options->test == CPERF_TEST_TYPE_THROUGHPUT &&
+       if ((options->test == CPERF_TEST_TYPE_THROUGHPUT ||
+           options->test == CPERF_TEST_TYPE_LATENCY) &&
            (options->aead_op == RTE_CRYPTO_AEAD_OP_DECRYPT ||
             options->auth_op == RTE_CRYPTO_AUTH_OP_VERIFY) &&
            !options->out_of_place) {
-               RTE_LOG(ERR, USER1, "Only out-of-place is allowed in throughput 
decryption.\n");
+               RTE_LOG(ERR, USER1, "Only out-of-place is allowed in throughput 
and"
+                           " latency decryption.\n");
+               return -EINVAL;
+       }
+
+       if ((options->test == CPERF_TEST_TYPE_THROUGHPUT ||
+                options->test == CPERF_TEST_TYPE_LATENCY) &&
+           (options->aead_op == RTE_CRYPTO_AEAD_OP_DECRYPT ||
+            options->auth_op == RTE_CRYPTO_AUTH_OP_VERIFY) &&
+                options->test_name == NULL &&
+                options->test_file == NULL) {
+               RTE_LOG(ERR, USER1, "Define path to the file with test"
+                               " vectors.\n");
+               RTE_LOG(ERR, USER1, "Define test name to get the correct digest"
+                               " from the test vectors.\n");
                return -EINVAL;
        }
 
diff --git a/app/test-crypto-perf/main.c b/app/test-crypto-perf/main.c
index 2e38c0011d..ef3c71b492 100644
--- a/app/test-crypto-perf/main.c
+++ b/app/test-crypto-perf/main.c
@@ -731,12 +731,6 @@ main(int argc, char **argv)
                                        " specified file\n");
                        goto err;
                }
-
-               if (cperf_check_test_vector(&opts, t_vec)) {
-                       RTE_LOG(ERR, USER1, "Incomplete necessary test vectors"
-                                       "\n");
-                       goto err;
-               }
        } else {
                t_vec = cperf_test_vector_get_dummy(&opts);
                if (t_vec == NULL) {
@@ -746,6 +740,12 @@ main(int argc, char **argv)
                        goto err;
                }
        }
+       /* Add check for test vector data after dummy and file option. */
+       if (cperf_check_test_vector(&opts, t_vec)) {
+               RTE_LOG(ERR, USER1, "Incomplete necessary test vectors"
+                               "\n");
+               goto err;
+       }
 
        ret = cperf_get_op_functions(&opts, &op_fns);
        if (ret) {
-- 
2.34.1

Reply via email to