diff mbox series

[1/4] tests: allow filtering crypto cipher benchmark tests

Message ID 20191017145654.11371-2-berrange@redhat.com (mailing list archive)
State New, archived
Headers show
Series crypto: improve performance of ciphers in XTS mode | expand

Commit Message

Daniel P. Berrangé Oct. 17, 2019, 2:56 p.m. UTC
Add support for specifying a cipher mode and chunk size as argv to
filter which combinations are benchmarked. For example to only
benchmark XTS mode with 512 byte chunks:

  ./tests/benchmark-crypto-cipher xts 512

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 tests/benchmark-crypto-cipher.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

Comments

Philippe Mathieu-Daudé Oct. 25, 2019, 1:24 p.m. UTC | #1
On 10/17/19 4:56 PM, Daniel P. Berrangé wrote:
> Add support for specifying a cipher mode and chunk size as argv to
> filter which combinations are benchmarked. For example to only
> benchmark XTS mode with 512 byte chunks:
> 
>    ./tests/benchmark-crypto-cipher xts 512
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>   tests/benchmark-crypto-cipher.c | 13 ++++++++++++-
>   1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/benchmark-crypto-cipher.c b/tests/benchmark-crypto-cipher.c
> index 67fdf8c31d..3ca31a2779 100644
> --- a/tests/benchmark-crypto-cipher.c
> +++ b/tests/benchmark-crypto-cipher.c
> @@ -161,15 +161,26 @@ static void test_cipher_speed_xts_aes_256(const void *opaque)
>   
>   int main(int argc, char **argv)
>   {
> +    char *alg = NULL;
> +    char *size = NULL;
>       g_test_init(&argc, &argv, NULL);
>       g_assert(qcrypto_init(NULL) == 0);
>   
>   #define ADD_TEST(mode, cipher, keysize, chunk)                          \
> -    g_test_add_data_func(                                               \
> +    if ((!alg || g_str_equal(alg, #mode)) &&                            \
> +        (!size || g_str_equal(size, #chunk)))                           \
> +        g_test_add_data_func(                                           \
>           "/crypto/cipher/" #mode "-" #cipher "-" #keysize "/chunk-" #chunk, \
>           (void *)chunk,                                                  \
>           test_cipher_speed_ ## mode ## _ ## cipher ## _ ## keysize)
>   
> +    if (argc >= 2) {
> +        alg = argv[1];
> +    }
> +    if (argc >= 3) {
> +        size = argv[2];
> +    }
> +
>   #define ADD_TESTS(chunk)                        \
>       do {                                        \
>           ADD_TEST(ecb, aes, 128, chunk);         \
> 

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Stefano Garzarella Oct. 25, 2019, 1:45 p.m. UTC | #2
On Thu, Oct 17, 2019 at 03:56:51PM +0100, Daniel P. Berrangé wrote:
> Add support for specifying a cipher mode and chunk size as argv to
> filter which combinations are benchmarked. For example to only
> benchmark XTS mode with 512 byte chunks:
> 
>   ./tests/benchmark-crypto-cipher xts 512
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>  tests/benchmark-crypto-cipher.c | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)

Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>

> 
> diff --git a/tests/benchmark-crypto-cipher.c b/tests/benchmark-crypto-cipher.c
> index 67fdf8c31d..3ca31a2779 100644
> --- a/tests/benchmark-crypto-cipher.c
> +++ b/tests/benchmark-crypto-cipher.c
> @@ -161,15 +161,26 @@ static void test_cipher_speed_xts_aes_256(const void *opaque)
>  
>  int main(int argc, char **argv)
>  {
> +    char *alg = NULL;
> +    char *size = NULL;
>      g_test_init(&argc, &argv, NULL);
>      g_assert(qcrypto_init(NULL) == 0);
>  
>  #define ADD_TEST(mode, cipher, keysize, chunk)                          \
> -    g_test_add_data_func(                                               \
> +    if ((!alg || g_str_equal(alg, #mode)) &&                            \
> +        (!size || g_str_equal(size, #chunk)))                           \
> +        g_test_add_data_func(                                           \
>          "/crypto/cipher/" #mode "-" #cipher "-" #keysize "/chunk-" #chunk, \
>          (void *)chunk,                                                  \
>          test_cipher_speed_ ## mode ## _ ## cipher ## _ ## keysize)
>  
> +    if (argc >= 2) {
> +        alg = argv[1];
> +    }
> +    if (argc >= 3) {
> +        size = argv[2];
> +    }
> +
>  #define ADD_TESTS(chunk)                        \
>      do {                                        \
>          ADD_TEST(ecb, aes, 128, chunk);         \
> -- 
> 2.21.0
> 
> 

--
diff mbox series

Patch

diff --git a/tests/benchmark-crypto-cipher.c b/tests/benchmark-crypto-cipher.c
index 67fdf8c31d..3ca31a2779 100644
--- a/tests/benchmark-crypto-cipher.c
+++ b/tests/benchmark-crypto-cipher.c
@@ -161,15 +161,26 @@  static void test_cipher_speed_xts_aes_256(const void *opaque)
 
 int main(int argc, char **argv)
 {
+    char *alg = NULL;
+    char *size = NULL;
     g_test_init(&argc, &argv, NULL);
     g_assert(qcrypto_init(NULL) == 0);
 
 #define ADD_TEST(mode, cipher, keysize, chunk)                          \
-    g_test_add_data_func(                                               \
+    if ((!alg || g_str_equal(alg, #mode)) &&                            \
+        (!size || g_str_equal(size, #chunk)))                           \
+        g_test_add_data_func(                                           \
         "/crypto/cipher/" #mode "-" #cipher "-" #keysize "/chunk-" #chunk, \
         (void *)chunk,                                                  \
         test_cipher_speed_ ## mode ## _ ## cipher ## _ ## keysize)
 
+    if (argc >= 2) {
+        alg = argv[1];
+    }
+    if (argc >= 3) {
+        size = argv[2];
+    }
+
 #define ADD_TESTS(chunk)                        \
     do {                                        \
         ADD_TEST(ecb, aes, 128, chunk);         \