summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPanu Matilainen <pmatilai@redhat.com>2023-03-17 09:25:51 +0200
committerPanu Matilainen <pmatilai@redhat.com>2023-03-30 13:59:28 +0300
commitfb040f16ec09a10c47f968d995c5bb770b8a7a64 (patch)
tree0548614074f75216b9ef7020f2c0fb7a42d44209
parent6e03ef19a6b166d7b35ca0952e6091f557b892ca (diff)
downloadrpm-fb040f16ec09a10c47f968d995c5bb770b8a7a64.tar.gz
Add a proper testcase for full sysusers.d file automation
-rw-r--r--tests/data/SPECS/klang.spec63
-rw-r--r--tests/rpmi.at43
2 files changed, 106 insertions, 0 deletions
diff --git a/tests/data/SPECS/klang.spec b/tests/data/SPECS/klang.spec
new file mode 100644
index 000000000..7e917fdc7
--- /dev/null
+++ b/tests/data/SPECS/klang.spec
@@ -0,0 +1,63 @@
+Name: klang
+Version: 1.0
+Release: 1
+BuildArch: noarch
+License: GPL
+Summary: Klang frobnizer
+
+%description
+%{summary}
+
+%package common
+Summary: %{SUMMARY} common
+
+%description common
+%{summary}
+
+%package client
+Summary: %{SUMMARY} client
+
+%description client
+%{summary}
+
+%package server
+Summary: %{SUMMARY} server
+
+%description server
+%{summary}
+
+%install
+mkdir -p ${RPM_BUILD_ROOT}/var/lib/klangd
+mkdir -p ${RPM_BUILD_ROOT}/usr/bin/
+mkdir -p ${RPM_BUILD_ROOT}/etc
+mkdir -p ${RPM_BUILD_ROOT}/%{_sysusersdir}
+
+echo "aaaa" > ${RPM_BUILD_ROOT}/usr/bin/klang
+echo "bbbb" > ${RPM_BUILD_ROOT}/usr/bin/klangd
+echo "xxxx" > ${RPM_BUILD_ROOT}/etc/klang.cfg
+
+cat << EOF > ${RPM_BUILD_ROOT}/%{_sysusersdir}/klang.conf
+g klang -
+EOF
+
+cat << EOF > ${RPM_BUILD_ROOT}/%{_sysusersdir}/klangd.conf
+u klangd - "Klang server" /var/lib/klangd /sbin/nologin
+EOF
+cat << EOF > ${RPM_BUILD_ROOT}/%{_sysusersdir}/plong.conf
+u plong - "Plong fu" /var/lib/plong /sbin/nologin
+g klong -
+EOF
+
+%files common
+%{_sysusersdir}/klang.conf
+%attr(-,-,klang) /etc/klang.cfg
+
+%files client
+%attr(-,-,klang) /usr/bin/klang
+
+%files server
+%{_sysusersdir}/klangd.conf
+%{_sysusersdir}/plong.conf
+%attr(-,klangd,klangd) /var/lib/klangd
+%attr(-,plong,klong) /var/lib/klangd
+/usr/bin/klangd
diff --git a/tests/rpmi.at b/tests/rpmi.at
index 747008493..9d74cf689 100644
--- a/tests/rpmi.at
+++ b/tests/rpmi.at
@@ -1474,3 +1474,46 @@ runroot rpm -V ${VERIFYOPTS} deptest-user
],
[])
AT_CLEANUP
+
+AT_SETUP([rpm -i sysusers])
+AT_KEYWORDS([install build sysusers])
+RPMDB_INIT
+
+runroot rpmbuild -bb --quiet /data/SPECS/klang.spec
+
+AT_CHECK([
+runroot rpm -U /build/RPMS/noarch/klang-client-1.0-1.noarch.rpm
+],
+[1],
+[],
+[error: Failed dependencies:
+ group(klang) is needed by klang-client-1.0-1.noarch
+])
+
+AT_CHECK([
+runroot rpm -U \
+ /build/RPMS/noarch/klang-client-1.0-1.noarch.rpm \
+ /build/RPMS/noarch/klang-common-1.0-1.noarch.rpm
+runroot_other grep ^klang /etc/group | cut -f1 -d:
+runroot rpm -V ${VERIFYOPTS} klang-client klang-common
+],
+[0],
+[klang
+],
+[ignore])
+
+AT_CHECK([
+runroot rpm -U /build/RPMS/noarch/klang-server-1.0-1.noarch.rpm
+runroot_other grep ^klangd /etc/passwd | cut -f1 -d:
+runroot_other grep ^klangd /etc/group | cut -f1 -d:
+runroot_other grep ^plong /etc/passwd | cut -f1 -d:
+runroot rpm -V ${VERIFYOPTS} klang-server
+],
+[0],
+[klangd
+klangd
+plong
+],
+[ignore])
+
+AT_CLEANUP