summaryrefslogtreecommitdiff
path: root/src/test/test-cap-list.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2023-02-20 11:46:08 +0100
committerLennart Poettering <lennart@poettering.net>2023-02-22 23:45:40 +0100
commit8cf4674d8673f692e548361dc4352e02244862ed (patch)
tree4b19b2b6e65fff2231613460193a7b26625c4bbe /src/test/test-cap-list.c
parenta90d9ee1620ce65ecf07224f2d2d16f9f5c48ca9 (diff)
downloadsystemd-8cf4674d8673f692e548361dc4352e02244862ed.tar.gz
cap-list: add capability_set_to_strv()
Diffstat (limited to 'src/test/test-cap-list.c')
-rw-r--r--src/test/test-cap-list.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/test/test-cap-list.c b/src/test/test-cap-list.c
index 8df425bdd2..42503d294c 100644
--- a/src/test/test-cap-list.c
+++ b/src/test/test-cap-list.c
@@ -8,6 +8,7 @@
#include "capability-util.h"
#include "parse-util.h"
#include "string-util.h"
+#include "strv.h"
#include "tests.h"
/* verify the capability parser */
@@ -99,6 +100,23 @@ TEST(capability_set_from_string) {
assert_se(c == (UINT64_C(1) << 4) - 1);
}
+static void test_capability_set_to_strv_one(uint64_t m, char **l) {
+ _cleanup_strv_free_ char **b = NULL;
+
+ assert_se(capability_set_to_strv(m, &b) >= 0);
+ assert_se(strv_equal(l, b));
+}
+
+TEST(capability_set_to_strv) {
+ test_capability_set_to_strv_one(0, STRV_MAKE(NULL));
+ test_capability_set_to_strv_one(UINT64_C(1) << CAP_MKNOD, STRV_MAKE("cap_mknod"));
+ test_capability_set_to_strv_one((UINT64_C(1) << CAP_MKNOD) |
+ (UINT64_C(1) << CAP_NET_BIND_SERVICE), STRV_MAKE("cap_net_bind_service", "cap_mknod"));
+ test_capability_set_to_strv_one((UINT64_C(1) << CAP_MKNOD) |
+ (UINT64_C(1) << CAP_NET_BIND_SERVICE) |
+ (UINT64_C(1) << CAP_IPC_OWNER), STRV_MAKE("cap_net_bind_service", "cap_ipc_owner", "cap_mknod"));
+}
+
static void test_capability_set_to_string_invalid(uint64_t invalid_cap_set) {
uint64_t c;