]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: move TEST-08-ISSUE-2730 setup to static files and meson scripts
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 10 Dec 2019 15:05:48 +0000 (16:05 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 28 Mar 2020 10:46:47 +0000 (11:46 +0100)
Unfortunately meson does not install symlinks, but copies the symlink
destination instead. So symlinks need to be created by a script.
This commit adds both symlinks in test/testsuite-08.units/ and meson
scriptlet calls. Strictly speaking, the first is not necessary, since nothing
reads stuff directly from the source tree.

test/TEST-08-ISSUE-2730/test.sh
test/meson.build
test/testsuite-08.units/-.mount [new file with mode: 0644]
test/testsuite-08.units/local-fs.target.wants/-.mount [new symlink]
test/testsuite-08.units/root.mount [new symlink]
test/testsuite-08.units/systemd-remount-fs.service [new file with mode: 0644]
test/units/testsuite-08.service [new file with mode: 0644]
tools/meson-make-symlink.sh

index 2fedef7b58a83f646f93c786f0c19b371bff39a5..7acca157d27f58127de791b58cf9f7fb6698189f 100755 (executable)
@@ -17,54 +17,9 @@ test_setup() {
 
         setup_basic_environment
 
-        # setup the testsuite service
-        cat >$initdir/etc/systemd/system/testsuite.service <<EOF
-[Unit]
-Description=Testsuite service
-
-[Service]
-ExecStart=/bin/sh -x -c 'mount -o remount,rw /dev/sda1 && echo OK > /testok; systemctl poweroff'
-Type=oneshot
-EOF
-
-    rm $initdir/etc/fstab
-    cat >$initdir/etc/systemd/system/-.mount <<EOF
-[Unit]
-Before=local-fs.target
-
-[Mount]
-What=/dev/sda1
-Where=/
-Type=ext4
-Options=errors=remount-ro,noatime
-
-[Install]
-WantedBy=local-fs.target
-Alias=root.mount
-EOF
-
-    cat >$initdir/etc/systemd/system/systemd-remount-fs.service <<EOF
-[Unit]
-DefaultDependencies=no
-Conflicts=shutdown.target
-After=systemd-fsck-root.service
-Before=local-fs-pre.target local-fs.target shutdown.target
-Wants=local-fs-pre.target
-
-[Service]
-Type=oneshot
-RemainAfterExit=yes
-ExecStart=/bin/systemctl reload /
-EOF
-
-        setup_testsuite
+        rm $initdir/etc/fstab
     )
-
-    ln -s /etc/systemd/system/-.mount $initdir/etc/systemd/system/root.mount
-    mkdir -p $initdir/etc/systemd/system/local-fs.target.wants
-    ln -s /etc/systemd/system/-.mount $initdir/etc/systemd/system/local-fs.target.wants/-.mount
-
     mask_supporting_services
 }
 
-do_test "$@"
+do_test "$@" 08
index e667076d4c3d95d328a2abf9715a58a5b690bddd..295b7092c88e6d8613edc082d2a83c786357e3f3 100644 (file)
@@ -17,6 +17,18 @@ install_subdir('testsuite-04.units',
 install_subdir('testsuite-06.units',
                install_dir : testdata_dir)
 
+testsuite08_dir = testdata_dir + '/testsuite-08.units'
+install_data('testsuite-08.units/-.mount',
+             install_dir : testsuite08_dir)
+install_data('testsuite-08.units/systemd-remount-fs.service',
+             install_dir : testsuite08_dir)
+meson.add_install_script(meson_make_symlink,
+                         './-.mount',
+                         testsuite08_dir + '/root.mount')
+meson.add_install_script(meson_make_symlink,
+                         '../-.mount',
+                         testsuite08_dir + '/local-fs.target.wants/-.mount')
+
 if conf.get('ENABLE_RESOLVE') == 1
         install_subdir('test-resolve',
                        install_dir : testdata_dir)
diff --git a/test/testsuite-08.units/-.mount b/test/testsuite-08.units/-.mount
new file mode 100644 (file)
index 0000000..af4e219
--- /dev/null
@@ -0,0 +1,12 @@
+[Unit]
+Before=local-fs.target
+
+[Mount]
+What=/dev/sda1
+Where=/
+Type=ext4
+Options=errors=remount-ro,noatime
+
+[Install]
+WantedBy=local-fs.target
+Alias=root.mount
diff --git a/test/testsuite-08.units/local-fs.target.wants/-.mount b/test/testsuite-08.units/local-fs.target.wants/-.mount
new file mode 120000 (symlink)
index 0000000..5566fce
--- /dev/null
@@ -0,0 +1 @@
+../-.mount
\ No newline at end of file
diff --git a/test/testsuite-08.units/root.mount b/test/testsuite-08.units/root.mount
new file mode 120000 (symlink)
index 0000000..fd8c47d
--- /dev/null
@@ -0,0 +1 @@
+-.mount
\ No newline at end of file
diff --git a/test/testsuite-08.units/systemd-remount-fs.service b/test/testsuite-08.units/systemd-remount-fs.service
new file mode 100644 (file)
index 0000000..398d612
--- /dev/null
@@ -0,0 +1,11 @@
+[Unit]
+DefaultDependencies=no
+Conflicts=shutdown.target
+After=systemd-fsck-root.service
+Before=local-fs-pre.target local-fs.target shutdown.target
+Wants=local-fs-pre.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/bin/systemctl reload /
diff --git a/test/units/testsuite-08.service b/test/units/testsuite-08.service
new file mode 100644 (file)
index 0000000..79fb089
--- /dev/null
@@ -0,0 +1,6 @@
+[Unit]
+Description=TEST-08-ISSUE-2730
+
+[Service]
+ExecStart=sh -x -c 'mount -o remount,rw /dev/sda1 && echo OK >/testok; systemctl poweroff'
+Type=oneshot
index da0d13a341fed819dae7c8bf17a6ccd40b58594c..cdd5214125fb6374f8e8e817a0da68c0d583781b 100755 (executable)
@@ -5,8 +5,8 @@ set -eu
 # and we need to create the target directory...
 
 mkdir -vp "$(dirname "${DESTDIR:-}$2")"
-if [ "$(dirname $1)" = . ]; then
-    ln -vfs -T "$1" "${DESTDIR:-}$2"
+if [ "$(dirname $1)" = . -o "$(dirname $1)" = .. ]; then
+    ln -vfs -T -- "$1" "${DESTDIR:-}$2"
 else
-    ln -vfs -T --relative "${DESTDIR:-}$1" "${DESTDIR:-}$2"
+    ln -vfs -T --relative -- "${DESTDIR:-}$1" "${DESTDIR:-}$2"
 fi