X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Ftest%2Ftest-condition.c;h=88147c8e0a29db3c075d58e8f6cd65644c16f0d5;hb=e0952d9d021234e79f3a70f33a9e5d201872a417;hp=349c6470c309d42b60739f75d0aca3ec14624079;hpb=134e56dcc53970a20a858283650bb92cd5da1d17;p=elogind.git diff --git a/src/test/test-condition.c b/src/test/test-condition.c index 349c6470c..88147c8e0 100644 --- a/src/test/test-condition.c +++ b/src/test/test-condition.c @@ -23,8 +23,13 @@ #include "log.h" #include "architecture.h" #include "sd-id128.h" +#include "selinux-util.h" +#include "audit.h" +#include "ima-util.h" +#include "apparmor-util.h" +#include "smack-util.h" -static void test_condition_test_path_exists(void) { +static void test_condition_test_path(void) { Condition *condition; condition = condition_new(CONDITION_PATH_EXISTS, "/bin/sh", false, false); @@ -82,6 +87,14 @@ static void test_condition_test_path_exists(void) { condition = condition_new(CONDITION_PATH_IS_MOUNT_POINT, "/bin", false, false); assert_se(!condition_test(condition)); condition_free(condition); + + condition = condition_new(CONDITION_PATH_IS_READ_WRITE, "/tmp", false, false); + assert_se(condition_test(condition)); + condition_free(condition); + + condition = condition_new(CONDITION_PATH_IS_SYMBOLIC_LINK, "/dev/stdout", false, false); + assert_se(condition_test(condition)); + condition_free(condition); } static void test_condition_test_ac_power(void) { @@ -179,16 +192,46 @@ static void test_condition_test_null(void) { condition_free(condition); } +static void test_condition_test_security(void) { + Condition *condition; + + condition = condition_new(CONDITION_SECURITY, "garbage oifdsjfoidsjoj", false, false); + assert_se(!condition_test(condition)); + condition_free(condition); + + condition = condition_new(CONDITION_SECURITY, "selinux", false, true); + assert_se(condition_test(condition) != mac_selinux_use()); + condition_free(condition); + + condition = condition_new(CONDITION_SECURITY, "ima", false, false); + assert_se(condition_test(condition) == use_ima()); + condition_free(condition); + + condition = condition_new(CONDITION_SECURITY, "apparmor", false, false); + assert_se(condition_test(condition) == mac_apparmor_use()); + condition_free(condition); + + condition = condition_new(CONDITION_SECURITY, "smack", false, false); + assert_se(condition_test(condition) == mac_smack_use()); + condition_free(condition); + + condition = condition_new(CONDITION_SECURITY, "audit", false, false); + assert_se(condition_test(condition) == use_audit()); + condition_free(condition); +} + + int main(int argc, char *argv[]) { log_parse_environment(); log_open(); - test_condition_test_path_exists(); + test_condition_test_path(); test_condition_test_ac_power(); test_condition_test_host(); test_condition_test_architecture(); test_condition_test_kernel_command_line(); test_condition_test_null(); + test_condition_test_security(); return 0; }