예제 #1
0
    def _load_repo_one_package_group(self, path):
        logutil.start_msg('Loading %s' % os.path.basename(path))
        package_group = repoloadutil.load_package_group(path)
        self.repo_context.add_unit(package_group)

        for package_name in package_group.mem:
            package_path = os.path.join(package_group.path, package_name)
            if os.path.basename(package_path).find('+') >= 0:
                package = repoloadutil.load_package(
                    package_path, repounits.PackageType.PACKAGE_PLUS)
            else:
                package = repoloadutil.load_package(
                    package_path, repounits.PackageType.PACKAGE_NORMAL)
            self.repo_context.add_unit(package)
        logutil.end_msg('ok')
예제 #2
0
    def test_load_package(self):
        path = os.path.join(self.repo_root, 'groups', 'gr3', 'gr3p1')
        package = repoloadutil.load_package(
            path, repounits.PackageType.PACKAGE_NORMAL)

        opts_str = """*                   _   OPTS_FILE       = gr3p1.opts

*       _   COMPONENT_BDEBUILD_CFLAGS      = -DGR3P1_OPTS_C
*       _   COMPONENT_BDEBUILD_CXXFLAGS    = -DGR3P1_OPTS_CXX
*       _   COMPONENT_BDEBUILD_LDFLAGS     = -DGR3P1_OPTS_LD

*       _   TESTDRIVER_BDEBUILD_CFLAGS     = -DTEST_GR3P1_OPTS_C
*       _   TESTDRIVER_BDEBUILD_CXXFLAGS   = -DTEST_GR3P1_OPTS_CXX
*       _   TESTDRIVER_BDEBUILD_LDFLAGS    = -DTEST_GR3P1_OPTS_LD
"""
        cap_str = """ !! unix  _  CAPABILITY = ALWAYS
"""

        exp_package = repounits.Package(path,
                                        repounits.PackageType.PACKAGE_NORMAL)
        exp_package.mem = set(['gr3p1_comp1', 'gr3p1_comp2'])
        exp_package.dep = set(['gr3p2'])
        exp_package.opts = self._parse_opts_str(opts_str)
        exp_package.cap = self._parse_opts_str(cap_str)
        exp_package.has_dums = True
        exp_package.components = [
            repounits.Component("gr3p1_comp1"),
            repounits.Component("gr3p1_comp2")
        ]

        self.assertEqual(package, exp_package)
예제 #3
0
    def test_load_package(self):
        path = os.path.join(self.repo_root, 'groups', 'gr3', 'gr3p1')
        package = repoloadutil.load_package(
            path, repounits.PackageType.PACKAGE_NORMAL)

        opts_str = """*                   _   OPTS_FILE       = gr3p1.opts

*       _   COMPONENT_BDEBUILD_CFLAGS      = -DGR3P1_OPTS_C
*       _   COMPONENT_BDEBUILD_CXXFLAGS    = -DGR3P1_OPTS_CXX
*       _   COMPONENT_BDEBUILD_LDFLAGS     = -DGR3P1_OPTS_LD

*       _   TESTDRIVER_BDEBUILD_CFLAGS     = -DTEST_GR3P1_OPTS_C
*       _   TESTDRIVER_BDEBUILD_CXXFLAGS   = -DTEST_GR3P1_OPTS_CXX
*       _   TESTDRIVER_BDEBUILD_LDFLAGS    = -DTEST_GR3P1_OPTS_LD
"""
        cap_str = """ !! unix  _  CAPABILITY = ALWAYS
"""

        exp_package = repounits.Package(path,
                                        repounits.PackageType.PACKAGE_NORMAL)
        exp_package.mem = set(['gr3p1_comp1', 'gr3p1_comp2'])
        exp_package.dep = set(['gr3p2'])
        exp_package.opts = self._parse_opts_str(opts_str)
        exp_package.cap = self._parse_opts_str(cap_str)
        exp_package.has_dums = True
        exp_package.components = [
            repounits.Component("gr3p1_comp1"),
            repounits.Component("gr3p1_comp2")
        ]

        self.assertEqual(package, exp_package)
예제 #4
0
    def _load_repo_stdalone_packages(self, path, type_):
        dirs = next(os.walk(path))[1]
        package_paths = []
        for d in dirs:
            dir_path = os.path.join(path, d)
            if repoloadutil.is_package_path(dir_path):
                package_paths.append(dir_path)

        for path in package_paths:
            logutil.start_msg('Loading %s' % os.path.basename(path))
            package = repoloadutil.load_package(path, type_)
            self.repo_context.add_unit(package)
            logutil.end_msg('ok')
예제 #5
0
    def test_load_plus_package(self):
        path = os.path.join(self.repo_root, 'groups', 'gr2', 'gr2a+b')
        package = repoloadutil.load_package(
            path, repounits.PackageType.PACKAGE_PLUS)

        exp_package = repounits.Package(path,
                                        repounits.PackageType.PACKAGE_PLUS)
        exp_package.pt_extras = repounits.PlusPackageExtras()
        exp_package.pt_extras.headers = set(['h1.h', 'h2.h', 'subh/h3.h'])
        exp_package.pt_extras.cpp_sources = set(['h1.cpp', 'h2.cpp'])
        exp_package.pt_extras.cpp_tests = set(['test/test1.cpp',
                                               'test/test2.cpp'])
        exp_package.pt_extras.c_tests = set(['test/test3.c'])
        self.assertEqual(package, exp_package)

        path = os.path.join(self.repo_root, 'groups', 'gr2', 'gr2b+c')
        package = repoloadutil.load_package(
            path, repounits.PackageType.PACKAGE_PLUS)
        exp_package = repounits.Package(path,
                                        repounits.PackageType.PACKAGE_PLUS)
        exp_package.pub = set(['h1.h', 'h2.h'])
        exp_package.pt_extras = repounits.PlusPackageExtras()
        exp_package.pt_extras.headers = set(['h1.h', 'h2.h'])
        self.assertEqual(package, exp_package)
예제 #6
0
    def test_load_plus_package(self):
        path = os.path.join(self.repo_root, 'groups', 'gr2', 'gr2a+b')
        package = repoloadutil.load_package(path,
                                            repounits.PackageType.PACKAGE_PLUS)

        exp_package = repounits.Package(path,
                                        repounits.PackageType.PACKAGE_PLUS)
        exp_package.pt_extras = repounits.PlusPackageExtras()
        exp_package.pt_extras.headers = set(['h1.h', 'h2.h', 'subh/h3.h'])
        exp_package.pt_extras.cpp_sources = set(['h1.cpp', 'h2.cpp'])
        exp_package.pt_extras.cpp_tests = set(
            ['test/test1.cpp', 'test/test2.cpp'])
        exp_package.pt_extras.c_tests = set(['test/test3.c'])
        self.assertEqual(package, exp_package)

        path = os.path.join(self.repo_root, 'groups', 'gr2', 'gr2b+c')
        package = repoloadutil.load_package(path,
                                            repounits.PackageType.PACKAGE_PLUS)
        exp_package = repounits.Package(path,
                                        repounits.PackageType.PACKAGE_PLUS)
        exp_package.pub = set(['h1.h', 'h2.h'])
        exp_package.pt_extras = repounits.PlusPackageExtras()
        exp_package.pt_extras.headers = set(['h1.h', 'h2.h'])
        self.assertEqual(package, exp_package)