PR#12 Merged Add some basic testing, with dummy rpm creation and simple README

Proposed 2 years ago by maxamillion
Modified 2 years ago
From forks/maxamillion/pungi add_tests  into pungi master
file changed

 1 @@ -922,7 +922,6 @@ 

 2                   pprint.pformat(list(sorted(failed)))))

 3               self.logger.info("Couldn't find %i of %i srpms." % (

 4                   len(failed), len(self.src_by_bin)))

 5 -             raise RuntimeError("Could not find all srpms.")

 6   

 7       def add_srpms(self, po_list=None):

 8           """Cycle through the list of package objects and

 9 @@ -932,11 +931,14 @@

10           srpms = set()

11           po_list = po_list or self.po_list

12           for po in sorted(po_list):

13 -             srpm_po = self.sourcerpm_srpmpo_map[po.sourcerpm]

14 -             if srpm_po in self.completed_add_srpms:

15 +             try:

16 +                 srpm_po = self.sourcerpm_srpmpo_map[po.sourcerpm]

17 +             except KeyError:

18 +                 self.logger.error("Cannot get source RPM '%s' for %s" % (po.sourcerpm, po.nvra))

19 +                 srpm_po = None

20 + 

21 +             if srpm_po is None:

22                   continue

23 -             msg = "Added source package %s.%s (repo: %s)" % (srpm_po.name, srpm_po.arch, srpm_po.repoid)

24 -             self.add_source(srpm_po, msg)

25   

26               # flags

27               if po in self.input_packages:

28 @@ -948,6 +950,12 @@

29               if po in self.multilib_packages:

30                   self.multilib_packages.add(srpm_po)

31   

32 +             if srpm_po in self.completed_add_srpms:

33 +                 continue

34 + 

35 +             msg = "Added source package %s.%s (repo: %s)" % (srpm_po.name, srpm_po.arch, srpm_po.repoid)

36 +             self.add_source(srpm_po, msg)

37 + 

38               self.completed_add_srpms.add(srpm_po)

39               srpms.add(srpm_po)

40           return srpms
file added

 1 @@ -0,0 +1,44 @@ 

 2 + Running pungi4 tests

 3 + 

 4 + Pungi4 is an utility to perform composes of rpms, as such we will need some

 5 + rpms to perform composes on.

 6 + 

 7 + In this directory you will find a small utility called 'createtestdata.py' that

 8 + takes two arguments, first is the package manifest JSON file that will contain

 9 + the list of packages that are architecture specific, the list of architectures

10 + to build them for, and finally the packages that are noarch. (Don't worry about

11 + your dev machine being the wrong arch as needed to be produced, we're using an

12 + utility library called rpmfluff[0] that's faking a lot of this for us)

13 + 

14 + Before we run any tests we will need to create a repo to work with using the

15 + 'createtestdata.py' script. NOTE: This script requires both the 'python-click

16 + and 'python-rpmfluff' packages.

17 + 

18 +     $ ./createtestdata.py --pkgfile pkgs.json --outdir .

19 + 

20 + You will now find a directory called ./repo in the current directory, this is

21 + setup exactly as the pungi tests need it and you are now ready to run tests.

22 + 

23 + Next you will find a hand full of scripts named test_* and these are to run the

24 + actual tests. There is also a small wrapper called 'run_all_tests.sh' that will

25 + run all scripts prefixed with test_* in the current directory.

26 + 

27 +     $ ./run_all_tests.sh

28 + 

29 + Or alternatively, select the tests you want to run and run them one by one:

30 + 

31 +     $ ./test_arch.py

32 +     ......

33 +     ----------------------------------------------------------------------

34 +     Ran 6 tests in 0.001s

35 + 

36 +     OK

37 + 

38 +     $ ./test_pathmatch.py

39 +     ...

40 +     ----------------------------------------------------------------------

41 +     Ran 3 tests in 0.001s

42 + 

43 +     OK

44 + 

45 + [0] - https://fedorahosted.org/rpmfluff/
file added

  1 @@ -0,0 +1,150 @@ 

  2 + #!/usr/bin/env python2

  3 + # -*- coding: utf-8 -*-

  4 + 

  5 + 

  6 + # This program is free software; you can redistribute it and/or modify

  7 + # it under the terms of the GNU General Public License as published by

  8 + # the Free Software Foundation; version 2 of the License.

  9 + #

 10 + # This program is distributed in the hope that it will be useful,

 11 + # but WITHOUT ANY WARRANTY; without even the implied warranty of

 12 + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

 13 + # GNU Library General Public License for more details.

 14 + #

 15 + # You should have received a copy of the GNU General Public License

 16 + # along with this program; if not, write to the Free Software

 17 + # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

 18 + 

 19 + import os

 20 + import tempfile

 21 + import shutil

 22 + import libcomps

 23 + from contextlib import contextmanager

 24 + 

 25 + #import pungi.phases.pkgsets.pkgsets

 26 + from rpmfluff import SimpleRpmBuild

 27 + 

 28 + # helpers for creating RPMs to test with

 29 + @contextmanager

 30 + def in_tempdir(outdir, prefix='_'):

 31 +     """

 32 +     py:class:: in_tempdir(prefix='_')

 33 + 

 34 +     Context manager for the rpmbuild tempdir

 35 +     """

 36 +     oldcwd = os.getcwd()

 37 +     tmpdir = tempfile.mkdtemp(prefix=prefix)

 38 +     os.chdir(tmpdir)

 39 +     yield

 40 +     os.chdir(oldcwd)

 41 +     shutil.rmtree(tmpdir)

 42 + 

 43 + @contextmanager

 44 + def in_dir(directory):

 45 +     """

 46 +     py:class:: in_dir(dir)

 47 + 

 48 +     Context manager to handle things in a generic method

 49 +     """

 50 +     oldcwd = os.getcwd()

 51 +     tmpdir = tempfile.mkdtemp()

 52 +     os.chdir(tmpdir)

 53 +     yield

 54 +     os.chdir(oldcwd)

 55 + 

 56 + def make_rpm(outdir, archlist, name, version='1.0', release='1'):

 57 +     """

 58 +     py:function:: make_rpm(outdir, name='test', version='1.0', release='1', archlist=None)

 59 + 

 60 +     Create the fake test rpms

 61 +     """

 62 + 

 63 +     if (archlist is None):

 64 +         raise TypeError( "No defined architectures for make_rpm")

 65 + 

 66 +     abs_outdir = os.path.abspath(outdir)

 67 + 

 68 +     if not os.path.isdir(abs_outdir):

 69 +         os.mkdir(abs_outdir)

 70 + 

 71 +     p = SimpleRpmBuild(name, version, release, archlist)

 72 +     with in_tempdir(abs_outdir, prefix="tmppkgs"):

 73 +         p.make()

 74 + 

 75 +         srpm_outdir = os.path.join(

 76 +             abs_outdir,

 77 +             "repo",

 78 +             "src",

 79 +         )

 80 + 

 81 +         if not os.path.isdir(srpm_outdir):

 82 +             os.makedirs(srpm_outdir)

 83 + 

 84 +         srpmfile = p.get_built_srpm()

 85 +         src_outfile = os.path.join(

 86 +             os.path.abspath(abs_outdir),

 87 +             "repo",

 88 +             'src',

 89 +             os.path.basename(srpmfile)

 90 +         )

 91 +         shutil.move(srpmfile, src_outfile)

 92 + 

 93 +         for arch in archlist:

 94 + 

 95 +             arch_outdir = os.path.join(

 96 +                 abs_outdir,

 97 +                 "repo",

 98 +                 arch,

 99 +             )

100 +             if not os.path.isdir(arch_outdir):

101 +                 os.makedirs(arch_outdir)

102 + 

103 + 

104 +             rpmfile = p.get_built_rpm(arch)

105 +             bin_outfile = os.path.join(

106 +                 os.path.abspath(abs_outdir),

107 +                 "repo",

108 +                 arch,

109 +                 os.path.basename(rpmfile)

110 +             )

111 +             shutil.move(rpmfile, bin_outfile)

112 +     return p

113 + 

114 + def get_rpm_list_from_comps(compspath):

115 +     """

116 +     py:function:: get_rpm_list_from_comps(compspath)

117 + 

118 +     Return a list of rpms from a compsfile

119 +     """

120 + 

121 +     pkg_list = []

122 + 

123 +     comps = libcomps.Comps()

124 +     comps.fromxml_f(compspath)

125 + 

126 +     for group in comps.groups:

127 +         for pkg in comps.groups[group.id].packages:

128 +             pkg_list.append(pkg.name)

129 + 

130 +     return pkg_list

131 + 

132 + 

133 + if __name__ == "__main__":

134 +     import click

135 +     import json

136 + 

137 +     @click.command()

138 +     @click.option('--pkgfile', default=None, required=True,

139 +                   help="Path to json pkg file")

140 +     @click.option('--outdir', default=None, required=True,

141 +                   help="Directory to create temp dummy repo")

142 +     def createtestdata(pkgfile, outdir):

143 +         pkgdata = json.loads(open(pkgfile,'r').read())

144 +         for pkg in pkgdata['archpkgs']:

145 +             make_rpm(outdir, pkgdata['archs'], pkg)

146 +         for pkg in pkgdata['noarchpkgs']:

147 +             make_rpm(outdir, ['noarch'], pkg)

148 + 

149 +         os.popen('/usr/bin/createrepo %s' % os.path.join(outdir, "repo"))

150 + 

151 +     createtestdata()
file added

  1 @@ -0,0 +1,163 @@ 

  2 + <?xml version="1.0" encoding="UTF-8"?>

  3 + <!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">

  4 + <comps>

  5 + 

  6 +   <!-- GROUPS -->

  7 + 

  8 +   <group>

  9 +     <id>core</id>

 10 +     <name>Core</name>

 11 +     <description>Smallest possible installation</description>

 12 +     <default>true</default>

 13 +     <uservisible>false</uservisible>

 14 +     <packagelist>

 15 +       <packagereq type="mandatory">dummy-bash</packagereq>

 16 +     </packagelist>

 17 +   </group>

 18 + 

 19 +   <group>

 20 +     <id>standard</id>

 21 +     <name>Standard</name>

 22 +     <description>Common set of utilities that extend the minimal installation.</description>

 23 +     <default>false</default>

 24 +     <uservisible>true</uservisible>

 25 +     <packagelist>

 26 +       <packagereq>dummy-lvm2</packagereq>

 27 +     </packagelist>

 28 +   </group>

 29 + 

 30 +   <group>

 31 +     <id>text-internet</id>

 32 +     <name>Text-based Internet</name>

 33 +     <description>This group includes text-based email, Web, and chat clients.  These applications do not require the X Window System.</description>

 34 +     <default>false</default>

 35 +     <uservisible>true</uservisible>

 36 +     <packagelist>

 37 +       <packagereq type="optional">dummy-elinks</packagereq>

 38 +       <packagereq type="optional">dummy-tftp</packagereq>

 39 +     </packagelist>

 40 +   </group>

 41 + 

 42 +   <group>

 43 +     <id>firefox</id>

 44 +     <name>Firefox Web Browser</name>

 45 +     <description>The Firefox web browser</description>

 46 +     <default>false</default>

 47 +     <uservisible>false</uservisible>

 48 +     <packagelist>

 49 +       <packagereq>dummy-firefox</packagereq>

 50 +       <packagereq>dummy-icedtea-web</packagereq>

 51 +     </packagelist>

 52 +   </group>

 53 + 

 54 +   <group arch="i386 x86_64">

 55 +     <id>skype</id>

 56 +     <name>Skype</name>

 57 +     <description>Free internet telephony</description>

 58 +     <default>false</default>

 59 +     <uservisible>true</uservisible>

 60 +     <packagelist>

 61 +       <packagereq>dummy-skype</packagereq>

 62 +     </packagelist>

 63 +   </group>

 64 + 

 65 +   <group arch="x86_64">

 66 +     <id>resilient-storage</id>

 67 +     <name>Resilient Storage</name>

 68 +     <description>Clustered storage, including the GFS2 filesystem.</description>

 69 +     <default>false</default>

 70 +     <uservisible>true</uservisible>

 71 +     <packagelist>

 72 +       <packagereq type="mandatory">dummy-gfs2-utils</packagereq>

 73 +       <packagereq type="mandatory">dummy-lvm2-cluster</packagereq>

 74 +       <packagereq type="mandatory">dummy-pacemaker</packagereq>

 75 +       <packagereq type="mandatory">dummy-resource-agents</packagereq>

 76 +     </packagelist>

 77 +   </group>

 78 + 

 79 +   <group>

 80 +     <id>gluster</id>

 81 +     <name>Gluster</name>

 82 +     <description>GlusterFS support packages</description>

 83 +     <default>false</default>

 84 +     <uservisible>true</uservisible>

 85 +     <packagelist>

 86 +       <packagereq type="mandatory">dummy-glusterfs-resource-agents</packagereq>

 87 +     </packagelist>

 88 +   </group>

 89 + 

 90 +   <group>

 91 +     <id>basic-desktop</id>

 92 +     <name>Desktop</name>

 93 +     <description>Basic Desktop packages</description>

 94 +     <default>true</default>

 95 +     <uservisible>true</uservisible>

 96 +     <packagelist>

 97 +       <packagereq type="conditional" requires="dummy-imsettings">dummy-imsettings-gnome</packagereq>

 98 +     </packagelist>

 99 +   </group>

100 + 

101 +   <!-- ENVIRONMENTS -->

102 + 

103 +   <environment>

104 +     <id>minimal</id>

105 +     <name>Minimal install</name>

106 +     <description>Basic functionality.</description>

107 +     <display_order>99</display_order>

108 +     <grouplist>

109 +       <groupid>core</groupid>

110 +     </grouplist>

111 +     <optionlist>

112 +     </optionlist>

113 +   </environment>

114 + 

115 +   <environment>

116 +     <id>desktop</id>

117 +     <name>Desktop</name>

118 +     <description>Desktop.</description>

119 +     <display_order>10</display_order>

120 +     <grouplist>

121 +       <groupid>core</groupid>

122 +       <groupid>standard</groupid>

123 +       <groupid>basic-desktop</groupid>

124 +     </grouplist>

125 +     <optionlist>

126 +     </optionlist>

127 +   </environment>

128 + 

129 +   <environment>

130 +     <id>empty</id>

131 +     <name>Empty</name>

132 +     <description>Should not appear in the repos.</description>

133 +     <display_order>10</display_order>

134 +     <grouplist>

135 +       <groupid>does-not-exist</groupid>

136 +     </grouplist>

137 +   </environment>

138 + 

139 +   <!-- LANGPACKS -->

140 + 

141 +   <langpacks>

142 +     <match install="LabPlot-doc-%s" name="LabPlot-doc"/>

143 +     <match install="aspell-%s" name="aspell"/>

144 +     <match install="autocorr-%s" name="autocorr-en"/>

145 +     <match install="calligra-l10n-%s" name="calligra-core"/>

146 +     <match install="childsplay-alphabet_sounds_%s" name="childsplay"/>

147 +     <match install="eclipse-nls-%s" name="eclipse-platform"/>

148 +     <match install="firefox-langpack-%s" name="firefox"/>

149 +     <match install="gcompris-sound-%s" name="gcompris"/>

150 +     <match install="gimp-help-%s" name="gimp-help"/>

151 +     <match install="hunspell-%s" name="hunspell"/>

152 +     <match install="hyphen-%s" name="hyphen"/>

153 +     <match install="kde-l10n-%s" name="kdelibs"/>

154 +     <match install="kde-i18n-%s" name="kdelibs3"/>

155 +     <match install="libreoffice-langpack-%s" name="libreoffice-core"/>

156 +     <match install="man-pages-%s" name="man-pages"/>

157 +     <match install="moodle-%s" name="moodle"/>

158 +     <match install="mythes-%s" name="mythes"/>

159 +     <match install="nqc-doc-%s" name="nqc-doc"/>

160 +     <match install="openoffice.org-langpack-%s" name="openoffice.org-core"/>

161 +     <match install="tesseract-langpack-%s" name="tesseract"/>

162 +     <match install="tkgate-%s" name="tkgate"/>

163 +   </langpacks>

164 + </comps>
file added

  1 @@ -0,0 +1,139 @@ 

  2 + # PRODUCT (RELEASE) INFO

  3 + product_name = "Dummy Product"

  4 + product_short = "DP"

  5 + product_version = "1.0"

  6 + product_is_layered = False

  7 + product_type = "ga"

  8 + 

  9 + 

 10 + # GENERAL SETTINGS

 11 + bootable = False

 12 + comps_file = "dummy-comps.xml"

 13 + variants_file = "dummy-variants.xml"

 14 + sigkeys = [None] # None = unsigned

 15 + 

 16 + # limit tree architectures

 17 + # if undefined, all architectures from variants.xml will be included

 18 + atree_arches = ["x86_64"]

 19 + 

 20 + # limit tree variants

 21 + # if undefined, all variants from variants.xml will be included

 22 + #tree_variants = ["Server"]

 23 + 

 24 + multilib_arches = ["ppc64", "x86_64", "s390x"]

 25 + multilib_methods = ["devel", "runtime"] # devel (recommended), all, base, file, kernel, none, runtime

 26 + 

 27 + 

 28 + # RUNROOT settings

 29 + runroot = False

 30 + #runroot_channel = ""

 31 + #runroot_tag = ""

 32 + 

 33 + 

 34 + # PKGSET

 35 + pkgset_source = "repos" # koji, repos

 36 + 

 37 + # PKGSET - REPOS

 38 + # pkgset_repos format: {arch: [repo1_url, repo2_url, ...]}

 39 + pkgset_repos = {

 40 +     "i386": [

 41 +         "repo",

 42 +     ],

 43 +     "x86_64": [

 44 +         "repo",

 45 +     ],

 46 +     "s390x": [

 47 +         "repo",

 48 +     ],

 49 + }

 50 + 

 51 + # PKGSET - KOJI

 52 + #pkgset_koji_path_prefix = "/mnt/koji"

 53 + #pkgset_koji_url = ""

 54 + #pkgset_koji_tag = ""

 55 + 

 56 + 

 57 + # GATHER

 58 + gather_source = "comps"

 59 + gather_method = "deps"

 60 + check_deps = False

 61 + greedy_method = "build"

 62 + 

 63 + # fomat: [(variant_uid_regex, {arch|*: [repos]})]

 64 + # gather_lookaside_repos = []

 65 + 

 66 + # GATHER - JSON

 67 + # format: {variant_uid: {arch: package: [arch1, arch2, None (for any arch)]}}

 68 + #gather_source_mapping = "/path/to/mapping.json"

 69 + 

 70 + 

 71 + # CREATEREPO

 72 + # TODO: checksum type - mandatory

 73 + createrepo_c = True

 74 + 

 75 + 

 76 + # BUILDINSTALL

 77 + 

 78 + 

 79 + # PRODUCTIMG

 80 + 

 81 + 

 82 + # CREATEISO

 83 + create_optional_isos = False

 84 + symlink_isos_to = None

 85 + 

 86 + 

 87 + # fomat: [(variant_uid_regex, {arch|*: [packages]})]

 88 + additional_packages = [

 89 +     ('^Server$', {

 90 +         '*': [

 91 + #            'dummy-lvm2-devel',

 92 +              'dummy-libtool',

 93 +         ],

 94 +     }),

 95 +     ('^Client-optional$', {

 96 +         '*': [

 97 +             'dummy-httpd',

 98 +         ],

 99 +     }),

100 + ]

101 + 

102 + filter_packages = [

103 +     ('^.*$', {

104 +         '*': [

105 +             'dummy-pacemaker',

106 +         ],

107 +     }),

108 +     ('^Client$', {

109 +         '*': [

110 +             'dummy-httpd',

111 +         ],

112 +     }),

113 +     ('^Server-optional$', {

114 +         '*': [

115 +             'dummy-httpd.i686',

116 +         ],

117 +     }),

118 +     ('^.*-ResilientStorage$', {

119 +         '*': [

120 +             'dummy-glusterfs-resource-agents',

121 +         ],

122 +     }),

123 + ]

124 + 

125 + 

126 + # format: {arch|*: [packages]}

127 + multilib_blacklist = {

128 +     "*": [

129 +         "kernel-devel",

130 +         "httpd-devel",

131 +         "*",

132 + #        "dummy-glibc",

133 +     ],

134 + }

135 + 

136 + multilib_whitelist = {

137 +     "*": [

138 +         "dummy-glibc",

139 +     ],

140 + }
file added

 1 @@ -0,0 +1,70 @@ 

 2 + <?xml version="1.0" encoding="UTF-8"?>

 3 + <!DOCTYPE variants PUBLIC "-//Red Hat, Inc.//DTD Variants info//EN" "variants.dtd">

 4 + 

 5 + <variants>

 6 +   <variant id="ResilientStorage" name="Resilient Storage" type="addon">

 7 +     <arches>

 8 +       <arch>x86_64</arch>

 9 +     </arches>

10 +     <groups>

11 +       <group default="true">resilient-storage</group>

12 +     </groups>

13 +   </variant>

14 + 

15 +   <variant id="Gluster" name="Gluster Layered Product" type="layered-product">

16 +     <product name="Gluster" version="2.3" short="Gluster" />

17 +     <arches>

18 +       <arch>x86_64</arch>

19 +     </arches>

20 +     <groups>

21 +       <group default="true">gluster</group>

22 +     </groups>

23 +   </variant>

24 + 

25 +   <variant id="Client" name="Client" type="variant" has_optional="true">

26 +     <arches>

27 +       <arch>i386</arch>

28 +       <arch>x86_64</arch>

29 +     </arches>

30 +     <groups>

31 +       <group default="true">core</group>

32 +       <group default="true">standard</group>

33 +       <group default="false">text-internet</group>

34 +       <group default="true" uservisible="false">firefox</group>

35 +       <group>skype</group>

36 +     </groups>

37 +     <environments>

38 +       <environment>minimal</environment>

39 +       <environment display_order="1000">desktop</environment>

40 +     </environments>

41 +   </variant>

42 + 

43 +   <variant id="Server" name="Server" type="variant" has_optional="true">

44 +     <arches>

45 +       <arch>x86_64</arch>

46 +       <arch>s390x</arch>

47 +     </arches>

48 +     <groups>

49 +       <group default="true" uservisible="true">core</group>

50 +       <group default="true">standard</group>

51 +       <group default="true">text-internet</group>

52 +     </groups>

53 +     <environments>

54 +       <environment>minimal</environment>

55 +     </environments>

56 +     <variants>

57 +       <ref id="ResilientStorage"/>

58 +       <ref id="Gluster"/>

59 +       <variant id="optional" name="optional" type="optional">

60 +         <arches>

61 +           <arch>x86_64</arch>

62 +           <arch>s390x</arch>

63 +         </arches>

64 +         <groups>

65 +           <group default="false">firefox</group>

66 +         </groups>

67 +       </variant>

68 +     </variants>

69 +   </variant>

70 + 

71 + </variants>
file added

  1 @@ -0,0 +1,116 @@ 

  2 + {

  3 +     "archpkgs" : [

  4 +         "dummy-AdobeReader_enu",

  5 +         "dummy-atlas",

  6 +         "dummy-atlas-3dnow",

  7 +         "dummy-atlas-3dnow-devel",

  8 +         "dummy-atlas-devel",

  9 +         "dummy-atlas-sse",

 10 +         "dummy-atlas-sse2",

 11 +         "dummy-atlas-sse2-devel",

 12 +         "dummy-atlas-sse3",

 13 +         "dummy-atlas-sse3-devel",

 14 +         "dummy-atlas-sse-devel",

 15 +         "dummy-atlas-z10",

 16 +         "dummy-atlas-z10-devel",

 17 +         "dummy-atlas-z196",

 18 +         "dummy-atlas-z196-devel",

 19 +         "dummy-basesystem",

 20 +         "dummy-bash",

 21 +         "dummy-bash-debuginfo",

 22 +         "dummy-bash-doc",

 23 +         "dummy-elinks",

 24 +         "dummy-elinks-debuginfo",

 25 +         "dummy-fcoe-target-utils",

 26 +         "dummy-filesystem",

 27 +         "dummy-firefox",

 28 +         "dummy-firefox-debuginfo",

 29 +         "dummy-foo32",

 30 +         "dummy-foo32-doc",

 31 +         "dummy-freeipa",

 32 +         "dummy-freeipa-server",

 33 +         "dummy-gfs2-utils",

 34 +         "dummy-gfs2-utils-debuginfo",

 35 +         "dummy-glibc",

 36 +         "dummy-glibc-common",

 37 +         "dummy-glibc-debuginfo",

 38 +         "dummy-glibc-debuginfo-common",

 39 +         "dummy-glusterfs-resource-agents",

 40 +         "dummy-httpd",

 41 +         "dummy-httpd-debuginfo",

 42 +         "dummy-imsettings",

 43 +         "dummy-imsettings-gnome",

 44 +         "dummy-imsettings-qt",

 45 +         "dummy-ipw3945-kmod",

 46 +         "dummy-ipw3945-kmod-debuginfo",

 47 +         "dummy-kernel",

 48 +         "dummy-kernel-doc",

 49 +         "dummy-kernel-headers",

 50 +         "dummy-kmod-ipw3945",

 51 +         "dummy-kmod-ipw3945-xen",

 52 +         "dummy-krb5",

 53 +         "dummy-krb5-debuginfo",

 54 +         "dummy-krb5-devel",

 55 +         "dummy-krb5-libs",

 56 +         "dummy-krb5-workstation",

 57 +         "dummy-lvm2",

 58 +         "dummy-lvm2-cluster",

 59 +         "dummy-lvm2-debuginfo",

 60 +         "dummy-lvm2-devel",

 61 +         "dummy-lvm2-libs",

 62 +         "dummy-nscd",

 63 +         "dummy-postfix",

 64 +         "dummy-postfix-debuginfo",

 65 +         "dummy-release-client",

 66 +         "dummy-release-client-workstation",

 67 +         "dummy-release-notes",

 68 +         "dummy-release-notes-cs-CZ",

 69 +         "dummy-release-notes-en-US",

 70 +         "dummy-release-server",

 71 +         "dummy-resource-agents",

 72 +         "dummy-resource-agents-debuginfo",

 73 +         "dummy-selinux-policy",

 74 +         "dummy-selinux-policy-doc",

 75 +         "dummy-selinux-policy-minimal",

 76 +         "dummy-selinux-policy-mls",

 77 +         "dummy-selinux-policy-targeted",

 78 +         "dummy-sendmail",

 79 +         "dummy-sendmail-debuginfo",

 80 +         "dummy-skype",

 81 +         "dummy-tftp",

 82 +         "dummy-tftp-debuginfo",

 83 +         "dummy-vacation",

 84 +         "dummy-vacation-debuginfo",

 85 +         "dummy-xulrunner",

 86 +         "dummy-xulrunner-debuginfo"

 87 +     ],

 88 + 

 89 +     "archs" : [

 90 +         "i486",

 91 +         "i586",

 92 +         "i686",

 93 +         "ppc",

 94 +         "ppc64",

 95 +         "s390",

 96 +         "s390x",

 97 +         "x86_64",

 98 +         "src"

 99 +     ],

100 + 

101 +     "noarchpkgs" : [

102 +         "dummy-basesystem",

103 +         "dummy-bash-doc",

104 +         "dummy-bash-doc",

105 +         "dummy-fcoe-target-utils",

106 +         "dummy-foo32-doc",

107 +         "dummy-kernel-doc",

108 +         "dummy-release-notes",

109 +         "dummy-release-notes-cs-CZ",

110 +         "dummy-release-notes-en-US",

111 +         "dummy-selinux-policy-doc",

112 +         "dummy-selinux-policy-minimal",

113 +         "dummy-selinux-policy-mls",

114 +         "dummy-selinux-policy-targeted"

115 +     ]

116 + 

117 + }
file added

1 @@ -0,0 +1,7 @@ 

2 + #!/bin/bash

3 + 

4 + # Thin wrapper to run all tests

5 + for t in $(dirname $0)/test_*

6 + do

7 +     $t

8 + done
file added

 1 @@ -0,0 +1,12 @@ 

 2 + #!/bin/sh

 3 + 

 4 + export PYTHONPATH=$(pwd)/pmd:$(pwd)/../

 5 + export PATH=$(pwd)/../bin:$PATH

 6 + 

 7 + mkdir -p _composes

 8 + 

 9 + pungi-koji \

10 + --target-dir=_composes \

11 + --old-composes=_composes \

12 + --config=dummy-pungi.conf \

13 + --test

This pull request is meant to replace https://pagure.io/pungi/pull-request/10 so that we don't have a giant pile of binary files (rpms) in the git repository.

Changes summary
+13 -5
file changed
+44
file added
+150
file added
+163
file added
+139
file added
+70
file added
+116
file added
+7
file added
+12
file added