From d053b72bdd6bb1421cc33ff190545371a9e34cca Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 12 Oct 2017 13:25:06 +0900 Subject: [PATCH] test: add test for BindPaths= and BindReadOnlyPaths= Follow-up for a8cabc612b16834260831a8163ae4b479b5c33a5. --- src/test/test-execute.c | 11 +++++++++++ test/meson.build | 1 + test/test-execute/exec-bind-paths.service | 14 ++++++++++++++ 3 files changed, 26 insertions(+) create mode 100644 test/test-execute/exec-bind-paths.service diff --git a/src/test/test-execute.c b/src/test/test-execute.c index 486c7e1..7e36900 100644 --- a/src/test/test-execute.c +++ b/src/test/test-execute.c @@ -100,6 +100,16 @@ static void test(Manager *m, const char *unit_name, int status_expected, int cod check(m, unit, status_expected, code_expected); } +static void test_exec_bind_paths(Manager *m) { + assert_se(mkdir_p("/tmp/test-exec_bind_paths", 0755) >= 0); + assert_se(mkdir_p("/tmp/test-exec_bind_readonly_paths", 0755) >= 0); + + test(m, "exec-bind-paths.service", 0, CLD_EXITED); + + (void) rm_rf("/tmp/test-exec_bind_paths", REMOVE_ROOT|REMOVE_PHYSICAL); + (void) rm_rf("/tmp/test-exec_bind_readonly_paths", REMOVE_ROOT|REMOVE_PHYSICAL); +} + static void test_exec_workingdirectory(Manager *m) { assert_se(mkdir_p("/tmp/test-exec_workingdirectory", 0755) >= 0); @@ -483,6 +493,7 @@ static int run_tests(UnitFileScope scope, const test_function_t *tests) { int main(int argc, char *argv[]) { static const test_function_t user_tests[] = { + test_exec_bind_paths, test_exec_workingdirectory, test_exec_personality, test_exec_ignoresigpipe, diff --git a/test/meson.build b/test/meson.build index c2df7ec..2b523da 100644 --- a/test/meson.build +++ b/test/meson.build @@ -46,6 +46,7 @@ test_data_files = ''' test-path/path-makedirectory.path test-path/path-modified.path test-path/path-unit.path + test-execute/exec-bind-paths.service test-execute/exec-environment-empty.service test-execute/exec-environment-multiple.service test-execute/exec-environment.service diff --git a/test/test-execute/exec-bind-paths.service b/test/test-execute/exec-bind-paths.service new file mode 100644 index 0000000..e6584c8 --- /dev/null +++ b/test/test-execute/exec-bind-paths.service @@ -0,0 +1,14 @@ +[Service] +Type=oneshot +# Create a file in /tmp/test-exec_bind_paths +ExecStart=/bin/sh -c 'touch /tmp/test-exec_bind_paths/thisisasimpletest' +# Then, the file can be access through /tmp +ExecStart=/bin/sh -c 'test -f /tmp/thisisasimpletest' +# Also, through /tmp/test-exec_bind_readonly_paths +ExecStart=/bin/sh -c 'test -f /tmp/test-exec_bind_readonly_paths/thisisasimpletest' +# The file cannot modify through /tmp/test-exec_bind_readonly_paths +ExecStart=/bin/sh -x -c '! touch /tmp/test-exec_bind_readonly_paths/thisisasimpletest' +# Cleanup +ExecStart=/bin/sh -c 'rm /tmp/thisisasimpletest' +BindPaths=/tmp:/tmp/test-exec_bind_paths +BindReadOnlyPaths=/tmp:/tmp/test-exec_bind_readonly_paths -- 2.7.4