]> git.ipfire.org Git - thirdparty/systemd.git/blame - test/create-busybox-container
test: add test cases for RuntimeDirectoryPreserve=yes
[thirdparty/systemd.git] / test / create-busybox-container
CommitLineData
ff12a795 1#!/usr/bin/env bash
c7934185
EV
2
3set -e
4set -u
5set -o pipefail
6
7root="${1:?Usage $0 container-root}"
8mkdir -p "$root"
9mkdir "$root/bin"
10cp $(type -P busybox) "$root/bin"
11
ae6c5987
ZJS
12os_release=$(test -e /etc/os-release && echo /etc/os-release || echo /usr/lib/os-release)
13ID_LIKE=$(awk -F= '$1=="ID_LIKE" { print $2 ;}' $os_release)
491b736a
ER
14if [[ "$ID_LIKE" = *"suse"* ]]; then
15 mkdir -p "$root/lib"
16 mkdir -p "$root/lib64"
17 for lib in $(find /lib*/ld*); do
18 [[ -d $root/$(dirname $lib) ]] || mkdir -p $root/$(dirname $lib)
19 cp $lib $root/$lib
20 done
21fi
22
c7934185
EV
23mkdir -p "$root/usr/lib"
24touch "$root/usr/lib/os-release"
25
26ln -s busybox "$root/bin/sh"
27ln -s busybox "$root/bin/cat"
28ln -s busybox "$root/bin/tr"
29ln -s busybox "$root/bin/ps"
30ln -s busybox "$root/bin/ip"
31
32mkdir -p "$root/sbin"
33cat <<'EOF' >"$root/sbin/init"
34#!/bin/sh
35
36printf "ps aufx:\n"
37ps aufx
38
39printf "/proc/1/cmdline:\n"
40printf "%s\n\n" "$(tr '\0' ' ' </proc/1/cmdline)"
41
42printf "/proc/1/environ:\n"
43printf "%s\n\n" "$(tr '\0' '\n' </proc/1/environ)"
44
45printf "/proc/1/mountinfo:\n"
46cat /proc/self/mountinfo
47printf "\n"
48
49printf "/proc/1/cgroup:\n"
50printf "%s\n\n" "$(cat /proc/1/cgroup)"
51
52printf "/proc/1/uid_map:\n"
53printf "%s\n\n" "$(cat /proc/1/uid_map)"
54
55printf "/proc/1/setgroups:\n"
56printf "%s\n\n" "$(cat /proc/1/setgroups)"
57
58printf "/proc/1/gid_map:\n"
59printf "%s\n\n" "$(cat /proc/1/gid_map)"
60
61printf "ip link:\n"
62ip link
63EOF
64chmod +x "$root/sbin/init"