]> jfr.im git - solanum.git/blobdiff - tests/privilege1.c
privilegeset_add_privs: append rather than replace
[solanum.git] / tests / privilege1.c
index 38209673941c76b85a3b55d77fe9e646ace16464..a04cb6bb00a4980f15ac628690c686f402e6e365 100644 (file)
@@ -28,6 +28,8 @@
 
 #define MSG "%s:%d (%s)", __FILE__, __LINE__, __FUNCTION__
 
+void privilegeset_add_privs(struct PrivilegeSet *dst, const char *privs);
+
 struct Client me;
 
 static void cleanup(void)
@@ -48,6 +50,21 @@ static void test_privset_membership(void)
        cleanup();
 }
 
+static void test_privset_add(void)
+{
+       struct PrivilegeSet *set = privilegeset_set_new("test", "foo bar", 0);
+       privilegeset_add_privs(set, "baz qux");
+
+       is_bool(true, privilegeset_in_set(set, "foo"), MSG);
+       is_bool(true, privilegeset_in_set(set, "bar"), MSG);
+       is_bool(true, privilegeset_in_set(set, "baz"), MSG);
+       is_bool(true, privilegeset_in_set(set, "qux"), MSG);
+
+       is_bool(false, privilegeset_in_set(set, "frob"), MSG);
+
+       cleanup();
+}
+
 static void test_privset_extend(void)
 {
        struct PrivilegeSet *parent = privilegeset_set_new("parent", "foo bar", 0);
@@ -147,6 +164,7 @@ int main(int argc, char *argv[])
        plan_lazy();
 
        test_privset_membership();
+       test_privset_add();
        test_privset_extend();
        test_privset_persistence();
        test_privset_diff();