Commit e2186a36 authored by Daniel P. Berrangé's avatar Daniel P. Berrangé
Browse files

tests: allow filtering crypto cipher benchmark tests



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

Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: default avatarStefano Garzarella <sgarzare@redhat.com>
Signed-off-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
parent 187f3551
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -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)                          \
    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);         \