Add a test-case for various %files manifest globbing scenarios
authorPanu Matilainen <pmatilai@redhat.com>
Wed, 30 May 2012 10:40:01 +0000 (13:40 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Wed, 30 May 2012 10:40:01 +0000 (13:40 +0300)
- In particular (aside from basics working) we're interested in
  the broken symlink behavior: at least glibc and Solaris have
  a weird glob() which doesn't return broken symlinks at all,
  yet we need to be able to package them (and that's why rpm
  carries its own copy of a differently broken, old glibc glob)
- Also test for directory-only match (RhBug:505995 cases)

tests/Makefile.am
tests/data/SPECS/globtest.spec [new file with mode: 0644]
tests/rpmbuild.at

index b4bd71a..fb39229 100644 (file)
@@ -35,6 +35,7 @@ EXTRA_DIST += data/SPECS/attrtest.spec
 EXTRA_DIST += data/SPECS/hello.spec
 EXTRA_DIST += data/SPECS/hello-script.spec
 EXTRA_DIST += data/SPECS/foo.spec
+EXTRA_DIST += data/SPECS/globtest.spec
 EXTRA_DIST += data/SPECS/versiontest.spec
 EXTRA_DIST += data/SPECS/conflicttest.spec
 EXTRA_DIST += data/SPECS/configtest.spec
diff --git a/tests/data/SPECS/globtest.spec b/tests/data/SPECS/globtest.spec
new file mode 100644 (file)
index 0000000..80f45de
--- /dev/null
@@ -0,0 +1,41 @@
+Name:           globtest 
+Version:        1.0
+Release:        1
+Summary:        Testing file glob behavior
+Group:          Testing
+License:        GPL
+BuildArch:     noarch
+
+%description
+%{summary}
+
+%define testdir /opt/%{name}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+mkdir -p $RPM_BUILD_ROOT/%{testdir}
+echo "foo" > $RPM_BUILD_ROOT/%{testdir}/weird%%name
+for f in bif baf zab zeb zib; do
+    echo "$f" > $RPM_BUILD_ROOT/%{testdir}/$f
+done
+for f in bing bang bong; do
+    mkdir -p $RPM_BUILD_ROOT/%{testdir}/$f
+done
+mkdir -p $RPM_BUILD_ROOT/%{testdir}/foo
+for f in one two three; do
+    echo "$f" > $RPM_BUILD_ROOT/%{testdir}/foo/$f
+done
+
+ln -s %{testdir}/zab $RPM_BUILD_ROOT/%{testdir}/linkgood
+ln -s %{testdir}/zub $RPM_BUILD_ROOT/%{testdir}/linkbad
+
+%files
+%defattr(-,root,root,-)
+%{testdir}/b??
+%{testdir}/weird?name
+%{testdir}/z*
+%{testdir}/l*
+%{testdir}/b*g/
+%dir %{testdir}/foo
+%{testdir}/foo/*
index 20142a2..7661e35 100644 (file)
@@ -153,3 +153,35 @@ ls -i "${RPMTEST}"/foo/hello* | awk {'print $1'} | sort -u | wc -l
 ],
 [])
 AT_CLEANUP
+
+AT_SETUP([rpmbuild glob])
+AT_KEYWORDS([build])
+AT_CHECK([
+RPMDB_CLEAR
+RPMDB_INIT
+rm -rf ${TOPDIR}
+
+runroot rpmbuild -bb --quiet /data/SPECS/globtest.spec
+runroot rpm -qp \
+       --qf "[[%{filemodes:perms} %{filenames}\n]]" \
+       "${TOPDIR}"/RPMS/noarch/globtest-1.0-1.noarch.rpm
+],
+[0],
+[-rw-r--r-- /opt/globtest/baf
+drwxr-xr-x /opt/globtest/bang
+-rw-r--r-- /opt/globtest/bif
+drwxr-xr-x /opt/globtest/bing
+drwxr-xr-x /opt/globtest/bong
+drwxr-xr-x /opt/globtest/foo
+-rw-r--r-- /opt/globtest/foo/one
+-rw-r--r-- /opt/globtest/foo/three
+-rw-r--r-- /opt/globtest/foo/two
+lrwxrwxrwx /opt/globtest/linkbad
+lrwxrwxrwx /opt/globtest/linkgood
+-rw-r--r-- /opt/globtest/weird%name
+-rw-r--r-- /opt/globtest/zab
+-rw-r--r-- /opt/globtest/zeb
+-rw-r--r-- /opt/globtest/zib
+],
+[])
+AT_CLEANUP