summaryrefslogtreecommitdiffstats
path: root/test/TEST-20-MAINPIDGAMES (follow)
Commit message (Collapse)AuthorAgeFilesLines
* test: de-duplicate test_setup() functionsZbigniew Jędrzejewski-Szmek2020-03-281-14/+0
| | | | Now we will run setup_nspawn_root() in some case where do don't need to.
* test: move TEST-20-MAINPIDGAMES setup to static filesZbigniew Jędrzejewski-Szmek2020-03-282-156/+1
|
* treewide: more portable bash shebangsJörg Thalheim2020-03-052-5/+5
| | | | | | | | | | | | | | | | As in 2a5fcfae024ffc370bb780572279f45a1da3f946 and in 3e67e5c9928f8b1e1c5a63def88d53ed1fed12eb using /usr/bin/env allows bash to be looked up in PATH rather than being hard-coded. As with the previous changes the same arguments apply - distributions have scripts to rewrite shebangs on installation and they know what locations to rely on. - For tests/compilation we should rather rely on the user to have setup there PATH correctly. In particular this makes testing from git easier on NixOS where do not provide /bin/bash to improve compose-ability.
* test: make sure our tests get exclusive TTY accessLennart Poettering2019-11-201-0/+2
| | | | | | | | | | | | | | | | | This sould make our test suite a bit more robust if it is slow running. A few of our test services use StandardOutput=tty or StandardError=tty in the tests in order to connect test services to the container console. This gets into conflict with the container getty which wants exclusive access to the console. Since the container getty is started with Type=idle it typically gets started after a timeout only if the TTY is already used, which hence introduces a race: if the test finishes earlier all is good, if not, then the test gets kicked off the TTY which then causes bash to abort since it cannot write any error messages anymore. Let's fix this hence: all tests that connect to the tty are now synchronized to getty-pre.target, so they finish before any getty is started.
* test: add function to reduce copied setup boilerplateZbigniew Jędrzejewski-Szmek2019-10-081-8/+2
| | | | | | Many tests were also masking systemd-machined.service. But machined should only start when activated, so having it not masked shouldn't be noticable. TEST-25-IMPORT needs it.
* test: drop redirection to tty in integration testsZbigniew Jędrzejewski-Szmek2019-10-081-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | I *think* this was originally added to make it easier to see what was happening in tests. Later we added the functionality to print the journal on failure, so this redirection has stopped being useful. In https://github.com/systemd/systemd/pull/13719#issuecomment-539292650 @filbranden shows that grep tries to write to stdout and fails. In general, we should not assume that writing to the console it always possible. We have special code to handle this in pid1 after all: 99 19:22:10.731965 fstat(1, <unfinished ...> 99 19:22:10.731993 <... fstat resumed>{st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0), ...}) = 0 99 19:22:10.732070 write(1, "ExecStartPost={ path=/bin/echo ; argv[]=/bin/echo ${4_four_ex} ; ignore_errors=no ; start_time=[Mon 2019-10-07 19:22:10 PDT] ; stop_time=[Mon 209-10-07 19:22:10 PDT] ; pid=97 ; code=exited ; status=0 }\n", 203) = -1 EIO (Input/output error) 99 19:22:10.732174 write(2, "grep: ", 6) = -1 EIO (Input/output error) 99 19:22:10.732226 write(2, "write error", 11) = -1 EIO (Input/output error) 99 19:22:10.732263 write(2, ": Input/output error", 20) = -1 EIO (Input/output error) 99 19:22:10.732298 write(2, "\n", 1 <unfinished ...> 99 19:22:10.732325 <... write resumed>) = -1 EIO (Input/output error) 99 19:22:10.732349 exit_group(2) = ? 99 19:22:10.732424 +++ exited with 2 +++ Removing the redirection should make the tests less flakey. Replaces #13719. While at it, also drop NotifyAccess=all. I think it was added purposefully in TEST-20-MAINPIDGAMES, and then cargo culted to newer tests.
* test: add create_empty_image_rootdir() to simplify testcase setupDan Streetman2019-07-171-6/+1
| | | | | | | | | Almost all tests were manually mounting/unmounting $TESTDIR/root from the loopback image; this moves all that into test-functions so the test setup functions are simplier. Also add test_setup_cleanup() function, to cleanup what is mounted by create_empty_image_rootdir()
* test: drop || return 1 expression which is incompatible with set -eFrantisek Sumsal2019-07-081-1/+1
| | | | | | The `set -e` option is incompatible with a subshell/compound command, which is followed by || <EXPR>. In such case, the -e option is ignored in all affected subshells/functions (see man bash(1) for command `set`).
* codespell: fix spelling errorsBen Boeckel2019-04-291-2/+2
|
* scripts: use 4 space indentationZbigniew Jędrzejewski-Szmek2019-04-122-4/+0
| | | | | | | | | | | | | | | | | | We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed. 4 sp was the most common, in particular the majority of scripts under test/ used that. Let's standarize on 4 sp, because many commandlines are long and there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp also seems to be the default indentation, so this will make it less likely that people will mess up if they don't load the editor config. (I think people often use vi, and vi has no support to load project-wide configuration automatically. We distribute a .vimrc file, but it is not loaded by default, and even the instructions in it seem to discourage its use for security reasons.) Also remove the few vim config lines that were left. We should either have them on all files, or none. Also remove some strange stuff like '#!/bin/env bash', yikes.
* test: use newer verb to set log levelsZbigniew Jędrzejewski-Szmek2019-04-031-3/+3
|
* test: mask several unnecessary servicesYu Watanabe2018-11-031-0/+8
| | | | This may make CIs run faster.
* test: replace duplicated Makefile by symbolic linkYu Watanabe2018-10-091-4/+1
|
* core: be stricter when handling PID files and MAINPID sd_notify() messagesLennart Poettering2018-01-113-0/+187
Let's be more restrictive when validating PID files and MAINPID= messages: don't accept PIDs that make no sense, and if the configuration source is not trusted, don't accept out-of-cgroup PIDs. A configuratin source is considered trusted when the PID file is owned by root, or the message was received from root. This should lock things down a bit, in case service authors write out PID files from unprivileged code or use NotifyAccess=all with unprivileged code. Note that doing so was always problematic, just now it's a bit less problematic. When we open the PID file we'll now use the CHASE_SAFE chase_symlinks() logic, to ensure that we won't follow an unpriviled-owned symlink to a privileged-owned file thinking this was a valid privileged PID file, even though it really isn't. Fixes: #6632