From 2e914f34eb9a4a56e3eb70dc0b4345588c9016e7 Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Thu, 2 Mar 2017 23:42:01 +0100 Subject: test: skip instead of fail if crypto kmods are not available Package build machines may have module loading disabled, thus AF_ALG sockets are not available. Skip the tests that cover those (khash and id128) instead of failing them in this case. Fixes #5524 --- src/test/test-hash.c | 10 +++++++++- src/test/test-id128.c | 15 ++++++++++----- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/test/test-hash.c b/src/test/test-hash.c index 1972b94cfe..02d1cfaee3 100644 --- a/src/test/test-hash.c +++ b/src/test/test-hash.c @@ -17,6 +17,8 @@ along with systemd; If not, see . ***/ +#include + #include "alloc-util.h" #include "log.h" #include "string-util.h" @@ -25,12 +27,18 @@ int main(int argc, char *argv[]) { _cleanup_(khash_unrefp) khash *h = NULL, *copy = NULL; _cleanup_free_ char *s = NULL; + int r; log_set_max_level(LOG_DEBUG); assert_se(khash_new(&h, NULL) == -EINVAL); assert_se(khash_new(&h, "") == -EINVAL); - assert_se(khash_new(&h, "foobar") == -EOPNOTSUPP); + r = khash_new(&h, "foobar"); + if (r == -EAFNOSUPPORT) { + puts("khash not supported on this kernel, skipping"); + return EXIT_TEST_SKIP; + } + assert_se(r == -EOPNOTSUPP); assert_se(khash_new(&h, "sha256") >= 0); assert_se(khash_get_size(h) == 32); diff --git a/src/test/test-id128.c b/src/test/test-id128.c index e8c4c3e550..e5f45206f1 100644 --- a/src/test/test-id128.c +++ b/src/test/test-id128.c @@ -154,11 +154,16 @@ int main(int argc, char *argv[]) { assert_se(id128_read_fd(fd, ID128_UUID, &id2) >= 0); assert_se(sd_id128_equal(id, id2)); - assert_se(sd_id128_get_machine_app_specific(SD_ID128_MAKE(f0,3d,aa,eb,1c,33,4b,43,a7,32,17,29,44,bf,77,2e), &id) >= 0); - assert_se(sd_id128_get_machine_app_specific(SD_ID128_MAKE(f0,3d,aa,eb,1c,33,4b,43,a7,32,17,29,44,bf,77,2e), &id2) >= 0); - assert_se(sd_id128_equal(id, id2)); - assert_se(sd_id128_get_machine_app_specific(SD_ID128_MAKE(51,df,0b,4b,c3,b0,4c,97,80,e2,99,b9,8c,a3,73,b8), &id2) >= 0); - assert_se(!sd_id128_equal(id, id2)); + r = sd_id128_get_machine_app_specific(SD_ID128_MAKE(f0,3d,aa,eb,1c,33,4b,43,a7,32,17,29,44,bf,77,2e), &id); + if (r == -EAFNOSUPPORT) { + log_info("khash not supported on this kernel, skipping sd_id128_get_machine_app_specific() checks"); + } else { + assert_se(r >= 0); + assert_se(sd_id128_get_machine_app_specific(SD_ID128_MAKE(f0,3d,aa,eb,1c,33,4b,43,a7,32,17,29,44,bf,77,2e), &id2) >= 0); + assert_se(sd_id128_equal(id, id2)); + assert_se(sd_id128_get_machine_app_specific(SD_ID128_MAKE(51,df,0b,4b,c3,b0,4c,97,80,e2,99,b9,8c,a3,73,b8), &id2) >= 0); + assert_se(!sd_id128_equal(id, id2)); + } /* Query the invocation ID */ r = sd_id128_get_invocation(&id); -- cgit v1.2.3