Fix test data, improve Makefile.

Previous test data was insufficient for proper testing.
Test compose runs and depsolving tests require precisely
set NVRs, dependencies, sub-packages, etc.
Using rpmfluff for these would be an overkill, it's better
to create RPMs directly from specs.
This commit is contained in:
Daniel Mach 2015-06-25 08:02:52 -04:00
parent 51cdd94379
commit 81e935fe0e
50 changed files with 1819 additions and 339 deletions

2
.gitignore vendored
View File

@ -4,3 +4,5 @@ MANIFEST
build/*
dist/*
noarch/*
tests/data/repo
tests/data/repo-krb5-lookaside

View File

@ -8,21 +8,41 @@ RPM="noarch/${PKGNAME}-$(VERSION)-$(RELEASE).noarch.rpm"
SRPM="${PKGNAME}-$(VERSION)-$(RELEASE).src.rpm"
default: all
all: help
help:
@echo "Usage: make <target>"
@echo
@echo "Available targets are:"
@echo " help show this text"
@echo " clean remove python bytecode and temp files"
@echo " install install program on current system"
@echo " test-data build test data (requirement for running tests)"
@echo " test run tests"
@echo
@echo "Available rel-eng targets are:"
@echo " archive create source tarball"
@echo " log display changelog for spec file"
@echo " tag create a git tag according to version and release from spec file"
@echo " rpm build rpm"
@echo " srpm build srpm"
@echo " rpminstall build rpm and install it"
@echo " release build srpm and create git tag"
all:
@echo "Nothing to do"
tag:
@git tag -a -m "Tag as $(GITTAG)" -f $(GITTAG)
@echo "Tagged as $(GITTAG)"
# @hg push
Changelog:
(GIT_DIR=.git git log > .changelog.tmp && mv .changelog.tmp Changelog; rm -f .changelog.tmp) || (touch Changelog; echo 'git directory not found: installing possibly empty changelog.' >&2)
log:
@(LC_ALL=C date +"* %a %b %e %Y `git config --get user.name` <`git config --get user.email`> - VERSION"; git log --pretty="format:- %s (%an)" | cat) | less
@(LC_ALL=C date +"* %a %b %e %Y `git config --get user.name` <`git config --get user.email`> - VERSION"; git log --pretty="format:- %s (%ae)" | sed -r 's/ \(([^@]+)@[^)]+\)/ (\1)/g' | cat) | less
archive:
@rm -f Changelog
@ -32,30 +52,45 @@ archive:
@python setup.py sdist --formats=bztar > /dev/null
@echo "The archive is in dist/${PKGNAME}-$(VERSION).tar.bz2"
srpm: archive
@rm -f $(SRPM)
@rpmbuild -bs ${PKGRPMFLAGS} ${PKGNAME}.spec
@echo "The srpm is in $(SRPM)"
rpm: archive
@rpmbuild --clean -bb ${PKGRPMFLAGS} ${PKGNAME}.spec
@echo "The rpm is in $(RPM)"
rpminstall: rpm
@rpm -ivh --force $(RPM)
release: tag srpm
install:
@python setup.py install
clean:
@python setup.py clean
@rm -vf *.rpm
@rm -vf *.rpm
@rm -vrf noarch
@rm -vf *.tar.gz
@rm -vrf dist
@rm -vf MANIFEST
@rm -vf Changelog
find . -\( -name "*.pyc" -o -name '*.pyo' -o -name "*~" -o -name "__pycache__" -\) -delete
find . -depth -type d -a -name '*.egg-info' -exec rm -rf {} \;
@find . -\( -name "*.pyc" -o -name '*.pyo' -o -name "*~" -o -name "__pycache__" -\) -delete
@find . -depth -type d -a -name '*.egg-info' -exec rm -rf {} \;
test:
python2 setup.py test
python3 setup.py test
test-data:
./tests/data/specs/build.sh

42
README.testing Normal file
View File

@ -0,0 +1,42 @@
===============
Testing Pungi
===============
Test Data
=========
Tests require test data and not all of it is available in git.
You must create test repositories before running the tests:
$ make test-data
Requirements: createrepo_c, rpmbuild
Unit Tests
==========
Unit tests cover functionality of Pungi python modules.
You can run all of them at once:
$ make test
which is shortcut to:
$ python2 setup.py test
$ python3 setup.py test
You can alternatively run individual tests:
$ cd tests
$ ./<test>.py [<class>[.<test>]]
Functional Tests
================
Because compose is quite complex process and not everything is covered with
unit tests yet, the easiest way how to test if your changes did not break
anything badly is to start a compose on a relatively small and well defined
package set:
$ cd tests
$ ./test_compose.sh

View File

@ -43,5 +43,6 @@ setup(
('/usr/share/pungi', glob.glob('share/*.ks')),
('/usr/share/pungi', glob.glob('share/*.dtd')),
('/usr/share/pungi/multilib', glob.glob('share/multilib/*')),
]
],
test_suite = "tests",
)

View File

@ -1,44 +0,0 @@
Running pungi4 tests
Pungi4 is an utility to perform composes of rpms, as such we will need some
rpms to perform composes on.
In this directory you will find a small utility called 'createtestdata.py' that
takes two arguments, first is the package manifest JSON file that will contain
the list of packages that are architecture specific, the list of architectures
to build them for, and finally the packages that are noarch. (Don't worry about
your dev machine being the wrong arch as needed to be produced, we're using an
utility library called rpmfluff[0] that's faking a lot of this for us)
Before we run any tests we will need to create a repo to work with using the
'createtestdata.py' script. NOTE: This script requires both the 'python-click
and 'python-rpmfluff' packages.
$ ./createtestdata.py --pkgfile pkgs.json --outdir .
You will now find a directory called ./repo in the current directory, this is
setup exactly as the pungi tests need it and you are now ready to run tests.
Next you will find a hand full of scripts named test_* and these are to run the
actual tests. There is also a small wrapper called 'run_all_tests.sh' that will
run all scripts prefixed with test_* in the current directory.
$ ./run_all_tests.sh
Or alternatively, select the tests you want to run and run them one by one:
$ ./test_arch.py
......
----------------------------------------------------------------------
Ran 6 tests in 0.001s
OK
$ ./test_pathmatch.py
...
----------------------------------------------------------------------
Ran 3 tests in 0.001s
OK
[0] - https://fedorahosted.org/rpmfluff/

0
tests/__init__.py Normal file
View File

View File

@ -1,150 +0,0 @@
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
import os
import tempfile
import shutil
import libcomps
from contextlib import contextmanager
#import pungi.phases.pkgsets.pkgsets
from rpmfluff import SimpleRpmBuild
# helpers for creating RPMs to test with
@contextmanager
def in_tempdir(outdir, prefix='_'):
"""
py:class:: in_tempdir(prefix='_')
Context manager for the rpmbuild tempdir
"""
oldcwd = os.getcwd()
tmpdir = tempfile.mkdtemp(prefix=prefix)
os.chdir(tmpdir)
yield
os.chdir(oldcwd)
shutil.rmtree(tmpdir)
@contextmanager
def in_dir(directory):
"""
py:class:: in_dir(dir)
Context manager to handle things in a generic method
"""
oldcwd = os.getcwd()
tmpdir = tempfile.mkdtemp()
os.chdir(tmpdir)
yield
os.chdir(oldcwd)
def make_rpm(outdir, archlist, name, version='1.0', release='1'):
"""
py:function:: make_rpm(outdir, name='test', version='1.0', release='1', archlist=None)
Create the fake test rpms
"""
if (archlist is None):
raise TypeError( "No defined architectures for make_rpm")
abs_outdir = os.path.abspath(outdir)
if not os.path.isdir(abs_outdir):
os.mkdir(abs_outdir)
p = SimpleRpmBuild(name, version, release, archlist)
with in_tempdir(abs_outdir, prefix="tmppkgs"):
p.make()
srpm_outdir = os.path.join(
abs_outdir,
"repo",
"src",
)
if not os.path.isdir(srpm_outdir):
os.makedirs(srpm_outdir)
srpmfile = p.get_built_srpm()
src_outfile = os.path.join(
os.path.abspath(abs_outdir),
"repo",
'src',
os.path.basename(srpmfile)
)
shutil.move(srpmfile, src_outfile)
for arch in archlist:
arch_outdir = os.path.join(
abs_outdir,
"repo",
arch,
)
if not os.path.isdir(arch_outdir):
os.makedirs(arch_outdir)
rpmfile = p.get_built_rpm(arch)
bin_outfile = os.path.join(
os.path.abspath(abs_outdir),
"repo",
arch,
os.path.basename(rpmfile)
)
shutil.move(rpmfile, bin_outfile)
return p
def get_rpm_list_from_comps(compspath):
"""
py:function:: get_rpm_list_from_comps(compspath)
Return a list of rpms from a compsfile
"""
pkg_list = []
comps = libcomps.Comps()
comps.fromxml_f(compspath)
for group in comps.groups:
for pkg in comps.groups[group.id].packages:
pkg_list.append(pkg.name)
return pkg_list
if __name__ == "__main__":
import click
import json
@click.command()
@click.option('--pkgfile', default=None, required=True,
help="Path to json pkg file")
@click.option('--outdir', default=None, required=True,
help="Directory to create temp dummy repo")
def createtestdata(pkgfile, outdir):
pkgdata = json.loads(open(pkgfile,'r').read())
for pkg in pkgdata['archpkgs']:
make_rpm(outdir, pkgdata['archs'], pkg)
for pkg in pkgdata['noarchpkgs']:
make_rpm(outdir, ['noarch'], pkg)
os.popen('/usr/bin/createrepo %s' % os.path.join(outdir, "repo"))
createtestdata()

71
tests/data/specs/build.sh Executable file
View File

@ -0,0 +1,71 @@
#!/bin/sh
# run this script to (re-)generate ../repo and ../repo-krb5-lookaside directories
# Requirements:
# * createrepo_c
# * rpmbuild
#set -e
DIR=$(dirname $(readlink -f $0))
rm -rf $DIR/../repo
rm -rf $DIR/../repo-krb5-lookaside
for spec in $DIR/*.spec; do
echo "Building $spec..."
for target in i686 x86_64 ppc ppc64 s390 s390x; do
if [ "$(basename $spec)" == "dummy-foo32.spec" ]; then
if [ "$target" == "x86_64" -o "$target" == "ppc64" -o "$target" == "s390x" ]; then
continue
fi
fi
if [ "$(basename $spec)" == "dummy-glibc-2.14-4.spec" ]; then
if [ "$target" == "i686" -o "$target" == "ppc" -o "$target" == "s390" ]; then
continue
fi
fi
if [ "$(basename $spec)" == "dummy-AdobeReader_enu.spec" ]; then
continue
fi
if [ "$(basename $spec)" == "dummy-skype.spec" ]; then
continue
fi
echo "Building ${spec/.spec/} for $target"
rpmbuild --quiet --target=$target -ba --nodeps --define "_srcrpmdir $DIR/../repo/src" --define "_rpmdir $DIR/../repo" $spec
done
done
# AdobeReader_enu is nosrc for i486 -> handle this special case separately
spec="$DIR/dummy-AdobeReader_enu.spec"
target="i486"
echo "Building ${spec/.spec/} for $target"
rpmbuild --quiet --target=$target -ba --nodeps --define "_srcrpmdir $DIR/../repo/src" --define "_rpmdir $DIR/../repo" --define "_sourcedir $DIR" $spec
# Skype is for i586 -> handle this special case separately
# build only binaries
spec="$DIR/dummy-skype.spec"
target="i586"
echo "Building ${spec/.spec/} for $target"
rpmbuild --quiet --target=$target -bb --nodeps --define "_srcrpmdir $DIR/../repo/src" --define "_rpmdir $DIR/../repo" --define "_sourcedir $DIR/" $spec
# create main repo
echo "Creating main repository"
createrepo_c --quiet --update --groupfile $DIR/../dummy-comps.xml $DIR/../repo
# create lookaside repo for krb5
echo "Creating lookaside repository"
mkdir -p $DIR/../repo-krb5-lookaside
cp $(find $DIR/../repo/ -type f -name '*krb5*.rpm') $DIR/../repo-krb5-lookaside
createrepo_c --quiet --update $DIR/../repo-krb5-lookaside
echo "DONE: Test data created"

Binary file not shown.

View File

@ -0,0 +1,37 @@
Name: dummy-AdobeReader_enu
Version: 9.5.1
Release: 1
License: LGPLv2
Summary: A dummy AdobeReader_enu package
Requires: dummy-glibc
Source0: %{name}-%{version}.tar.gz
NoSource: 0
ExclusiveArch: i486
%description
A dummy AdobeReader_enu package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 9.5.1-1
- First release

View File

@ -0,0 +1,187 @@
Name: dummy-atlas
Version: 3.8.4
Release: 7
License: LGPLv2
Summary: A dummy atlas package
%description
A dummy atlas package
%package devel
Summary: A dummy atlas-devel package
Requires: %{name} = %{version}-%{release}
%description devel
A dummy atlas-devel package
# ----------
%ifarch x86_64
%package sse3
Summary: A dummy atlas-sse3 package
Provides: %{name} = %{version}-%{release}
%description sse3
A dummy atlas-sse3 package
%package sse3-devel
Summary: A dummy atlas-sse3-devel package
Requires: %{name}-sse3 = %{version}-%{release}
%description sse3-devel
A dummy atlas-sse3-devel package
%endif
# ----------
%ifarch %{ix86}
%package 3dnow
Summary: A dummy atlas-3dnow package
Provides: %{name} = %{version}-%{release}
%description 3dnow
A dummy atlas-3dnow package
%package 3dnow-devel
Summary: A dummy atlas-3dnow-devel package
Requires: %{name}-3dnow = %{version}-%{release}
%description 3dnow-devel
A dummy atlas-3dnow-devel package
%package sse
Summary: A dummy atlas-sse package
Provides: %{name} = %{version}-%{release}
%description sse
A dummy atlas-sse package
%package sse-devel
Summary: A dummy atlas-sse-devel package
Requires: %{name}-sse = %{version}-%{release}
%description sse-devel
A dummy atlas-sse-devel package
%package sse2
Summary: A dummy atlas-sse2 package
Provides: %{name} = %{version}-%{release}
%description sse2
A dummy atlas-sse2 package
%package sse2-devel
Summary: A dummy atlas-sse2-devel package
Requires: %{name}-sse2 = %{version}-%{release}
%description sse2-devel
A dummy atlas-sse2-devel package
%package sse3
Summary: A dummy atlas-sse3 package
Provides: %{name} = %{version}-%{release}
%description sse3
A dummy atlas-sse3 package
%package sse3-devel
Summary: A dummy atlas-sse3-devel package
Requires: %{name}-sse3 = %{version}-%{release}
%description sse3-devel
A dummy atlas-sse3-devel package
%endif
# ----------
%ifarch s390 s390x
%package z196
Summary: A dummy atlas-z196 package
Provides: %{name} = %{version}-%{release}
%description z196
A dummy atlas-z196 package
%package z196-devel
Summary: A dummy atlas-z196-devel package
Requires: %{name}-z196 = %{version}-%{release}
%description z196-devel
A dummy atlas-z196-devel package
%package z10
Summary: A dummy atlas-z10 package
Provides: %{name} = %{version}-%{release}
%description z10
A dummy atlas-z10 package
%package z10-devel
Summary: A dummy atlas-z10-devel package
Requires: %{name}-z10 = %{version}-%{release}
%description z10-devel
A dummy atlas-z10-devel package
%endif
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%files devel
%ifarch x86_64
%files sse3
%files sse3-devel
%endif
%ifarch %{ix86}
%files 3dnow
%files 3dnow-devel
%files sse
%files sse-devel
%files sse2
%files sse2-devel
%files sse3
%files sse3-devel
%endif
%ifarch s390 s390x
%files z196
%files z196-devel
%files z10
%files z10-devel
%endif
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 3.8.4-7
- First release

View File

@ -0,0 +1,36 @@
Name: dummy-basesystem
Version: 10.0
Release: 6
License: LGPLv2
Summary: A dummy basesystem package
Requires: dummy-filesystem
BuildArch: noarch
%description
A dummy basesystem package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 10.0-6
- First release

View File

@ -0,0 +1,51 @@
Name: dummy-bash
Version: 4.2.37
Release: 5
License: LGPLv2
Summary: A dummy bash package
Requires: dummy-glibc
%description
A dummy bash package
%package debuginfo
Summary: A dummy bash-debuginfo package
Group: Development/Debug
%description debuginfo
A dummy bash-debuginfo package
%package doc
Summary: A dummy bash-doc package
BuildArch: noarch
%description doc
A dummy bash-doc package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%files debuginfo
%files doc
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 4.2.37-5
- First release

View File

@ -0,0 +1,57 @@
Name: dummy-bash
Version: 4.2.37
Release: 6
License: LGPLv2
Summary: A dummy bash package
Requires: dummy-glibc
%if %__isa_bits == 32
Requires: libpthread.so.0(GLIBC_2.0)
%else
Requires: libpthread.so.0(GLIBC_2.3)(64bit)
%endif
%description
A dummy bash package
%package debuginfo
Summary: A dummy bash-debuginfo package
Group: Development/Debug
%description debuginfo
A dummy bash-debuginfo package
%package doc
Summary: A dummy bash-doc package
BuildArch: noarch
Requires: %{name}
%description doc
A dummy bash-doc package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%files debuginfo
%files doc
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 4.2.37-6
- First release

View File

@ -0,0 +1,42 @@
Name: dummy-elinks
Version: 2.6
Release: 2
License: LGPLv2
Summary: A dummy elinks package
Requires: dummy-glibc
%description
A dummy elinks package
%package debuginfo
Summary: A dummy elinks-debuginfo package
Group: Development/Debug
%description debuginfo
A dummy elinks-debuginfo package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%files debuginfo
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 2.6-2
- First release

View File

@ -0,0 +1,36 @@
Name: dummy-fcoe-target-utils
Version: 2.0
Release: 5
License: LGPLv2
Summary: A dummy fcoe-target-utils package
BuildArch: noarch
ExcludeArch: ppc s390 s390x
%description
A dummy fcoe-target-utils package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 2.0-5
- First release

View File

@ -0,0 +1,34 @@
Name: dummy-filesystem
Version: 4.2.37
Release: 6
License: LGPLv2
Summary: A dummy filesystem package
%description
A dummy filesystem package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 4.2.37-6
- First release

View File

@ -0,0 +1,44 @@
Name: dummy-firefox
Version: 16.0.1
Release: 1
License: LGPLv2
Summary: A dummy firefox package
BuildRequires: dummy-krb5-devel
BuildRequires: dummy-xulrunner
Requires: dummy-xulrunner
%description
A dummy firefox package
%package debuginfo
Summary: A dummy firefox-debuginfo package
Group: Development/Debug
%description debuginfo
A dummy firefox-debuginfo package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%files debuginfo
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 16.0.1-1
- First release

View File

@ -0,0 +1,42 @@
Name: dummy-foo32
Version: 1
Release: 1
License: LGPLv2
Summary: A dummy foo32 package
ExclusiveArch: i686 ppc s390
%description
A dummy foo32 package
%package doc
Summary: A dummy foo32-doc package
BuildArch: noarch
%description doc
A dummy foo32-doc package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%files doc
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 1-1
- First release

View File

@ -0,0 +1,41 @@
Name: dummy-freeipa
Version: 2.2.0
Release: 1
License: LGPLv2
Summary: A dummy freeipa package
%description
A dummy freeipa package
%package server
Summary: A dummy freeipa-server package
Requires: dummy-selinux-policy-base
%description server
A dummy freeipa-server package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%files server
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 2.2.0-1
- First release

View File

@ -0,0 +1,43 @@
Name: dummy-gfs2-utils
Version: 3.1.4
Release: 3
License: LGPLv2
Summary: A dummy gfs2-utils package
Requires: dummy-glibc
Requires: dummy-lvm2-devel
%description
A dummy gfs2-utils package
%package debuginfo
Summary: A dummy gfs2-utils-debuginfo package
Group: Development/Debug
%description debuginfo
A dummy gfs2-utils-debuginfo package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%files debuginfo
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 3.1.4-3
- First release

View File

@ -0,0 +1,78 @@
Name: dummy-glibc
Version: 2.14
Release: 5
License: LGPLv2
Summary: A dummy glibc package
Requires: %{name}-common = %{version}-%{release}
Requires: dummy-basesystem
%if %__isa_bits == 32
Provides: libc.so.6()
Provides: libpthread.so.0(GLIBC_2.0)
%else
Provides: libc.so.6()(64bit)
Provides: libpthread.so.0(GLIBC_2.3)(64bit)
%endif
%description
A dummy glibc package
%package common
Summary: A dummy glibc-common package
%description common
A dummy glibc-common package
%package -n dummy-nscd
Summary: A dummy nscd package
%description -n dummy-nscd
A dummy nscd package
%package debuginfo
Summary: A dummy glibc-debuginfo package
Group: Development/Debug
%description debuginfo
A dummy glibc-debuginfo package
%package debuginfo-common
Summary: A dummy glibc-debuginfo-common package
Group: Development/Debug
%description debuginfo-common
A dummy glibc-debuginfo-common package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%if %__isa_bits == 32
%ghost /lib/libc.so.6
%else
%ghost /lib64/libc.so.6
%endif
%files common
%files -n dummy-nscd
%files debuginfo
%files debuginfo-common
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 2.14-5
- First release

View File

@ -0,0 +1,42 @@
Name: dummy-httpd
Version: 2.2.21
Release: 1
License: LGPLv2
Summary: A dummy httpd package
Requires: dummy-glibc
%description
A dummy httpd package
%package debuginfo
Summary: A dummy httpd-debuginfo package
Group: Development/Debug
%description debuginfo
A dummy httpd-debuginfo package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%files debuginfo
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 2.2.21-1
- First release

View File

@ -0,0 +1,50 @@
Name: dummy-imsettings
Version: 1.2.9
Release: 1
License: LGPLv2
Summary: A dummy imsettings package
Requires: dummy-imsettings-desktop-module = %{version}-%{release}
%description
A dummy imsettings package
%package gnome
Summary: A dummy imsettings-gnome package
Provides: dummy-imsettings-desktop-module = %{version}-%{release}
%description gnome
A dummy imsettings-gnome package
%package qt
Summary: A dummy imsettings-qt package
Provides: dummy-imsettings-desktop-module = %{version}-%{release}
%description qt
A dummy imsettings-qt package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%files gnome
%files qt
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 5.2-6
- First release

View File

@ -0,0 +1,54 @@
Name: dummy-ipw3945-kmod
Version: 1.2.0
Release: 4.20
License: LGPLv2
Summary: A dummy ipw3945-kmod package
%description
A dummy ipw3945-kmod package
%package -n dummy-kmod-ipw3945
Summary: A dummy kmod-ipw3945 package
%description -n dummy-kmod-ipw3945
A dummy kmod-ipw3945 package
%package -n dummy-kmod-ipw3945-xen
Summary: A dummy kmod-ipw3945-xen package
%description -n dummy-kmod-ipw3945-xen
A dummy kmod-ipw3945-xen package
%package -n dummy-ipw3945-kmod-debuginfo
Summary: A dummy ipw3945-kmod-debuginfo package
Group: Development/Debug
%description -n dummy-ipw3945-kmod-debuginfo
A dummy ipw3945-kmod-debuginfo package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files -n dummy-kmod-ipw3945
%files -n dummy-kmod-ipw3945-xen
%files -n dummy-ipw3945-kmod-debuginfo
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 1.2.0-4.20
- First release

View File

@ -0,0 +1,48 @@
Name: dummy-kernel
Version: 3.1.0
Release: 1
License: LGPLv2
Summary: A dummy kernel package
%description
A dummy kernel package
%package headers
Summary: A dummy kernel-headers package
%description headers
A dummy kernel-headers package
%package doc
Summary: A dummy kernel-doc package
BuildArch: noarch
%description doc
A dummy kernel-doc package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%files headers
%files doc
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 3.1.0-1
- First release

View File

@ -0,0 +1,67 @@
Name: dummy-krb5
Version: 1.10
Release: 5
License: LGPLv2
Summary: A dummy krb5 package
Requires: dummy-glibc
Requires: %{name}-libs = %{version}-%{release}
BuildRequires: dummy-bash
%description
A dummy krb5 package
%package libs
Summary: A dummy krb5-libs package
%description libs
A dummy krb5-libs package
%package workstation
Summary: A dummy krb5-workstation package
%description workstation
A dummy krb5-workstation package
%package devel
Summary: A dummy krb5-devel package
Requires: %{name} = %{version}-%{release}
%description devel
A dummy krb5-devel package
%package debuginfo
Summary: A dummy krb5-debuginfo package
Group: Development/Debug
%description debuginfo
A dummy krb5-debuginfo package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%files libs
%files devel
%files workstation
%files debuginfo
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 1.10-5
- First release

View File

@ -0,0 +1,66 @@
Name: dummy-lvm2
Version: 2.02.84
Release: 4
License: LGPLv2
Summary: A dummy lvm2 package
Requires: dummy-glibc
Requires: %{name}-libs = %{version}-%{release}
%description
A dummy glibc package
%package libs
Summary: A dummy lvm2-libs package
%description libs
A dummy lvm2-libs package
%package cluster
Summary: A dummy lvm2-cluster package
Requires: %{name} = %{version}-%{release}
%description cluster
A dummy lvm2-cluster package
%package devel
Summary: A dummy lvm2-devel package
Requires: %{name} = %{version}-%{release}
%description devel
A dummy lvm2-devel package
%package debuginfo
Summary: A dummy lvm2-debuginfo package
Group: Development/Debug
%description debuginfo
A dummy lvm2-debuginfo package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%files libs
%files cluster
%files devel
%files debuginfo
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 2.02.84-4
- First release

View File

@ -0,0 +1,45 @@
Name: dummy-postfix
Version: 2.9.2
Release: 2
License: LGPLv2
Summary: A dummy postfix package
Requires: dummy-glibc
Provides: MTA
Provides: server(smtp)
Provides: smtpdaemon
%description
A dummy postfix package
%package debuginfo
Summary: A dummy postfix-debuginfo package
Group: Development/Debug
%description debuginfo
A dummy postfix-debuginfo package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%files debuginfo
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 2.9.2-2
- First release

View File

@ -0,0 +1,36 @@
Name: dummy-release-client-workstation
Version: 1.0.0
Release: 1
License: LGPLv2
Summary: A dummy release-client-workstation package
Provides: system-release
Provides: /etc/system-release
Provides: /etc/%{name}
%description
A dummy release-client-workstation package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 1.0.0-1
- First release

View File

@ -0,0 +1,36 @@
Name: dummy-release-client
Version: 1.0.0
Release: 1
License: LGPLv2
Summary: A dummy release-client package
Provides: system-release
Provides: /etc/system-release
Provides: /etc/%{name}
%description
A dummy release-client package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 1.0.0-1
- First release

View File

@ -0,0 +1,38 @@
Name: dummy-release-notes-cs-CZ
Version: 1.2
Release: 1
License: LGPLv2
Summary: A dummy release-notes-cs-CZ package
BuildArch: noarch
%description
A dummy release-notes-cs-CZ package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/share/doc/%{name}/
touch $RPM_BUILD_ROOT/usr/share/doc/%{name}/index.html
%clean
rm -rf $RPM_BUILD_ROOT
%files
%doc /usr/share/doc/%{name}/index.html
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 1.2-1
- First release

View File

@ -0,0 +1,38 @@
Name: dummy-release-notes-en-US
Version: 1.2
Release: 1
License: LGPLv2
Summary: A dummy release-notes-en-US package
BuildArch: noarch
%description
A dummy release-notes-en-US package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/share/doc/%{name}/
touch $RPM_BUILD_ROOT/usr/share/doc/%{name}/index.html
%clean
rm -rf $RPM_BUILD_ROOT
%files
%doc /usr/share/doc/%{name}/index.html
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 1.2-1
- First release

View File

@ -0,0 +1,35 @@
Name: dummy-release-notes
Version: 1.2
Release: 1
License: LGPLv2
Summary: A dummy release-notes package
BuildArch: noarch
%description
A dummy release-notes package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 1.2-1
- First release

View File

@ -0,0 +1,41 @@
Name: dummy-release-server
Version: 1.0.0
Release: 1
License: LGPLv2
Summary: A dummy release-server package
Provides: system-release
Provides: /etc/system-release
Provides: /etc/%{name}
%description
A dummy release-server package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/share/doc/dummy-relese-server/
touch $RPM_BUILD_ROOT/usr/share/doc/dummy-relese-server/EULA
touch $RPM_BUILD_ROOT/usr/share/doc/dummy-relese-server/EULA_cs
touch $RPM_BUILD_ROOT/usr/share/doc/dummy-relese-server/EULA_de
%clean
rm -rf $RPM_BUILD_ROOT
%files
/usr/share/doc/dummy-relese-server/EULA
/usr/share/doc/dummy-relese-server/EULA_cs
/usr/share/doc/dummy-relese-server/EULA_de
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 1.0.0-1
- First release

View File

@ -0,0 +1,48 @@
Name: dummy-resource-agents
Version: 3.9.5
Release: 8
License: LGPLv2
Summary: A dummy resource-agents package
%description
A dummy resource-agents package
%package -n dummy-glusterfs-resource-agents
Summary: A dummy glusterfs-resource-agents package
Requires: %{name} = %{version}-%{release}
%description -n dummy-glusterfs-resource-agents
A dummy glusterfs-resource-agents package
%package debuginfo
Summary: A dummy resource-agents-debuginfo package
Group: Development/Debug
%description debuginfo
A dummy resource-agents-debuginfo package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%files -n dummy-glusterfs-resource-agents
%files debuginfo
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 3.9.5-8
- First release

View File

@ -0,0 +1,68 @@
Name: dummy-selinux-policy
Version: 3.10.0
Release: 121
License: LGPLv2
Summary: A dummy selinux-policy package
BuildArch: noarch
%description
A dummy selinux-policy package
%package targeted
Summary: A dummy selinux-policy-targeted package
Provides: dummy-selinux-policy-base
Requires: %{name} = %{version}-%{release}
%description targeted
A dummy selinux-policy-targeted package
%package mls
Summary: A dummy selinux-policy-mls package
Provides: dummy-selinux-policy-base
Requires: %{name} = %{version}-%{release}
%description mls
A dummy selinux-policy-mls package
%package minimal
Summary: A dummy selinux-policy-minimal package
Provides: dummy-selinux-policy-base
Requires: %{name} = %{version}-%{release}
%description minimal
A dummy selinux-policy-minimal package
%package doc
Summary: A dummy selinux-policy-doc package
Requires: %{name} = %{version}-%{release}
%description doc
A dummy selinux-policy-doc package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files targeted
%files mls
%files minimal
%files doc
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 3.10.0-121
- First release

View File

@ -0,0 +1,45 @@
Name: dummy-sendmail
Version: 8.14.5
Release: 12
License: LGPLv2
Summary: A dummy sendmail package
Requires: dummy-glibc
Provides: MTA
Provides: server(smtp)
Provides: smtpdaemon
%description
A dummy sendmail package
%package debuginfo
Summary: A dummy sendmail-debuginfo package
Group: Development/Debug
%description debuginfo
A dummy sendmail-debuginfo package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%files debuginfo
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 8.14.5-12
- First release

View File

@ -0,0 +1,40 @@
Name: dummy-skype
Version: 4.2.0.13
Release: 1
License: LGPLv2
Summary: A dummy skype package
ExclusiveArch: i586
%if %__isa_bits == 32
Requires: libc.so.6()
%else
Requires: libc.so.6()(64bit)
%endif
%description
A dummy skype package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 4.2.0.13-1
- First release

View File

@ -0,0 +1,42 @@
Name: dummy-tftp
Version: 5.2
Release: 6
License: LGPLv2
Summary: A dummy tftp package
Requires: dummy-glibc
%description
A dummy tftp package
%package debuginfo
Summary: A dummy tftp-debuginfo package
Group: Development/Debug
%description debuginfo
A dummy tftp-debuginfo package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%files debuginfo
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 5.2-6
- First release

View File

@ -0,0 +1,43 @@
Name: dummy-vacation
Version: 1.2.7.1
Release: 1
License: LGPLv2
Summary: A dummy vacation package
Requires: dummy-glibc
Requires: smtpdaemon
%description
A dummy vacation package
%package debuginfo
Summary: A dummy vacation-debuginfo package
Group: Development/Debug
%description debuginfo
A dummy vacation-debuginfo package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%files debuginfo
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 1.2.7.1-1
- First release

View File

@ -0,0 +1,42 @@
Name: dummy-xulrunner
Version: 16.0.1
Release: 1
License: LGPLv2
Summary: A dummy xulrunner package
Requires: dummy-glibc
%description
A dummy xulrunner package
%package debuginfo
Summary: A dummy xulrunner-debuginfo package
Group: Development/Debug
%description debuginfo
A dummy xulrunner-debuginfo package
#%prep
#%setup -q
%build
echo OK
%install
rm -rf $RPM_BUILD_ROOT
mkdir $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%files debuginfo
%changelog
* Tue Oct 18 2011 Daniel Mach <dmach@redhat.com> - 16.0.1-1
- First release

View File

@ -1,116 +0,0 @@
{
"archpkgs" : [
"dummy-AdobeReader_enu",
"dummy-atlas",
"dummy-atlas-3dnow",
"dummy-atlas-3dnow-devel",
"dummy-atlas-devel",
"dummy-atlas-sse",
"dummy-atlas-sse2",
"dummy-atlas-sse2-devel",
"dummy-atlas-sse3",
"dummy-atlas-sse3-devel",
"dummy-atlas-sse-devel",
"dummy-atlas-z10",
"dummy-atlas-z10-devel",
"dummy-atlas-z196",
"dummy-atlas-z196-devel",
"dummy-basesystem",
"dummy-bash",
"dummy-bash-debuginfo",
"dummy-bash-doc",
"dummy-elinks",
"dummy-elinks-debuginfo",
"dummy-fcoe-target-utils",
"dummy-filesystem",
"dummy-firefox",
"dummy-firefox-debuginfo",
"dummy-foo32",
"dummy-foo32-doc",
"dummy-freeipa",
"dummy-freeipa-server",
"dummy-gfs2-utils",
"dummy-gfs2-utils-debuginfo",
"dummy-glibc",
"dummy-glibc-common",
"dummy-glibc-debuginfo",
"dummy-glibc-debuginfo-common",
"dummy-glusterfs-resource-agents",
"dummy-httpd",
"dummy-httpd-debuginfo",
"dummy-imsettings",
"dummy-imsettings-gnome",
"dummy-imsettings-qt",
"dummy-ipw3945-kmod",
"dummy-ipw3945-kmod-debuginfo",
"dummy-kernel",
"dummy-kernel-doc",
"dummy-kernel-headers",
"dummy-kmod-ipw3945",
"dummy-kmod-ipw3945-xen",
"dummy-krb5",
"dummy-krb5-debuginfo",
"dummy-krb5-devel",
"dummy-krb5-libs",
"dummy-krb5-workstation",
"dummy-lvm2",
"dummy-lvm2-cluster",
"dummy-lvm2-debuginfo",
"dummy-lvm2-devel",
"dummy-lvm2-libs",
"dummy-nscd",
"dummy-postfix",
"dummy-postfix-debuginfo",
"dummy-release-client",
"dummy-release-client-workstation",
"dummy-release-notes",
"dummy-release-notes-cs-CZ",
"dummy-release-notes-en-US",
"dummy-release-server",
"dummy-resource-agents",
"dummy-resource-agents-debuginfo",
"dummy-selinux-policy",
"dummy-selinux-policy-doc",
"dummy-selinux-policy-minimal",
"dummy-selinux-policy-mls",
"dummy-selinux-policy-targeted",
"dummy-sendmail",
"dummy-sendmail-debuginfo",
"dummy-skype",
"dummy-tftp",
"dummy-tftp-debuginfo",
"dummy-vacation",
"dummy-vacation-debuginfo",
"dummy-xulrunner",
"dummy-xulrunner-debuginfo"
],
"archs" : [
"i486",
"i586",
"i686",
"ppc",
"ppc64",
"s390",
"s390x",
"x86_64",
"src"
],
"noarchpkgs" : [
"dummy-basesystem",
"dummy-bash-doc",
"dummy-bash-doc",
"dummy-fcoe-target-utils",
"dummy-foo32-doc",
"dummy-kernel-doc",
"dummy-release-notes",
"dummy-release-notes-cs-CZ",
"dummy-release-notes-en-US",
"dummy-selinux-policy-doc",
"dummy-selinux-policy-minimal",
"dummy-selinux-policy-mls",
"dummy-selinux-policy-targeted"
]
}

View File

@ -1,7 +0,0 @@
#!/bin/bash
# Thin wrapper to run all tests
for t in $(dirname $0)/test_*
do
$t
done

View File

@ -9,10 +9,7 @@ import sys
import tempfile
import shutil
here = sys.path[0]
if here != '/usr/bin':
# Git checkout
sys.path[0] = os.path.dirname(here)
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
from pungi.arch import *

View File

@ -1,6 +1,6 @@
#!/bin/sh
export PYTHONPATH=$(pwd)/pmd:$(pwd)/../
export PYTHONPATH=$(pwd)/../
export PATH=$(pwd)/../bin:$PATH
mkdir -p _composes
@ -8,5 +8,5 @@ mkdir -p _composes
pungi-koji \
--target-dir=_composes \
--old-composes=_composes \
--config=dummy-pungi.conf \
--config=data/dummy-pungi.conf \
--test

View File

@ -6,10 +6,7 @@ import unittest
import os
import sys
here = sys.path[0]
if here != '/usr/bin':
# Git checkout
sys.path[0] = os.path.dirname(here)
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
from pungi.pathmatch import PathMatch, head_tail_split
@ -44,7 +41,7 @@ class TestPathMatch(unittest.TestCase):
def test_1(self):
self.pm["/*"] = "/star1"
self.assertEqual(self.pm._final_patterns.keys(), ["*"])
self.assertEqual(list(self.pm._final_patterns.keys()), ["*"])
self.assertEqual(self.pm._values, [])
self.assertEqual(self.pm._final_patterns["*"]._values, ["/star1"])
self.assertEqual(sorted(self.pm["/lib"]), ["/star1"])
@ -60,8 +57,8 @@ class TestPathMatch(unittest.TestCase):
def test_2(self):
self.pm["/*/*"] = "/star/star1"
self.assertEqual(self.pm._patterns.keys(), ["*"])
self.assertEqual(self.pm._patterns["*"]._final_patterns.keys(), ["*"])
self.assertEqual(list(self.pm._patterns.keys()), ["*"])
self.assertEqual(list(self.pm._patterns["*"]._final_patterns.keys()), ["*"])
self.assertEqual(self.pm._patterns["*"]._final_patterns["*"]._values, ["/star/star1"])
self.assertEqual(sorted(self.pm["/lib/asd"]), ["/star/star1"])