summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/Makefile.am1
-rw-r--r--tests/data/SPECS/hello-script.spec22
-rw-r--r--tests/rpmconflict.at72
3 files changed, 95 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 17f1e0f28..026a0d5f2 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -31,6 +31,7 @@ EXTRA_DIST += $(TESTSUITE_AT)
## testsuite data
EXTRA_DIST += data/SPECS/hello.spec
+EXTRA_DIST += data/SPECS/hello-script.spec
EXTRA_DIST += data/SPECS/foo.spec
EXTRA_DIST += data/SPECS/versiontest.spec
EXTRA_DIST += data/SPECS/conflicttest.spec
diff --git a/tests/data/SPECS/hello-script.spec b/tests/data/SPECS/hello-script.spec
new file mode 100644
index 000000000..567519e33
--- /dev/null
+++ b/tests/data/SPECS/hello-script.spec
@@ -0,0 +1,22 @@
+Name: hello-script
+Version: 1.0
+Release: 1
+Summary: Testing file conflict behavior
+
+Group: Testing
+License: GPL
+BuildArch: noarch
+
+%description
+%{summary}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT/usr/bin
+cat << EOF > $RPM_BUILD_ROOT/usr/bin/hello
+echo "Hello world!"
+EOF
+
+%files
+%defattr(-,root,root,-)
+/usr/bin/hello
diff --git a/tests/rpmconflict.at b/tests/rpmconflict.at
index 2dc12e3bc..1463a3896 100644
--- a/tests/rpmconflict.at
+++ b/tests/rpmconflict.at
@@ -125,6 +125,78 @@ runroot rpm -q --qf "[[%{filestates:fstate} ]]" hello.i686 hello.x86_64
AT_CLEANUP
# ------------------------------
+# File conflict between colored and non-colored file 1
+AT_SETUP([rpm -U multilib elf vs non-elf file conflict 1])
+AT_KEYWORDS([install])
+AT_CHECK([
+RPMDB_CLEAR
+RPMDB_INIT
+
+runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec
+
+runroot rpm -U --ignoreos --ignorearch --nodeps \
+ --define "_transaction_color 3" \
+ --define "_prefer_color 2" \
+ /data/RPMS/hello-2.0-1.x86_64.rpm \
+ "${TOPDIR}"/RPMS/noarch/hello-script-1.0-1.noarch.rpm
+],
+[2],
+[],
+[ file /usr/bin/hello conflicts between attempted installs of hello-2.0-1.x86_64 and hello-script-1.0-1.noarch
+])
+AT_CLEANUP
+
+# File conflict between colored and non-colored file 2
+AT_SETUP([rpm -U multilib elf vs non-elf file conflict 2])
+AT_KEYWORDS([install])
+AT_CHECK([
+RPMDB_CLEAR
+RPMDB_INIT
+
+runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec
+
+runroot rpm -U --ignoreos --ignorearch --nodeps \
+ --define "_transaction_color 3" \
+ --define "_prefer_color 2" \
+ /data/RPMS/hello-2.0-1.x86_64.rpm
+
+runroot rpm -U --ignoreos --ignorearch --nodeps \
+ --define "_transaction_color 3" \
+ --define "_prefer_color 2" \
+ "${TOPDIR}"/RPMS/noarch/hello-script-1.0-1.noarch.rpm
+],
+[1],
+[],
+[ file /usr/bin/hello from install of hello-script-1.0-1.noarch conflicts with file from package hello-2.0-1.x86_64
+])
+AT_CLEANUP
+
+# File conflict between colored and non-colored file 3
+AT_SETUP([rpm -U multilib elf vs non-elf file conflict 3])
+AT_KEYWORDS([install])
+AT_CHECK([
+RPMDB_CLEAR
+RPMDB_INIT
+
+runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec
+
+runroot rpm -U --ignoreos --ignorearch --nodeps \
+ --define "_transaction_color 3" \
+ --define "_prefer_color 2" \
+ "${TOPDIR}"/RPMS/noarch/hello-script-1.0-1.noarch.rpm
+
+runroot rpm -U --ignoreos --ignorearch --nodeps \
+ --define "_transaction_color 3" \
+ --define "_prefer_color 2" \
+ /data/RPMS/hello-2.0-1.x86_64.rpm
+],
+[1],
+[],
+[ file /usr/bin/hello from install of hello-2.0-1.x86_64 conflicts with file from package hello-script-1.0-1.noarch
+])
+AT_CLEANUP
+
+# ------------------------------
# Replace directory with symlink, this is expected to fail
AT_SETUP([rpm -U replacing directory with symlink])
AT_KEYWORDS([install])