From: Martin Pitt Date: Thu, 2 Mar 2017 22:42:01 +0000 (+0100) Subject: test: skip instead of fail if crypto kmods are not available X-Git-Tag: chiark/234.4-1+devuan1.1+iwj1~180 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=efe1fc6ff9c90b61bcc0cf341ff327c8e465ec1b 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 --- diff --git a/src/test/test-hash.c b/src/test/test-hash.c index 1972b94cf..02d1cfaee 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 e8c4c3e55..e5f45206f 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);