From: Sven Eden Date: Mon, 11 Dec 2017 16:06:40 +0000 (+0100) Subject: Cleaned up orphaned files X-Git-Tag: v235.1~26 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=3c066b57bc3ed700448a85767f87d18bbe64db05;p=elogind.git Cleaned up orphaned files --- diff --git a/src/shared/tests.c b/src/shared/tests.c deleted file mode 100644 index f300bbc66..000000000 --- a/src/shared/tests.c +++ /dev/null @@ -1,73 +0,0 @@ -/*** - This file is part of systemd. - - Copyright 2016 Lennart Poettering - - systemd is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - systemd is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with systemd; If not, see . -***/ - -#include -#include -#include -#include -#include - -#include "tests.h" -#include "path-util.h" - -char* setup_fake_runtime_dir(void) { - char t[] = "/tmp/fake-xdg-runtime-XXXXXX", *p; - - assert_se(mkdtemp(t)); - assert_se(setenv("XDG_RUNTIME_DIR", t, 1) >= 0); - assert_se(p = strdup(t)); - - return p; -} - -const char* get_testdata_dir(const char *suffix) { - const char *env; - /* convenience: caller does not need to free result */ - static char testdir[PATH_MAX]; - - /* if the env var is set, use that */ - env = getenv("SYSTEMD_TEST_DATA"); - testdir[sizeof(testdir) - 1] = '\0'; - if (env) { - if (access(env, F_OK) < 0) { - fputs("ERROR: $SYSTEMD_TEST_DATA directory does not exist\n", stderr); - exit(1); - } - strncpy(testdir, env, sizeof(testdir) - 1); - } else { - _cleanup_free_ char *exedir = NULL; - assert_se(readlink_and_make_absolute("/proc/self/exe", &exedir) >= 0); - - /* Check if we're running from the builddir. If so, use the compiled in path. */ - if (path_startswith(exedir, ABS_BUILD_DIR)) - assert_se(snprintf(testdir, sizeof(testdir), "%s/test", ABS_SRC_DIR) > 0); - else - /* Try relative path, according to the install-test layout */ - assert_se(snprintf(testdir, sizeof(testdir), "%s/testdata", dirname(exedir)) > 0); - - /* test this without the suffix, as it may contain a glob */ - if (access(testdir, F_OK) < 0) { - fputs("ERROR: Cannot find testdata directory, set $SYSTEMD_TEST_DATA\n", stderr); - exit(1); - } - } - - strncpy(testdir + strlen(testdir), suffix, sizeof(testdir) - strlen(testdir) - 1); - return testdir; -} diff --git a/src/test/test-bpf.c b/src/test/test-bpf.c deleted file mode 100644 index 819a2e198..000000000 --- a/src/test/test-bpf.c +++ /dev/null @@ -1,162 +0,0 @@ -/*** - This file is part of elogind. - - Copyright 2016 Daniel Mack - - elogind is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - elogind is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with elogind; If not, see . -***/ - -#include -#include -#include - -#include "bpf-firewall.h" -#include "bpf-program.h" -#include "load-fragment.h" -#include "manager.h" -#include "rm-rf.h" -#include "service.h" -#include "test-helper.h" -#include "tests.h" -#include "unit.h" - -int main(int argc, char *argv[]) { - struct bpf_insn exit_insn[] = { - BPF_MOV64_IMM(BPF_REG_0, 1), - BPF_EXIT_INSN() - }; - - _cleanup_(rm_rf_physical_and_freep) char *runtime_dir = NULL; - CGroupContext *cc = NULL; - _cleanup_(bpf_program_unrefp) BPFProgram *p = NULL; - Manager *m = NULL; - Unit *u; - char log_buf[65535]; - int r; - - log_set_max_level(LOG_DEBUG); - log_parse_environment(); - log_open(); - - enter_cgroup_subroot(); - assert_se(set_unit_path(get_testdata_dir("")) >= 0); - assert_se(runtime_dir = setup_fake_runtime_dir()); - - r = bpf_program_new(BPF_PROG_TYPE_CGROUP_SKB, &p); - assert(r == 0); - - r = bpf_program_add_instructions(p, exit_insn, ELEMENTSOF(exit_insn)); - assert(r == 0); - - if (getuid() != 0) { - log_notice("Not running as root, skipping kernel related tests."); - return EXIT_TEST_SKIP; - } - - r = bpf_firewall_supported(); - if (r == 0) { - log_notice("BPF firewalling not supported, skipping"); - return EXIT_TEST_SKIP; - } - assert_se(r > 0); - - r = bpf_program_load_kernel(p, log_buf, ELEMENTSOF(log_buf)); - assert(r >= 0); - - p = bpf_program_unref(p); - - /* The simple tests suceeded. Now let's try full unit-based use-case. */ - - assert_se(manager_new(UNIT_FILE_USER, true, &m) >= 0); - assert_se(manager_startup(m, NULL, NULL) >= 0); - - assert_se(u = unit_new(m, sizeof(Service))); - assert_se(unit_add_name(u, "foo.service") == 0); - assert_se(cc = unit_get_cgroup_context(u)); - u->perpetual = true; - - cc->ip_accounting = true; - - assert_se(config_parse_ip_address_access(u->id, "filename", 1, "Service", 1, "IPAddressAllow", 0, "10.0.1.0/24", &cc->ip_address_allow, NULL) == 0); - assert_se(config_parse_ip_address_access(u->id, "filename", 1, "Service", 1, "IPAddressAllow", 0, "127.0.0.2", &cc->ip_address_allow, NULL) == 0); - assert_se(config_parse_ip_address_access(u->id, "filename", 1, "Service", 1, "IPAddressDeny", 0, "127.0.0.3", &cc->ip_address_deny, NULL) == 0); - assert_se(config_parse_ip_address_access(u->id, "filename", 1, "Service", 1, "IPAddressDeny", 0, "10.0.3.2/24", &cc->ip_address_deny, NULL) == 0); - assert_se(config_parse_ip_address_access(u->id, "filename", 1, "Service", 1, "IPAddressDeny", 0, "127.0.0.1/25", &cc->ip_address_deny, NULL) == 0); - assert_se(config_parse_ip_address_access(u->id, "filename", 1, "Service", 1, "IPAddressDeny", 0, "127.0.0.4", &cc->ip_address_deny, NULL) == 0); - - assert(cc->ip_address_allow); - assert(cc->ip_address_allow->items_next); - assert(!cc->ip_address_allow->items_next->items_next); - - /* The deny list is defined redundantly, let's ensure it got properly reduced */ - assert(cc->ip_address_deny); - assert(cc->ip_address_deny->items_next); - assert(!cc->ip_address_deny->items_next->items_next); - - assert_se(config_parse_exec(u->id, "filename", 1, "Service", 1, "ExecStart", SERVICE_EXEC_START, "/usr/bin/ping -c 1 127.0.0.2 -W 5", SERVICE(u)->exec_command, u) == 0); - assert_se(config_parse_exec(u->id, "filename", 1, "Service", 1, "ExecStart", SERVICE_EXEC_START, "/usr/bin/ping -c 1 127.0.0.3 -W 5", SERVICE(u)->exec_command, u) == 0); - - assert_se(SERVICE(u)->exec_command[SERVICE_EXEC_START]); - assert_se(SERVICE(u)->exec_command[SERVICE_EXEC_START]->command_next); - assert_se(!SERVICE(u)->exec_command[SERVICE_EXEC_START]->command_next->command_next); - - SERVICE(u)->type = SERVICE_ONESHOT; - u->load_state = UNIT_LOADED; - - unit_dump(u, stdout, NULL); - - r = bpf_firewall_compile(u); - if (IN_SET(r, -ENOTTY, -ENOSYS, -EPERM )) { - /* Kernel doesn't support the necessary bpf bits, or masked out via seccomp? */ - manager_free(m); - return EXIT_TEST_SKIP; - } - assert_se(r >= 0); - - assert(u->ip_bpf_ingress); - assert(u->ip_bpf_egress); - - r = bpf_program_load_kernel(u->ip_bpf_ingress, log_buf, ELEMENTSOF(log_buf)); - - log_notice("log:"); - log_notice("-------"); - log_notice("%s", log_buf); - log_notice("-------"); - - assert(r >= 0); - - r = bpf_program_load_kernel(u->ip_bpf_egress, log_buf, ELEMENTSOF(log_buf)); - - log_notice("log:"); - log_notice("-------"); - log_notice("%s", log_buf); - log_notice("-------"); - - assert(r >= 0); - - assert(unit_start(u) >= 0); - - while (!IN_SET(SERVICE(u)->state, SERVICE_DEAD, SERVICE_FAILED)) - assert_se(sd_event_run(m->event, UINT64_MAX) >= 0); - - assert_se(SERVICE(u)->exec_command[SERVICE_EXEC_START]->exec_status.code == CLD_EXITED && - SERVICE(u)->exec_command[SERVICE_EXEC_START]->exec_status.status == EXIT_SUCCESS); - - assert_se(SERVICE(u)->exec_command[SERVICE_EXEC_START]->command_next->exec_status.code != CLD_EXITED || - SERVICE(u)->exec_command[SERVICE_EXEC_START]->command_next->exec_status.status != EXIT_SUCCESS); - - manager_free(m); - - return 0; -}