summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorLucas Segarra Fernandez <lucas.segarra.fernandez@intel.com>2022-08-12 16:16:02 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2022-08-19 18:39:37 +0800
commit5a4c2936669736f2e915fe6135a668e9e079de34 (patch)
treed8cb19519abca08bc592b7c248b25b884892d78c /crypto
parentbc9d6dac098bd4f6671970e0ba6c247e3a8c4029 (diff)
downloadlinux-5a4c2936669736f2e915fe6135a668e9e079de34.tar.bz2
crypto: testmgr - extend acomp tests for NULL destination buffer
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>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/testmgr.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index 5349ffee6bbd..bf905c1e89ed 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -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);
}