Ejemplo n.º 1
0
    def test_HandlesMutlivaluedArchSpecific(self):
        pb1 = testutil.parse_pkgbuild('''
            pkgname=ponies
            arch=('x86_64')
            depends_x86_64=('friendship' 'magic')
            source_x86_64=('http://example.com/fooball.tar.gz')
            md5sums_x86_64=('d41d8cd98f00b204e9800998ecf8427e')
        ''')
        self.assertPackageNamesEqual(pb1, ['ponies'])
        self.assertEqual(['friendship', 'magic'],
                         pb1['ponies']['depends_x86_64'])
        self.assertEqual(['http://example.com/fooball.tar.gz'],
                         pb1['ponies']['source_x86_64'])
        self.assertEqual(['d41d8cd98f00b204e9800998ecf8427e'],
                         pb1['ponies']['md5sums_x86_64'])

        pb2 = testutil.parse_pkgbuild('''
            pkgname=ponies
            arch=('x86_64')
            source_x86_64=('http://example.com/fooball.tar.gz')
            md5sums_x86_64=('d41d8cd98f00b204e9800998ecf8427e')
            package() {
              depends_x86_64=('friendship' 'magic')
            }
        ''')
        self.assertDictEqual(pb1, pb2)
Ejemplo n.º 2
0
    def test_SinglePackage(self):
        pb = testutil.parse_pkgbuild('pkgname=ponies')
        self.assertPackageNamesEqual(pb, ['ponies'])

        pb = testutil.parse_pkgbuild('''
            pkgbase=ponies
            pkgname=('applejack')
        ''')
        self.assertPackageNamesEqual(pb, ['applejack'])
Ejemplo n.º 3
0
    def test_SinglePackage(self):
        pb = testutil.parse_pkgbuild('pkgname=ponies')
        self.assertPackageNamesEqual(pb, ['ponies'])

        pb = testutil.parse_pkgbuild('''
            pkgbase=ponies
            pkgname=('applejack')
        ''')
        self.assertPackageNamesEqual(pb, ['applejack'])
Ejemplo n.º 4
0
 def test_SplitPackageNames(self):
     pb = testutil.parse_pkgbuild('''
         pkgbase=ponies
         pkgname=('applejack' 'rainbowdash' 'pinkiepie')
     ''')
     self.assertPackageNamesEqual(pb,
                                  ['applejack', 'rainbowdash', 'pinkiepie'])
Ejemplo n.º 5
0
 def test_NestedBashVariables(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=ponies-git
         provides=("${pkgname%-git}")
     ''')
     self.assertPackageNamesEqual(pb, ['ponies-git'])
     self.assertEqual(['ponies'], pb['ponies-git']['provides'])
Ejemplo n.º 6
0
 def test_NestedBashVariables(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=ponies-git
         provides=("${pkgname%-git}")
     ''')
     self.assertPackageNamesEqual(pb, ['ponies-git'])
     self.assertEqual(['ponies'], pb['ponies-git']['provides'])
Ejemplo n.º 7
0
 def test_SkipsEmptyAttrsInPackageOverride(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=(ponies)
         package_ponies() {
             depends+=('derp')
         }
     ''')
     self.assertCountEqual(['derp'], pb['ponies']['depends'])
Ejemplo n.º 8
0
 def test_SkipsEmptyAttrsInPackageOverride(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=(ponies)
         package_ponies() {
             depends+=('derp')
         }
     ''')
     self.assertCountEqual(['derp'], pb['ponies']['depends'])
Ejemplo n.º 9
0
 def test_GlobalVariableInPackage(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=ponies-git
         package_ponies-git() {
           provides=("${pkgname%-git}")
         }
     ''')
     self.assertPackageNamesEqual(pb, ['ponies-git'])
     self.assertEqual(['ponies'], pb['ponies-git']['provides'])
Ejemplo n.º 10
0
 def test_MultipleAttributesOnOneLine(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=ponies
         package() {
           depends=('foo') provides=('bar')
         }
     ''')
     self.assertEqual(['foo'], pb['ponies']['depends'])
     self.assertEqual(['bar'], pb['ponies']['provides'])
Ejemplo n.º 11
0
 def test_MultipleAttributesOnOneLine(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=ponies
         package() {
           depends=('foo') provides=('bar')
         }
     ''')
     self.assertEqual(['foo'], pb['ponies']['depends'])
     self.assertEqual(['bar'], pb['ponies']['provides'])
Ejemplo n.º 12
0
 def test_HandlesMultiLineArrays(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=ponies
         depends=(foo
                  bar
                  baz)
     ''')
     self.assertPackageNamesEqual(pb, ['ponies'])
     self.assertEqual(['foo', 'bar', 'baz'], pb['ponies']['depends'])
Ejemplo n.º 13
0
 def test_HandlesMultiLineArrays(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=ponies
         depends=(foo
                  bar
                  baz)
     ''')
     self.assertPackageNamesEqual(pb, ['ponies'])
     self.assertEqual(['foo', 'bar', 'baz'], pb['ponies']['depends'])
Ejemplo n.º 14
0
 def test_GlobalVariableInPackage(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=ponies-git
         package_ponies-git() {
           provides=("${pkgname%-git}")
         }
     ''')
     self.assertPackageNamesEqual(pb, ['ponies-git'])
     self.assertEqual(['ponies'], pb['ponies-git']['provides'])
Ejemplo n.º 15
0
 def test_HandlesMultiLineValuesInFunctions(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=ponies
         package_ponies() {
           optdepends=('some:
                        program')
         }
     ''')
     self.assertPackageNamesEqual(pb, ['ponies'])
     self.assertRegex(pb['ponies']['optdepends'][0], 'some:.*program')
Ejemplo n.º 16
0
 def test_HandlesMultiLineValuesInFunctions(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=ponies
         package_ponies() {
           optdepends=('some:
                        program')
         }
     ''')
     self.assertPackageNamesEqual(pb, ['ponies'])
     self.assertRegex(pb['ponies']['optdepends'][0], 'some:.*program')
Ejemplo n.º 17
0
    def test_HandlesShellVarInPackageAttr(self):
        pb = testutil.parse_pkgbuild('''
            pkgname=ponies

            package() {
              foo=bar
              depends=("$foo")
            }
        ''')
        self.assertPackageNamesEqual(pb, ['ponies'])
        self.assertEqual(['bar'], pb['ponies']['depends'])
Ejemplo n.º 18
0
    def test_HandlesShellVarInPackageAttr(self):
        pb = testutil.parse_pkgbuild('''
            pkgname=ponies

            package() {
              foo=bar
              depends=("$foo")
            }
        ''')
        self.assertPackageNamesEqual(pb, ['ponies'])
        self.assertEqual(['bar'], pb['ponies']['depends'])
Ejemplo n.º 19
0
 def test_PackagesCannotOverrideMakedepends(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=ponies
         pkgver=1
         makedepends=(friendship magic)
         package() {
           makedepends=(ignore me)
         }
     ''')
     self.assertPackageNamesEqual(pb, ['ponies'])
     self.assertEqual(['friendship', 'magic'], pb['ponies']['makedepends'])
Ejemplo n.º 20
0
 def test_IgnoresUnsupportedArchSpecificOverrideInGlobal(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=ponies
         arch=('x86_64')
         depends=('friendship' 'magic')
         depends_armv7h=('pain' 'suffering')
     ''')
     self.assertPackageNamesEqual(pb, ['ponies'])
     self.assertEqual(['x86_64'], pb['ponies']['arch'])
     self.assertEqual(['friendship', 'magic'], pb['ponies']['depends'])
     self.assertNotIn('depends_armv7h', pb['ponies'])
Ejemplo n.º 21
0
 def test_RepeatGlobalDecls(self):
     pb = testutil.parse_pkgbuild('''
         pkgbase=ponies
         pkgname=('applejack')
         pkgname=('pinkiepie')
         pkgname=('applejack')
         pkgname+=('pinkiepie')
         pkgname=('applejack')
         pkgname+=('pinkiepie')
     ''')
     self.assertPackageNamesEqual(pb, ['applejack', 'pinkiepie'])
Ejemplo n.º 22
0
 def test_IgnoresUnsupportedArchSpecificOverrideInGlobal(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=ponies
         arch=('x86_64')
         depends=('friendship' 'magic')
         depends_armv7h=('pain' 'suffering')
     ''')
     self.assertPackageNamesEqual(pb, ['ponies'])
     self.assertEqual(['x86_64'], pb['ponies']['arch'])
     self.assertEqual(['friendship', 'magic'], pb['ponies']['depends'])
     self.assertNotIn('depends_armv7h', pb['ponies'])
Ejemplo n.º 23
0
 def test_RepeatGlobalDecls(self):
     pb = testutil.parse_pkgbuild('''
         pkgbase=ponies
         pkgname=('applejack')
         pkgname=('pinkiepie')
         pkgname=('applejack')
         pkgname+=('pinkiepie')
         pkgname=('applejack')
         pkgname+=('pinkiepie')
     ''')
     self.assertPackageNamesEqual(pb, ['applejack', 'pinkiepie'])
Ejemplo n.º 24
0
 def test_PackagesCannotOverrideMakedepends(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=ponies
         pkgver=1
         makedepends=(friendship magic)
         package() {
           makedepends=(ignore me)
         }
     ''')
     self.assertPackageNamesEqual(pb, ['ponies'])
     self.assertEqual(['friendship', 'magic'], pb['ponies']['makedepends'])
Ejemplo n.º 25
0
    def test_HandlesRegexyPackageNames(self):
        pb = testutil.parse_pkgbuild('''
            pkgname=('ponies+cake')
            pkgver=1.2.3

            package_ponies+cake() {
              depends=('pie' 'apples')
            }
        ''')
        self.assertPackageNamesEqual(pb, ['ponies+cake'])
        self.assertEqual(['pie', 'apples'], pb['ponies+cake']['depends'])
        self.assertEqual('1.2.3', pb['ponies+cake']['pkgver'])
Ejemplo n.º 26
0
 def test_PackageAttributeAppends(self):
     pb = testutil.parse_pkgbuild('''
         pkgbase=ponies
         pkgname=('applejack' 'pinkiepie')
         depends=('foo')
         package_applejack() {
           depends+=('bar')
         }
     ''')
     self.assertPackageNamesEqual(pb, ['applejack', 'pinkiepie'])
     self.assertEqual(['foo', 'bar'], pb['applejack']['depends'])
     self.assertEqual(['foo'], pb['pinkiepie']['depends'])
Ejemplo n.º 27
0
 def test_HandlesDeclareInGlobalAttrs(self):
     pb = testutil.parse_pkgbuild('''
         declare pkgbase=ponies
         declare -a pkgname=('applejack' 'pinkiepie')
         declare depends=('foo')
         package_applejack() {
           depends=('bar')
         }
     ''')
     self.assertPackageNamesEqual(pb, ['applejack', 'pinkiepie'])
     self.assertEqual(['bar'], pb['applejack']['depends'])
     self.assertEqual(['foo'], pb['pinkiepie']['depends'])
Ejemplo n.º 28
0
    def test_HandlesBraceExpansions(self):
        pb = testutil.parse_pkgbuild('''
            pkgname=ponies
            depends=({magic,friendship})

            package_ponies() {
              provides=({applejack,pinkiepie}-pony)
            }
        ''')
        self.assertPackageNamesEqual(pb, ['ponies'])
        self.assertEqual(['magic', 'friendship'], pb['ponies']['depends'])
        self.assertEqual(['applejack-pony', 'pinkiepie-pony'], pb['ponies']['provides'])
Ejemplo n.º 29
0
    def test_IgnoresEmptyGlobalAttributes(self):
        pb = testutil.parse_pkgbuild('''
            pkgname=ponies
            pkgver=1.2.3
            epoch=
            arch=('i686' 'x86_64')

            package() { :; }
        ''')
        self.assertPackageNamesEqual(pb, ['ponies'])
        self.assertEqual('1.2.3', pb['ponies']['pkgver'])
        self.assertNotIn('epoch', pb['ponies'])
Ejemplo n.º 30
0
 def test_HandlesDeclareInGlobalAttrs(self):
     pb = testutil.parse_pkgbuild('''
         declare pkgbase=ponies
         declare -a pkgname=('applejack' 'pinkiepie')
         declare depends=('foo')
         package_applejack() {
           depends=('bar')
         }
     ''')
     self.assertPackageNamesEqual(pb, ['applejack', 'pinkiepie'])
     self.assertEqual(['bar'], pb['applejack']['depends'])
     self.assertEqual(['foo'], pb['pinkiepie']['depends'])
Ejemplo n.º 31
0
    def test_HandlesBraceExpansions(self):
        pb = testutil.parse_pkgbuild('''
            pkgname=ponies
            depends=({magic,friendship})

            package_ponies() {
              provides=({applejack,pinkiepie}-pony)
            }
        ''')
        self.assertPackageNamesEqual(pb, ['ponies'])
        self.assertEqual(['magic', 'friendship'], pb['ponies']['depends'])
        self.assertEqual(['applejack-pony', 'pinkiepie-pony'], pb['ponies']['provides'])
Ejemplo n.º 32
0
 def test_PackageAttributeAppends(self):
     pb = testutil.parse_pkgbuild('''
         pkgbase=ponies
         pkgname=('applejack' 'pinkiepie')
         depends=('foo')
         package_applejack() {
           depends+=('bar')
         }
     ''')
     self.assertPackageNamesEqual(pb, ['applejack', 'pinkiepie'])
     self.assertEqual(['foo', 'bar'], pb['applejack']['depends'])
     self.assertEqual(['foo'], pb['pinkiepie']['depends'])
Ejemplo n.º 33
0
    def test_HandlesRegexyPackageNames(self):
        pb = testutil.parse_pkgbuild('''
            pkgname=('ponies+cake')
            pkgver=1.2.3

            package_ponies+cake() {
              depends=('pie' 'apples')
            }
        ''')
        self.assertPackageNamesEqual(pb, ['ponies+cake'])
        self.assertEqual(['pie', 'apples'], pb['ponies+cake']['depends'])
        self.assertEqual('1.2.3', pb['ponies+cake']['pkgver'])
Ejemplo n.º 34
0
    def test_IgnoresEmptyGlobalAttributes(self):
        pb = testutil.parse_pkgbuild('''
            pkgname=ponies
            pkgver=1.2.3
            epoch=
            arch=('i686' 'x86_64')

            package() { :; }
        ''')
        self.assertPackageNamesEqual(pb, ['ponies'])
        self.assertEqual('1.2.3', pb['ponies']['pkgver'])
        self.assertNotIn('epoch', pb['ponies'])
Ejemplo n.º 35
0
    def test_HandlesQuotedValues(self):
        pb = testutil.parse_pkgbuild('''
            pkgname=ponies
            optdepends=("foo: for bar'ing baz")

            package_ponies() {
              license=('custom: PGL'
                       'custom: EGL')
            }
        ''')
        self.assertPackageNamesEqual(pb, ['ponies'])
        self.assertEqual(['foo: for bar\'ing baz'], pb['ponies']['optdepends'])
        self.assertEqual(['custom: PGL', 'custom: EGL'], pb['ponies']['license'])
Ejemplo n.º 36
0
    def test_HandlesQuotedValues(self):
        pb = testutil.parse_pkgbuild('''
            pkgname=ponies
            optdepends=("foo: for bar'ing baz")

            package_ponies() {
              license=('custom: PGL'
                       'custom: EGL')
            }
        ''')
        self.assertPackageNamesEqual(pb, ['ponies'])
        self.assertEqual(['foo: for bar\'ing baz'], pb['ponies']['optdepends'])
        self.assertEqual(['custom: PGL', 'custom: EGL'], pb['ponies']['license'])
Ejemplo n.º 37
0
    def test_HandlesMutlivaluedArchSpecific(self):
        pb1 = testutil.parse_pkgbuild('''
            pkgname=ponies
            arch=('x86_64')
            depends_x86_64=('friendship' 'magic')
            source_x86_64=('http://example.com/fooball.tar.gz')
            md5sums_x86_64=('d41d8cd98f00b204e9800998ecf8427e')
        ''')
        self.assertPackageNamesEqual(pb1, ['ponies'])
        self.assertEqual(['friendship', 'magic'], pb1['ponies']['depends_x86_64'])
        self.assertEqual(['http://example.com/fooball.tar.gz'], pb1['ponies']['source_x86_64'])
        self.assertEqual(['d41d8cd98f00b204e9800998ecf8427e'], pb1['ponies']['md5sums_x86_64'])

        pb2 = testutil.parse_pkgbuild('''
            pkgname=ponies
            arch=('x86_64')
            source_x86_64=('http://example.com/fooball.tar.gz')
            md5sums_x86_64=('d41d8cd98f00b204e9800998ecf8427e')
            package() {
              depends_x86_64=('friendship' 'magic')
            }
        ''')
        self.assertDictEqual(pb1, pb2)
Ejemplo n.º 38
0
    def test_IgnoresUnsupportedArchSpecificOverrideInPackage(self):
        pb = testutil.parse_pkgbuild('''
            pkgname=ponies
            arch=('i686' 'x86_64')
            depends=('friendship' 'magic')

            package() {
              arch=('any')
              depends_x86_64=('ignore' 'me')
            }
        ''')
        self.assertPackageNamesEqual(pb, ['ponies'])
        self.assertEqual(['friendship', 'magic'], pb['ponies']['depends'])
        self.assertNotIn('depends_x86_64', pb['ponies'])
Ejemplo n.º 39
0
    def test_IgnoresUnsupportedArchSpecificOverrideInPackage(self):
        pb = testutil.parse_pkgbuild('''
            pkgname=ponies
            arch=('i686' 'x86_64')
            depends=('friendship' 'magic')

            package() {
              arch=('any')
              depends_x86_64=('ignore' 'me')
            }
        ''')
        self.assertPackageNamesEqual(pb, ['ponies'])
        self.assertEqual(['friendship', 'magic'], pb['ponies']['depends'])
        self.assertNotIn('depends_x86_64', pb['ponies'])
Ejemplo n.º 40
0
 def test_PackagesCannotOverridePkgver(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=ponies
         pkgver=1
         pkgrel=2
         epoch=3
         package() {
           pkgver=2
           pkgrel=3
           epoch=4
         }
     ''')
     self.assertPackageNamesEqual(pb, ['ponies'])
     self.assertEqual("1", pb['ponies']['pkgver'])
     self.assertEqual("2", pb['ponies']['pkgrel'])
     self.assertEqual("3", pb['ponies']['epoch'])
Ejemplo n.º 41
0
 def test_PackagesCannotOverridePkgver(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=ponies
         pkgver=1
         pkgrel=2
         epoch=3
         package() {
           pkgver=2
           pkgrel=3
           epoch=4
         }
     ''')
     self.assertPackageNamesEqual(pb, ['ponies'])
     self.assertEqual("1", pb['ponies']['pkgver'])
     self.assertEqual("2", pb['ponies']['pkgrel'])
     self.assertEqual("3", pb['ponies']['epoch'])
Ejemplo n.º 42
0
    def test_EmptyPackageAttributeOverridesGlobal(self):
        pb = testutil.parse_pkgbuild('''
            pkgname=ponies
            pkgver=1.2.3
            depends=('foo' 'bar')
            arch=('i686' 'x86_64')
            install=ponies.install

            package() {
              install=
              depends=()
            }
        ''')
        self.assertPackageNamesEqual(pb, ['ponies'])
        self.assertEqual('1.2.3', pb['ponies']['pkgver'])
        self.assertIn('depends', pb['ponies'])
        self.assertListEqual([], pb['ponies']['depends'])
        self.assertIn('install', pb['ponies'])
        self.assertEqual('', pb['ponies']['install'])
Ejemplo n.º 43
0
    def test_EmptyPackageAttributeOverridesGlobal(self):
        pb = testutil.parse_pkgbuild('''
            pkgname=ponies
            pkgver=1.2.3
            depends=('foo' 'bar')
            arch=('i686' 'x86_64')
            install=ponies.install

            package() {
              install=
              depends=()
            }
        ''')
        self.assertPackageNamesEqual(pb, ['ponies'])
        self.assertEqual('1.2.3', pb['ponies']['pkgver'])
        self.assertIn('depends', pb['ponies'])
        self.assertListEqual([], pb['ponies']['depends'])
        self.assertIn('install', pb['ponies'])
        self.assertEqual('', pb['ponies']['install'])
Ejemplo n.º 44
0
 def test_IgnoresEmptyStringsAsArrayElements(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=(ponies)
         depends=(foo '' bar)
     ''')
     self.assertCountEqual(['foo', 'bar'], pb['ponies']['depends'])
Ejemplo n.º 45
0
    def test_CoverageSmokeTest(self):
        pb = testutil.parse_pkgbuild('''
            pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-ada' 'gcc-go')
            pkgver=4.9.1
            _pkgver=4.9
            pkgrel=2
            _snapshot=4.9-20140903
            pkgdesc="The GNU Compiler Collection"
            arch=('i686' 'x86_64')
            license=('GPL' 'LGPL' 'FDL' 'custom')
            url="http://gcc.gnu.org"
            makedepends=('binutils>=2.24' 'libmpc' 'cloog' 'gcc-ada' 'doxygen')
            checkdepends=('dejagnu' 'inetutils')
            options=('!emptydirs')
            source=(ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
                    gcc-4.8-filename-output.patch
                    gcc-4.9-isl-0.13-hack.patch)
            md5sums=('24dfd67139fda4746d2deff18182611d'
                     '40cb437805e2f7a006aa0d0c3098ab0f'
                     'f26ae06b9cbc8abe86f5ee4dc5737da8')

            package_gcc-libs() {
              pkgdesc="Runtime libraries shipped by GCC"
              groups=('base')
              depends=('glibc>=2.20')
              options=('!emptydirs' '!strip')
              install=gcc-libs.install
            }

            package_gcc() {
              pkgdesc="The GNU Compiler Collection - C and C++ frontends"
              depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.24' 'libmpc' 'cloog')
              groups=('base-devel')
              options=('staticlibs')
              install=gcc.install
            }

            package_gcc-fortran() {
              pkgdesc="Fortran front-end for GCC"
              depends=("gcc=$pkgver-$pkgrel")
              options=('staticlibs' '!emptydirs')
              install=gcc-fortran.install
            }

            package_gcc-objc() {
              pkgdesc="Objective-C front-end for GCC"
              depends=("gcc=$pkgver-$pkgrel")
            }

            package_gcc-ada() {
              pkgdesc="Ada front-end for GCC (GNAT)"
              depends=("gcc=$pkgver-$pkgrel")
              options=('staticlibs' '!emptydirs')
              install=gcc-ada.install
            }

            package_gcc-go() {
              pkgdesc="Go front-end for GCC"
              depends=("gcc=$pkgver-$pkgrel")
              options=('staticlibs' '!emptydirs')
              install=gcc-go.install
            }
        ''')

        expected_packages = ['gcc', 'gcc-libs', 'gcc-fortran', 'gcc-objc', 'gcc-ada', 'gcc-go']
        self.assertPackageNamesEqual(pb, expected_packages)

        for pkgname in expected_packages:
            pkg = pb[pkgname]
            self.assertEqual('4.9.1', pkg['pkgver'])
            self.assertEqual('2', pkg['pkgrel'])
            self.assertEqual(['i686', 'x86_64'], pkg['arch'])
            self.assertEqual(['GPL', 'LGPL', 'FDL', 'custom'], pkg['license'])
            self.assertEqual('http://gcc.gnu.org', pkg['url'])
            self.assertEqual(['binutils>=2.24','libmpc', 'cloog', 'gcc-ada', 'doxygen'], pkg['makedepends'])
            self.assertEqual(['dejagnu', 'inetutils'], pkg['checkdepends'])
            self.assertEqual(['ftp://gcc.gnu.org/pub/gcc/snapshots/4.9-20140903/gcc-4.9-20140903.tar.bz2',
                              'gcc-4.8-filename-output.patch',
                              'gcc-4.9-isl-0.13-hack.patch'], pkg['source'])
            self.assertEqual(['24dfd67139fda4746d2deff18182611d',
                              '40cb437805e2f7a006aa0d0c3098ab0f',
                              'f26ae06b9cbc8abe86f5ee4dc5737da8'], pkg['md5sums'])

        self.assertEqual('Runtime libraries shipped by GCC', pb['gcc-libs']['pkgdesc'])
        self.assertEqual(['base'], pb['gcc-libs']['groups'])
        self.assertEqual(['glibc>=2.20'], pb['gcc-libs']['depends'])
        self.assertEqual(['!emptydirs', '!strip'], pb['gcc-libs']['options'])
        self.assertEqual('gcc-libs.install', pb['gcc-libs']['install'])

        self.assertEqual('The GNU Compiler Collection - C and C++ frontends', pb['gcc']['pkgdesc'])
        self.assertEqual(['gcc-libs=4.9.1-2', 'binutils>=2.24', 'libmpc', 'cloog'], pb['gcc']['depends'])
        self.assertEqual(['base-devel'], pb['gcc']['groups'])
        self.assertEqual(['staticlibs'], pb['gcc']['options'])
        self.assertEqual('gcc.install', pb['gcc']['install'])

        self.assertEqual('Fortran front-end for GCC', pb['gcc-fortran']['pkgdesc'])
        self.assertEqual(['gcc=4.9.1-2'], pb['gcc-fortran']['depends'])
        self.assertEqual(['staticlibs', '!emptydirs'], pb['gcc-fortran']['options'])
        self.assertEqual('gcc-fortran.install', pb['gcc-fortran']['install'])
        self.assertNotIn('groups', pb['gcc-fortran'])

        self.assertEqual('Objective-C front-end for GCC', pb['gcc-objc']['pkgdesc'])
        self.assertEqual(['gcc=4.9.1-2'], pb['gcc-objc']['depends'])
        self.assertEqual(['!emptydirs'], pb['gcc-objc']['options'])
        self.assertNotIn('install', pb['gcc-objc'])
        self.assertNotIn('groups', pb['gcc-objc'])

        self.assertEqual('Ada front-end for GCC (GNAT)', pb['gcc-ada']['pkgdesc'])
        self.assertEqual(['gcc=4.9.1-2'], pb['gcc-ada']['depends'])
        self.assertEqual(['staticlibs', '!emptydirs'], pb['gcc-ada']['options'])
        self.assertEqual('gcc-ada.install', pb['gcc-ada']['install'])
        self.assertNotIn('groups', pb['gcc-ada'])

        self.assertEqual('Go front-end for GCC', pb['gcc-go']['pkgdesc'])
        self.assertEqual(['gcc=4.9.1-2'], pb['gcc-go']['depends'])
        self.assertEqual(['staticlibs', '!emptydirs'], pb['gcc-go']['options'])
        self.assertEqual('gcc-go.install', pb['gcc-go']['install'])
        self.assertNotIn('groups', pb['gcc-go'])
Ejemplo n.º 46
0
 def test_SplitPackageNames(self):
     pb = testutil.parse_pkgbuild('''
         pkgbase=ponies
         pkgname=('applejack' 'rainbowdash' 'pinkiepie')
     ''')
     self.assertPackageNamesEqual(pb, ['applejack', 'rainbowdash', 'pinkiepie'])
Ejemplo n.º 47
0
    def test_CoverageSmokeTest(self):
        pb = testutil.parse_pkgbuild('''
            pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-ada' 'gcc-go')
            pkgver=4.9.1
            _pkgver=4.9
            pkgrel=2
            _snapshot=4.9-20140903
            pkgdesc="The GNU Compiler Collection"
            arch=('i686' 'x86_64')
            license=('GPL' 'LGPL' 'FDL' 'custom')
            url="http://gcc.gnu.org"
            makedepends=('binutils>=2.24' 'libmpc' 'cloog' 'gcc-ada' 'doxygen')
            checkdepends=('dejagnu' 'inetutils')
            options=('!emptydirs')
            source=(ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
                    gcc-4.8-filename-output.patch
                    gcc-4.9-isl-0.13-hack.patch)
            md5sums=('24dfd67139fda4746d2deff18182611d'
                     '40cb437805e2f7a006aa0d0c3098ab0f'
                     'f26ae06b9cbc8abe86f5ee4dc5737da8')

            package_gcc-libs() {
              pkgdesc="Runtime libraries shipped by GCC"
              groups=('base')
              depends=('glibc>=2.20')
              options=('!emptydirs' '!strip')
              install=gcc-libs.install
            }

            package_gcc() {
              pkgdesc="The GNU Compiler Collection - C and C++ frontends"
              depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.24' 'libmpc' 'cloog')
              groups=('base-devel')
              options=('staticlibs')
              install=gcc.install
            }

            package_gcc-fortran() {
              pkgdesc="Fortran front-end for GCC"
              depends=("gcc=$pkgver-$pkgrel")
              options=('staticlibs' '!emptydirs')
              install=gcc-fortran.install
            }

            package_gcc-objc() {
              pkgdesc="Objective-C front-end for GCC"
              depends=("gcc=$pkgver-$pkgrel")
            }

            package_gcc-ada() {
              pkgdesc="Ada front-end for GCC (GNAT)"
              depends=("gcc=$pkgver-$pkgrel")
              options=('staticlibs' '!emptydirs')
              install=gcc-ada.install
            }

            package_gcc-go() {
              pkgdesc="Go front-end for GCC"
              depends=("gcc=$pkgver-$pkgrel")
              options=('staticlibs' '!emptydirs')
              install=gcc-go.install
            }
        ''')

        expected_packages = ['gcc', 'gcc-libs', 'gcc-fortran', 'gcc-objc', 'gcc-ada', 'gcc-go']
        self.assertPackageNamesEqual(pb, expected_packages)

        for pkgname in expected_packages:
            pkg = pb[pkgname]
            self.assertEqual('4.9.1', pkg['pkgver'])
            self.assertEqual('2', pkg['pkgrel'])
            self.assertEqual(['i686', 'x86_64'], pkg['arch'])
            self.assertEqual(['GPL', 'LGPL', 'FDL', 'custom'], pkg['license'])
            self.assertEqual('http://gcc.gnu.org', pkg['url'])
            self.assertEqual(['binutils>=2.24','libmpc', 'cloog', 'gcc-ada', 'doxygen'], pkg['makedepends'])
            self.assertEqual(['dejagnu', 'inetutils'], pkg['checkdepends'])
            self.assertEqual(['ftp://gcc.gnu.org/pub/gcc/snapshots/4.9-20140903/gcc-4.9-20140903.tar.bz2',
                              'gcc-4.8-filename-output.patch',
                              'gcc-4.9-isl-0.13-hack.patch'], pkg['source'])
            self.assertEqual(['24dfd67139fda4746d2deff18182611d',
                              '40cb437805e2f7a006aa0d0c3098ab0f',
                              'f26ae06b9cbc8abe86f5ee4dc5737da8'], pkg['md5sums'])

        self.assertEqual('Runtime libraries shipped by GCC', pb['gcc-libs']['pkgdesc'])
        self.assertEqual(['base'], pb['gcc-libs']['groups'])
        self.assertEqual(['glibc>=2.20'], pb['gcc-libs']['depends'])
        self.assertEqual(['!emptydirs', '!strip'], pb['gcc-libs']['options'])
        self.assertEqual('gcc-libs.install', pb['gcc-libs']['install'])

        self.assertEqual('The GNU Compiler Collection - C and C++ frontends', pb['gcc']['pkgdesc'])
        self.assertEqual(['gcc-libs=4.9.1-2', 'binutils>=2.24', 'libmpc', 'cloog'], pb['gcc']['depends'])
        self.assertEqual(['base-devel'], pb['gcc']['groups'])
        self.assertEqual(['staticlibs'], pb['gcc']['options'])
        self.assertEqual('gcc.install', pb['gcc']['install'])

        self.assertEqual('Fortran front-end for GCC', pb['gcc-fortran']['pkgdesc'])
        self.assertEqual(['gcc=4.9.1-2'], pb['gcc-fortran']['depends'])
        self.assertEqual(['staticlibs', '!emptydirs'], pb['gcc-fortran']['options'])
        self.assertEqual('gcc-fortran.install', pb['gcc-fortran']['install'])
        self.assertNotIn('groups', pb['gcc-fortran'])

        self.assertEqual('Objective-C front-end for GCC', pb['gcc-objc']['pkgdesc'])
        self.assertEqual(['gcc=4.9.1-2'], pb['gcc-objc']['depends'])
        self.assertEqual(['!emptydirs'], pb['gcc-objc']['options'])
        self.assertNotIn('install', pb['gcc-objc'])
        self.assertNotIn('groups', pb['gcc-objc'])

        self.assertEqual('Ada front-end for GCC (GNAT)', pb['gcc-ada']['pkgdesc'])
        self.assertEqual(['gcc=4.9.1-2'], pb['gcc-ada']['depends'])
        self.assertEqual(['staticlibs', '!emptydirs'], pb['gcc-ada']['options'])
        self.assertEqual('gcc-ada.install', pb['gcc-ada']['install'])
        self.assertNotIn('groups', pb['gcc-ada'])

        self.assertEqual('Go front-end for GCC', pb['gcc-go']['pkgdesc'])
        self.assertEqual(['gcc=4.9.1-2'], pb['gcc-go']['depends'])
        self.assertEqual(['staticlibs', '!emptydirs'], pb['gcc-go']['options'])
        self.assertEqual('gcc-go.install', pb['gcc-go']['install'])
        self.assertNotIn('groups', pb['gcc-go'])
Ejemplo n.º 48
0
 def test_IgnoresEmptyStringsAsArrayElements(self):
     pb = testutil.parse_pkgbuild('''
         pkgname=(ponies)
         depends=(foo '' bar)
     ''')
     self.assertCountEqual(['foo', 'bar'], pb['ponies']['depends'])