chiark / gitweb /
journal: push type_to_context conversion down to journal_file_move_to()
[elogind.git] / src / test / test-cap-list.c
index dfa9a063c2069199574cecbf63e5b85209c9febc..238f876f2a1fb5b7ca870abac5ac83c80fd3e77d 100644 (file)
@@ -39,9 +39,30 @@ int main(int argc, char *argv[]) {
 
         assert_se(capability_from_name("asdfbsd") == -EINVAL);
         assert_se(capability_from_name("CAP_AUDIT_READ") == CAP_AUDIT_READ);
+        assert_se(capability_from_name("cap_audit_read") == CAP_AUDIT_READ);
+        assert_se(capability_from_name("cAp_aUdIt_rEAd") == CAP_AUDIT_READ);
         assert_se(capability_from_name("0") == 0);
         assert_se(capability_from_name("15") == 15);
         assert_se(capability_from_name("-1") == -EINVAL);
 
+        for (i = 0; i <= (int) cap_last_cap(); i++) {
+                _cleanup_cap_free_charp_ char *a = NULL;
+                const char *b;
+                unsigned u;
+
+                assert_se(a = cap_to_name(i));
+
+                /* quite the loop as soon as libcap only returns
+                 * numeric ids, formatted as string */
+                if (safe_atou(a, &u) >= 0)
+                        break;
+
+                assert_se(b = capability_to_name(i));
+
+                printf("%s vs. %s\n", a, b);
+
+                assert_se(streq(a, b));
+        }
+
         return 0;
 }