crypto: testmgr - extend acomp tests for NULL destination buffer
authorLucas Segarra Fernandez <lucas.segarra.fernandez@intel.com>
Fri, 12 Aug 2022 14:16:02 +0000 (16:16 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 19 Aug 2022 10:39:37 +0000 (18:39 +0800)
Acomp API supports NULL destination buffer for compression
and decompression requests. In such cases allocation is
performed by API.

Add test cases for crypto_acomp_compress() and crypto_acomp_decompress()
with dst buffer allocated by API.

Tests will only run if CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y.

Signed-off-by: Lucas Segarra Fernandez <lucas.segarra.fernandez@intel.com>
Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/testmgr.c

index 5349ffe..bf905c1 100644 (file)
@@ -3417,6 +3417,21 @@ static int test_acomp(struct crypto_acomp *tfm,
                        goto out;
                }
 
+#ifdef CONFIG_CRYPTO_MANAGER_EXTRA_TESTS
+               crypto_init_wait(&wait);
+               sg_init_one(&src, input_vec, ilen);
+               acomp_request_set_params(req, &src, NULL, ilen, 0);
+
+               ret = crypto_wait_req(crypto_acomp_compress(req), &wait);
+               if (ret) {
+                       pr_err("alg: acomp: compression failed on NULL dst buffer test %d for %s: ret=%d\n",
+                              i + 1, algo, -ret);
+                       kfree(input_vec);
+                       acomp_request_free(req);
+                       goto out;
+               }
+#endif
+
                kfree(input_vec);
                acomp_request_free(req);
        }
@@ -3478,6 +3493,20 @@ static int test_acomp(struct crypto_acomp *tfm,
                        goto out;
                }
 
+#ifdef CONFIG_CRYPTO_MANAGER_EXTRA_TESTS
+               crypto_init_wait(&wait);
+               acomp_request_set_params(req, &src, NULL, ilen, 0);
+
+               ret = crypto_wait_req(crypto_acomp_decompress(req), &wait);
+               if (ret) {
+                       pr_err("alg: acomp: decompression failed on NULL dst buffer test %d for %s: ret=%d\n",
+                              i + 1, algo, -ret);
+                       kfree(input_vec);
+                       acomp_request_free(req);
+                       goto out;
+               }
+#endif
+
                kfree(input_vec);
                acomp_request_free(req);
        }