[PATCH v2] test: Fix test-crypto-secret when compiling without keyring support

Juan Quintela posted 1 patch 1 year ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230411095156.6500-1-quintela@redhat.com
Maintainers: "Daniel P. Berrangé" <berrange@redhat.com>
There is a newer version of this series
tests/unit/test-crypto-secret.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
[PATCH v2] test: Fix test-crypto-secret when compiling without keyring support
Posted by Juan Quintela 1 year ago
Linux keyring support is protected by CONFIG_KEYUTILS.
We also need CONFIG_SECRET_KEYRING.

Signed-off-by: Juan Quintela <quintela@redhat.com>

---

- Previous version of this patch changed the meson build rules.
  Daniel told me that the proper fix was to change the #ifdef test.

- Change rule again.  We need both defines.
- Now it passes the test with and without CONFIG_SECRET_KEYRING defined

---
 tests/unit/test-crypto-secret.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/tests/unit/test-crypto-secret.c b/tests/unit/test-crypto-secret.c
index 34a4aecc12..d31d97f36a 100644
--- a/tests/unit/test-crypto-secret.c
+++ b/tests/unit/test-crypto-secret.c
@@ -24,7 +24,7 @@
 #include "crypto/secret.h"
 #include "qapi/error.h"
 #include "qemu/module.h"
-#ifdef CONFIG_KEYUTILS
+#if defined(CONFIG_KEYUTILS) && defined(CONFIG_SECRET_KEYRING)
 #include "crypto/secret_keyring.h"
 #include <keyutils.h>
 #endif
@@ -128,7 +128,7 @@ static void test_secret_indirect_emptyfile(void)
     g_free(fname);
 }
 
-#ifdef CONFIG_KEYUTILS
+#if defined(CONFIG_KEYUTILS) && defined(CONFIG_SECRET_KEYRING)
 
 #define DESCRIPTION "qemu_test_secret"
 #define PAYLOAD "Test Payload"
@@ -268,7 +268,7 @@ static void test_secret_keyring_bad_key_access_right(void)
     keyctl_unlink(key, KEY_SPEC_PROCESS_KEYRING);
 }
 
-#endif /* CONFIG_KEYUTILS */
+#endif /* CONFIG_KEYUTILS && CONFIG_SECRET_KEYRING */
 
 static void test_secret_noconv_base64_good(void)
 {
@@ -571,7 +571,7 @@ int main(int argc, char **argv)
     g_test_add_func("/crypto/secret/indirect/emptyfile",
                     test_secret_indirect_emptyfile);
 
-#ifdef CONFIG_KEYUTILS
+#if defined(CONFIG_KEYUTILS) && defined(CONFIG_SECRET_KEYRING)
     g_test_add_func("/crypto/secret/keyring/good",
                     test_secret_keyring_good);
     g_test_add_func("/crypto/secret/keyring/revoked_key",
@@ -582,7 +582,7 @@ int main(int argc, char **argv)
                     test_secret_keyring_bad_serial_key);
     g_test_add_func("/crypto/secret/keyring/bad_key_access_right",
                     test_secret_keyring_bad_key_access_right);
-#endif /* CONFIG_KEYUTILS */
+#endif /* CONFIG_SECRET_KEYRING */
 
     g_test_add_func("/crypto/secret/noconv/base64/good",
                     test_secret_noconv_base64_good);
-- 
2.39.2
Re: [PATCH v2] test: Fix test-crypto-secret when compiling without keyring support
Posted by Thomas Huth 1 year ago
On 11/04/2023 11.51, Juan Quintela wrote:
> Linux keyring support is protected by CONFIG_KEYUTILS.
> We also need CONFIG_SECRET_KEYRING.
> 
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> 
> ---
> 
> - Previous version of this patch changed the meson build rules.
>    Daniel told me that the proper fix was to change the #ifdef test.
> 
> - Change rule again.  We need both defines.
> - Now it passes the test with and without CONFIG_SECRET_KEYRING defined
> 
> ---
>   tests/unit/test-crypto-secret.c | 10 +++++-----
>   1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/tests/unit/test-crypto-secret.c b/tests/unit/test-crypto-secret.c
> index 34a4aecc12..d31d97f36a 100644
> --- a/tests/unit/test-crypto-secret.c
> +++ b/tests/unit/test-crypto-secret.c
> @@ -24,7 +24,7 @@
>   #include "crypto/secret.h"
>   #include "qapi/error.h"
>   #include "qemu/module.h"
> -#ifdef CONFIG_KEYUTILS
> +#if defined(CONFIG_KEYUTILS) && defined(CONFIG_SECRET_KEYRING)
>   #include "crypto/secret_keyring.h"
>   #include <keyutils.h>
>   #endif
> @@ -128,7 +128,7 @@ static void test_secret_indirect_emptyfile(void)
>       g_free(fname);
>   }
>   
> -#ifdef CONFIG_KEYUTILS
> +#if defined(CONFIG_KEYUTILS) && defined(CONFIG_SECRET_KEYRING)
>   
>   #define DESCRIPTION "qemu_test_secret"
>   #define PAYLOAD "Test Payload"
> @@ -268,7 +268,7 @@ static void test_secret_keyring_bad_key_access_right(void)
>       keyctl_unlink(key, KEY_SPEC_PROCESS_KEYRING);
>   }
>   
> -#endif /* CONFIG_KEYUTILS */
> +#endif /* CONFIG_KEYUTILS && CONFIG_SECRET_KEYRING */
>   
>   static void test_secret_noconv_base64_good(void)
>   {
> @@ -571,7 +571,7 @@ int main(int argc, char **argv)
>       g_test_add_func("/crypto/secret/indirect/emptyfile",
>                       test_secret_indirect_emptyfile);
>   
> -#ifdef CONFIG_KEYUTILS
> +#if defined(CONFIG_KEYUTILS) && defined(CONFIG_SECRET_KEYRING)
>       g_test_add_func("/crypto/secret/keyring/good",
>                       test_secret_keyring_good);
>       g_test_add_func("/crypto/secret/keyring/revoked_key",
> @@ -582,7 +582,7 @@ int main(int argc, char **argv)
>                       test_secret_keyring_bad_serial_key);
>       g_test_add_func("/crypto/secret/keyring/bad_key_access_right",
>                       test_secret_keyring_bad_key_access_right);
> -#endif /* CONFIG_KEYUTILS */
> +#endif /* CONFIG_SECRET_KEYRING */

Nit: The comment after the "#endif" should mention both switches now, like 
the one earlier in the patch.

  Thomas
Re: [PATCH v2] test: Fix test-crypto-secret when compiling without keyring support
Posted by Juan Quintela 1 year ago
Thomas Huth <thuth@redhat.com> wrote:
>> -#endif /* CONFIG_KEYUTILS */
>> +#endif /* CONFIG_SECRET_KEYRING */
>
> Nit: The comment after the "#endif" should mention both switches now,
> like the one earlier in the patch.

You are right.

Sent next version with it included.

Later, Juan.