Merge pull request #32052 from mrc0mmand/even-more-test-tweaks
A couple of assorted tweaks
This commit is contained in:
@@ -2544,14 +2544,14 @@ static int exec_context_serialize(const ExecContext *c, FILE *f) {
|
||||
if (base64mem(sc->data, sc->size, &data) < 0)
|
||||
return log_oom_debug();
|
||||
|
||||
r = serialize_item_format(f, "exec-context-set-credentials", "%s %s %s", sc->id, yes_no(sc->encrypted), data);
|
||||
r = serialize_item_format(f, "exec-context-set-credentials", "%s %s %s", sc->id, data, yes_no(sc->encrypted));
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
||||
ExecLoadCredential *lc;
|
||||
HASHMAP_FOREACH(lc, c->load_credentials) {
|
||||
r = serialize_item_format(f, "exec-context-load-credentials", "%s %s %s", lc->id, yes_no(lc->encrypted), lc->path);
|
||||
r = serialize_item_format(f, "exec-context-load-credentials", "%s %s %s", lc->id, lc->path, yes_no(lc->encrypted));
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
@@ -3668,7 +3668,7 @@ static int exec_context_deserialize(ExecContext *c, FILE *f) {
|
||||
_cleanup_(exec_set_credential_freep) ExecSetCredential *sc = NULL;
|
||||
_cleanup_free_ char *id = NULL, *encrypted = NULL, *data = NULL;
|
||||
|
||||
r = extract_many_words(&val, " ", 0, &id, &encrypted, &data);
|
||||
r = extract_many_words(&val, " ", EXTRACT_DONT_COALESCE_SEPARATORS, &id, &data, &encrypted);
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (r != 3)
|
||||
@@ -3700,7 +3700,7 @@ static int exec_context_deserialize(ExecContext *c, FILE *f) {
|
||||
_cleanup_(exec_load_credential_freep) ExecLoadCredential *lc = NULL;
|
||||
_cleanup_free_ char *id = NULL, *encrypted = NULL, *path = NULL;
|
||||
|
||||
r = extract_many_words(&val, " ", 0, &id, &encrypted, &path);
|
||||
r = extract_many_words(&val, " ", EXTRACT_DONT_COALESCE_SEPARATORS, &id, &path, &encrypted);
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (r != 3)
|
||||
|
||||
@@ -9,5 +9,9 @@ set -o pipefail
|
||||
# Here, the redundant '[ ]' in the pattern is required in order not to match the logged command itself.
|
||||
(! journalctl -q -o short-monotonic --grep 'Warning: cannot close sd-bus connection[ ].*after fork' >>/failed)
|
||||
|
||||
# Check if sd-executor doesn't complain about not being able to (de)serialize stuff
|
||||
(! journalctl -q -o short-monotonic --grep "[F]ailed to parse serialized line" >>/failed)
|
||||
(! journalctl -q -o short-monotonic --grep "[F]ailed to (de)?serialize \w+" >>/failed)
|
||||
|
||||
systemctl poweroff --no-block
|
||||
exit 0
|
||||
|
||||
@@ -8,13 +8,20 @@ set -eux
|
||||
|
||||
systemd-analyze log-level debug
|
||||
|
||||
run_with_cred_compare() {
|
||||
run_with_cred_compare() (
|
||||
local cred="${1:?}"
|
||||
local exp="${2?}"
|
||||
local log_file
|
||||
shift 2
|
||||
|
||||
diff <(systemd-run -p SetCredential="$cred" --wait --pipe -- systemd-creds "$@") <(echo -ne "$exp")
|
||||
}
|
||||
log_file="$(mktemp)"
|
||||
# shellcheck disable=SC2064
|
||||
trap "rm -f '$log_file'" RETURN
|
||||
|
||||
set -o pipefail
|
||||
systemd-run -p SetCredential="$cred" --wait --pipe -- systemd-creds "$@" | tee "$log_file"
|
||||
diff "$log_file" <(echo -ne "$exp")
|
||||
)
|
||||
|
||||
# Sanity checks
|
||||
#
|
||||
|
||||
@@ -77,24 +77,26 @@ rm -fv /run/systemd/coredump.conf.d/99-external.conf
|
||||
# Wait a bit for the coredumps to get processed
|
||||
timeout 30 bash -c "while [[ \$(coredumpctl list -q --no-legend $CORE_TEST_BIN | wc -l) -lt 4 ]]; do sleep 1; done"
|
||||
|
||||
# Make sure we can forward crashes back to containers
|
||||
CONTAINER="testsuite-74-container"
|
||||
if cgroupfs_supports_user_xattrs; then
|
||||
# Make sure we can forward crashes back to containers
|
||||
CONTAINER="testsuite-74-container"
|
||||
|
||||
mkdir -p "/var/lib/machines/$CONTAINER"
|
||||
mkdir -p "/run/systemd/system/systemd-nspawn@$CONTAINER.service.d"
|
||||
# Bind-mounting /etc into the container kinda defeats the purpose of --volatile=,
|
||||
# but we need the ASan-related overrides scattered across /etc
|
||||
cat > "/run/systemd/system/systemd-nspawn@$CONTAINER.service.d/override.conf" << EOF
|
||||
mkdir -p "/var/lib/machines/$CONTAINER"
|
||||
mkdir -p "/run/systemd/system/systemd-nspawn@$CONTAINER.service.d"
|
||||
# Bind-mounting /etc into the container kinda defeats the purpose of --volatile=,
|
||||
# but we need the ASan-related overrides scattered across /etc
|
||||
cat > "/run/systemd/system/systemd-nspawn@$CONTAINER.service.d/override.conf" <<EOF
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=systemd-nspawn --quiet --link-journal=try-guest --keep-unit --machine=%i --boot \
|
||||
--volatile=yes --directory=/ --bind-ro=/etc --inaccessible=/etc/machine-id
|
||||
EOF
|
||||
systemctl daemon-reload
|
||||
systemctl daemon-reload
|
||||
|
||||
[[ "$(systemd-detect-virt)" == "qemu" ]] && TIMEOUT=120 || TIMEOUT=60
|
||||
|
||||
if cgroupfs_supports_user_xattrs; then
|
||||
machinectl start "$CONTAINER"
|
||||
timeout 60 bash -xec "until systemd-run -M '$CONTAINER' -q --wait --pipe true; do sleep .5; done"
|
||||
timeout "$TIMEOUT" bash -xec "until systemd-run -M '$CONTAINER' -q --wait --pipe true; do sleep .5; done"
|
||||
|
||||
[[ "$(systemd-run -M "$CONTAINER" -q --wait --pipe coredumpctl list -q --no-legend /usr/bin/sleep | wc -l)" -eq 0 ]]
|
||||
machinectl copy-to "$CONTAINER" "$MAKE_DUMP_SCRIPT"
|
||||
@@ -102,6 +104,8 @@ if cgroupfs_supports_user_xattrs; then
|
||||
systemd-run -M "$CONTAINER" -q --wait --pipe "$MAKE_DUMP_SCRIPT" "/usr/bin/sleep" "SIGTRAP"
|
||||
# Wait a bit for the coredumps to get processed
|
||||
timeout 30 bash -c "while [[ \$(systemd-run -M $CONTAINER -q --wait --pipe coredumpctl list -q --no-legend /usr/bin/sleep | wc -l) -lt 2 ]]; do sleep 1; done"
|
||||
|
||||
rm -rf "/var/lib/machines/$CONTAINER"
|
||||
fi
|
||||
|
||||
coredumpctl
|
||||
|
||||
Reference in New Issue
Block a user