]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: cover missed stuff from securebits-util.h
authorFrantisek Sumsal <frantisek@sumsal.cz>
Tue, 18 Apr 2023 10:10:36 +0000 (12:10 +0200)
committerFrantisek Sumsal <frantisek@sumsal.cz>
Tue, 25 Apr 2023 16:34:49 +0000 (18:34 +0200)
src/test/test-secure-bits.c

index d44bef6a093c6ed53a3ca9c8903af2257e259c1f..27e6a20e09d40652a0b622bad72a4038c657e592 100644 (file)
@@ -28,6 +28,7 @@ TEST(secure_bits_basic) {
 
                 r = secure_bits_from_string(*bit);
                 assert_se(r > 0);
+                assert_se(secure_bits_is_valid(r));
                 assert_se(secure_bits_to_string_alloc(r, &s) >= 0);
                 printf("%s = 0x%x = %s\n", *bit, (unsigned)r, s);
                 assert_se(streq(*bit, s));
@@ -38,6 +39,7 @@ TEST(secure_bits_basic) {
         assert_se(joined);
         r = secure_bits_from_string(joined);
         assert_se(r > 0);
+        assert_se(secure_bits_is_valid(r));
         assert_se(secure_bits_to_string_alloc(r, &str) >= 0);
         printf("%s = 0x%x = %s\n", joined, (unsigned)r, str);
         assert_se(streq(joined, str));
@@ -54,6 +56,16 @@ TEST(secure_bits_basic) {
         /* Empty secure bits */
         assert_se(secure_bits_to_string_alloc(0, &str) >= 0);
         assert_se(isempty(str));
+
+        str = mfree(str);
+
+        /* Bits to string with check */
+        assert_se(secure_bits_to_string_alloc_with_check(INT_MAX, &str) == -EINVAL);
+        assert_se(str == NULL);
+        assert_se(secure_bits_to_string_alloc_with_check(
+                                (1 << SECURE_KEEP_CAPS) | (1 << SECURE_KEEP_CAPS_LOCKED),
+                                &str) >= 0);
+        assert_se(streq(str, "keep-caps keep-caps-locked"));
 }
 
 TEST(secure_bits_mix) {
@@ -75,6 +87,7 @@ TEST(secure_bits_mix) {
 
                 r = secure_bits_from_string(s->input);
                 assert_se(r > 0);
+                assert_se(secure_bits_is_valid(r));
                 assert_se(secure_bits_to_string_alloc(r, &str) >= 0);
                 printf("%s = 0x%x = %s\n", s->input, (unsigned)r, str);
                 assert_se(streq(s->expected, str));