examples/fips_validation: support self-test only
[dpdk.git] / examples / fips_validation / main.c
index efd32a8..08a1b9c 100644 (file)
@@ -315,8 +315,21 @@ cryptodev_fips_validate_parse_args(int argc, char **argv)
                }
        }
 
-       if (env.req_path == NULL || env.rsp_path == NULL ||
-                       env.dev_id == UINT32_MAX) {
+       if (env.dev_id == UINT32_MAX) {
+               RTE_LOG(ERR, USER1, "No device specified\n");
+               cryptodev_fips_validate_usage(prgname);
+               return -EINVAL;
+       }
+
+       if ((env.req_path == NULL && env.rsp_path != NULL) ||
+                       (env.req_path != NULL && env.rsp_path == NULL)) {
+               RTE_LOG(ERR, USER1, "Missing req path or rsp path\n");
+               cryptodev_fips_validate_usage(prgname);
+               return -EINVAL;
+       }
+
+       if (env.req_path == NULL && env.self_test == 0) {
+               RTE_LOG(ERR, USER1, "--self-test must be set if req path is missing\n");
                cryptodev_fips_validate_usage(prgname);
                return -EINVAL;
        }
@@ -348,6 +361,11 @@ main(int argc, char *argv[])
                return -1;
        }
 
+       if (env.req_path == NULL || env.rsp_path == NULL) {
+               printf("No request, exit.\n");
+               goto exit;
+       }
+
        if (!env.is_path_folder) {
                printf("Processing file %s... ", env.req_path);