]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
fmf: Support being used downstream in dist-git tests 35879/head
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 6 Jan 2025 15:30:23 +0000 (16:30 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 6 Jan 2025 15:30:23 +0000 (16:30 +0100)
We can use our upstream fmf definitions to run downstream tests in
the Fedora systemd dist-git repository
(https://src.fedoraproject.org/rpms/systemd). To have access to the
dist-git sources when running the tests, we enable dist-git-source: true
downstream which makes the sources available in $TMT_SOURCE_DIR so
let's make sure we use those sources if they're available.

test/fmf/integration-tests/test.sh

index f16bd84cbaf2f63966df4b1d5b7b83a420f2717c..690e07aa56c70315a960459105de2980f99ffe1a 100755 (executable)
@@ -7,16 +7,44 @@ set -o pipefail
 # Switch SELinux to permissive, since the tests don't set proper contexts
 setenforce 0
 
-# Prepare systemd source tree
-git clone "$PACKIT_TARGET_URL" systemd
-pushd systemd
-# If we're running in a pull request job, merge the remote branch into the current main
-if [[ -n "${PACKIT_SOURCE_URL:-}" ]]; then
-    git remote add pr "${PACKIT_SOURCE_URL:?}"
-    git fetch pr "${PACKIT_SOURCE_BRANCH:?}"
-    git merge "pr/$PACKIT_SOURCE_BRANCH"
+# Allow running the integration tests downstream in dist-git with something like
+# the following snippet which makes the dist-git sources available in $TMT_SOURCE_DIR:
+#
+# summary: systemd Fedora test suite
+# discover:
+#   how: fmf
+#   url: https://github.com/systemd/systemd
+#   ref: main
+#   path: test/fmf
+#   dist-git-source: true
+#   dist-git-install-builddeps: false
+# prepare:
+#   - name: systemd
+#     how: install
+#     exclude:
+#       - systemd-standalone-.*
+# execute:
+#   how: tmt
+
+if [[ -n "${TMT_SOURCE_DIR:-}" ]]; then
+    pushd "$TMT_SOURCE_DIR/*/"
+elif [[ -n "${PACKIT_TARGET_URL:-}" ]]; then
+    # Prepare systemd source tree
+    git clone "$PACKIT_TARGET_URL" systemd
+    pushd systemd
+
+    # If we're running in a pull request job, merge the remote branch into the current main
+    if [[ -n "${PACKIT_SOURCE_URL:-}" ]]; then
+        git remote add pr "${PACKIT_SOURCE_URL:?}"
+        git fetch pr "${PACKIT_SOURCE_BRANCH:?}"
+        git merge "pr/$PACKIT_SOURCE_BRANCH"
+    fi
+
+    git log --oneline -5
+else
+    echo "Not running within packit or Fedora CI"
+    exit 1
 fi
-git log --oneline -5
 
 # Now prepare mkosi, possibly at the same version required by the systemd repo
 git clone https://github.com/systemd/mkosi