def test__long_mangled_name(self): fs = FileSystem(path=[]) fs.rootdirectory().add(name=const.CONFIX2_PKG, entry=File(lines=[ "PACKAGE_NAME('LibraryInMemoryTest')", "PACKAGE_VERSION('1.2.3')" ])) fs.rootdirectory().add(name=const.CONFIX2_DIR, entry=File(lines=["LIBRARY(members=[])"])) package = LocalPackage( rootdirectory=fs.rootdirectory(), setups=[ExplicitDirectorySetup(), ExplicitCSetup()]) package.boil(external_nodes=[]) found_lib_builder = None for b in package.rootbuilder().iter_builders(): if type(b) is LibraryBuilder: self.failUnless(found_lib_builder is None) found_lib_builder = b continue pass self.failIf(found_lib_builder is None) self.failUnless(found_lib_builder.basename() == 'LibraryInMemoryTest') pass
def test(self): fs = FileSystem(path=[]) fs.rootdirectory().add( name=const.CONFIX2_PKG, entry=File(lines=[ "PACKAGE_NAME('ExplicitLibraryVersionTest')", "PACKAGE_VERSION('1.2.3')" ])) fs.rootdirectory().add(name=const.CONFIX2_DIR, entry=File(lines=["LIBRARY_VERSION((6,6,6))"])) fs.rootdirectory().add(name='file.c', entry=File()) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[ConfixSetup(use_libtool=True)]) package.boil(external_nodes=[]) for b in package.rootbuilder().iter_builders(): if isinstance(b, LibraryBuilder): lib_builder = b break pass else: self.fail() pass self.failUnlessEqual(lib_builder.version(), (6, 6, 6)) self.failUnlessEqual(lib_builder.default_version(), "1.2.3") pass
def test(self): fs = FileSystem(path=[]) fs.rootdirectory().add( name=const.CONFIX2_PKG, entry=File(lines=["PACKAGE_NAME('"+self.__class__.__name__+"')", "PACKAGE_VERSION('1.2.3')"])) fs.rootdirectory().add( name=const.CONFIX2_DIR, entry=File(lines=["from libconfix.core.machinery.builder import Builder", "class MyBuilder(Builder):", " def locally_unique_id(self): return 'my_builder_id'", "ADD_BUILDER(builder=MyBuilder())"])) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[ExplicitSetup(use_libtool=True)]) package.boil(external_nodes=[]) for b in package.rootbuilder().iter_builders(): if b.locally_unique_id() == 'my_builder_id': break pass else: self.fail() pass pass
def test__implicit_name(self): fs = FileSystem(path=[]) fs.rootdirectory().add(name=const.CONFIX2_PKG, entry=File(lines=[ "PACKAGE_NAME('ExecutableInMemoryTest')", "PACKAGE_VERSION('1.2.3')" ])) fs.rootdirectory().add( name=const.CONFIX2_DIR, entry=File( lines=["EXECUTABLE(center=C(filename='main.c'), members=[])"])) fs.rootdirectory().add(name='main.c', entry=File()) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[ExplicitSetup(use_libtool=False)]) package.boil(external_nodes=[]) found_exe_builder = None for b in package.rootbuilder().iter_builders(): if isinstance(b, ExecutableBuilder): self.failUnless(found_exe_builder is None) found_exe_builder = b continue pass self.failIf(found_exe_builder is None) self.failUnless( found_exe_builder.exename() == 'ExecutableInMemoryTest_main') pass
def test(self): fs = dirhier.packageroot() fs.rootdirectory().add(name='file.h', entry=File(lines=[])) fs.rootdirectory().add(name='file.c', entry=File(lines=[])) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[ConfixSetup(use_libtool=False)]) package.boil(external_nodes=[]) file_h_builder = None file_c_builder = None library_builder = None for b in package.rootbuilder().iter_builders(): if isinstance(b, FileBuilder): if b.file().name() == 'file.h' and isinstance( b, HeaderBuilder): file_h_builder = b pass if b.file().name() == 'file.c' and isinstance(b, CBuilder): file_c_builder = b pass pass if isinstance(b, LibraryBuilder): library_builder = b pass pass self.failUnless(isinstance(file_h_builder, HeaderBuilder)) self.failUnless(isinstance(file_c_builder, CBuilder)) self.failUnless(isinstance(library_builder, LibraryBuilder)) self.failUnless(file_h_builder in library_builder.members()) self.failUnless(file_c_builder in library_builder.members()) pass
def testExplicitName(self): fs = FileSystem(path=['don\'t', 'care']) fs.rootdirectory().add( name=const.CONFIX2_PKG, entry=File(lines=[ "PACKAGE_NAME('LibraryNames.testExplicitName')", "PACKAGE_VERSION('1.2.3')" ])) fs.rootdirectory().add(name=const.CONFIX2_DIR, entry=File(lines=["LIBNAME('myownname')"])) fs.rootdirectory().add(name='file.c', entry=File()) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[ConfixSetup(use_libtool=False)]) package.boil(external_nodes=[]) for b in package.rootbuilder().iter_builders(): if isinstance(b, LibraryBuilder): self.failUnlessEqual(b.basename(), 'myownname') break pass else: self.fail() pass pass
def test(self): fs = FileSystem(path=['don\'t', 'care']) fs.rootdirectory().add( name=const.CONFIX2_PKG, entry=File(lines=[ "PACKAGE_NAME('" + self.__class__.__name__ + "')", "PACKAGE_VERSION('1.2.3')", "from libconfix.setups.explicit_setup import ExplicitSetup", "SETUP([ExplicitSetup(use_libtool=True)])" ])) fs.rootdirectory().add( name=const.CONFIX2_DIR, entry=File(lines=["DIRECTORY(['dir1'])", "DIRECTORY(['dir2'])"])) dir1 = fs.rootdirectory().add(name='dir1', entry=Directory()) dir2 = fs.rootdirectory().add(name='dir2', entry=Directory()) dir1.add(name=const.CONFIX2_DIR, entry=File(lines=["PROVIDE_SYMBOL('x')"])) dir2.add(name=const.CONFIX2_DIR, entry=File(lines=["PROVIDE_SYMBOL('x')"])) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=None) try: package.boil(external_nodes=[]) self.fail() except Error: pass pass
def setUp(self): self.fs_ = dirhier.packageroot() liblo = self.fs_.rootdirectory().add(name='lo', entry=Directory()) liblo.add(name=const.CONFIX2_DIR, entry=File(lines=["LIBRARY_VERSION((1,2,3))"])) liblo.add(name='lo.h', entry=File(lines=[ '#ifndef LO_H', '# define LO_H', '#endif', 'void lo();' ])) liblo.add(name='lo.c', entry=File(lines=['void lo() {}'])) self.package_ = LocalPackage( rootdirectory=self.fs_.rootdirectory(), setups=[ConfixSetup(use_libtool=self.use_libtool())]) self.package_.boil(external_nodes=[]) self.package_.output() self.lodir_builder_ = self.package_.rootbuilder().find_entry_builder( ['lo']) self.failIf(self.lodir_builder_ is None) self.lodir_output_builder_ = find_automake_output_builder( self.lodir_builder_) self.failIf(self.lodir_output_builder_ is None) self.lolib_builder_ = None for b in self.lodir_builder_.iter_builders(): if isinstance(b, LibraryBuilder): self.lolib_builder_ = b pass pass assert self.lolib_builder_ is not None pass
def setUp(self): fs = FileSystem(path=['', 'path', 'to', 'it']) fs.rootdirectory().add(name=const.CONFIX2_PKG, entry=File(lines=[ "PACKAGE_NAME('ExternalLibraryTest')", "PACKAGE_VERSION('1.2.3')" ])) fs.rootdirectory().add(name=const.CONFIX2_DIR, entry=File(lines=[ 'DIRECTORY(["lolo"])', 'DIRECTORY(["lo"])', 'DIRECTORY(["hi"])', ])) lolo = fs.rootdirectory().add(name='lolo', entry=Directory()) lolo.add( name=const.CONFIX2_DIR, entry=File(lines=[ "PROVIDE_SYMBOL('lolo')", "EXTERNAL_LIBRARY(", " incpath=['-I/the/include/path/of/lolo'],", " libpath=['-L/the/first/library/path/of/lolo', '-L/the/second/library/path/of/lolo'],", " cflags=['lolo_cflags'],", " cxxflags=['lolo_cxxflags'],", " cmdlinemacros={'cmdlinemacro_lolo': 'value_lolo'},", " libs=['-llolo'])" ])) lo = fs.rootdirectory().add(name='lo', entry=Directory()) lo.add( name=const.CONFIX2_DIR, entry=File(lines=[ "REQUIRE_SYMBOL('lolo', URGENCY_ERROR)", "PROVIDE_SYMBOL('lo')", "EXTERNAL_LIBRARY(", " incpath=['-I/the/include/path/of/lo'],", " libpath=['-L/the/first/library/path/of/lo', '-L/the/second/library/path/of/lo'],", " cflags=['lo_cflags'],", " cxxflags=['lo_cxxflags'],", " cmdlinemacros={'cmdlinemacro_lo': 'value_lo'},", " libs=['-llo'])" ])) hi = fs.rootdirectory().add(name='hi', entry=Directory()) hi.add(name=const.CONFIX2_DIR, entry=File(lines=[ 'hi_c = C(filename="hi_c.c")', 'hi_cc = CXX(filename="hi_cc.cc")', 'LIBRARY(basename="hi", members=[hi_c, hi_cc])' ])) hi.add(name='hi_c.c', entry=File( lines=["// CONFIX:REQUIRE_SYMBOL('lo', URGENCY_ERROR)"])) hi.add(name='hi_cc.cc', entry=File( lines=["// CONFIX:REQUIRE_SYMBOL('lo', URGENCY_ERROR)"])) self.__package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[ExplicitSetup(use_libtool=True)]) self.__package.boil(external_nodes=[]) self.__package.output() pass
def testNoInstallPath(self): fs = dirhier.packageroot() fs.rootdirectory().add(name='file.h', entry=File(lines=[])) fs.rootdirectory().add(name='file.c', entry=File(lines=['#include "file.h"'])) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[ConfixSetup(use_libtool=False)]) package.boil(external_nodes=[]) self.failUnlessEqual(len(package.rootbuilder().requires()), 0) pass
def test__CMAKE_CMAKELISTS_ADD_INCLUDE_local_only(self): fs = FileSystem(path=['']) fs.rootdirectory().add( name=const.CONFIX2_PKG, entry=File(lines=[ 'PACKAGE_NAME("test_CMAKE_CMAKELISTS_ADD_INCLUDE_local_only")', 'PACKAGE_VERSION("1.2.3")' ])) fs.rootdirectory().add( name=const.CONFIX2_DIR, entry=File(lines=[ 'CMAKE_CMAKELISTS_ADD_INCLUDE("include1", CMAKE_BUILDINFO_LOCAL)', 'CMAKE_CMAKELISTS_ADD_INCLUDE("include2", CMAKE_BUILDINFO_LOCAL)' ])) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[ExplicitDirectorySetup(), CMakeSetup()]) package.boil(external_nodes=[]) package.output() self.failUnless('include1' in find_cmake_output_builder( package.rootbuilder()).top_cmakelists().get_includes()) self.failUnless('include2' in find_cmake_output_builder( package.rootbuilder()).top_cmakelists().get_includes()) for buildinfo in package.rootbuilder().iter_buildinfos(): self.failIf( isinstance(buildinfo, BuildInfo_Toplevel_CMakeLists_Include)) pass pass
def test__CMAKE_CMDLINE_MACROS_local_only(self): fs = FileSystem(path=[]) fs.rootdirectory().add( name=const.CONFIX2_PKG, entry=File(lines=[ 'PACKAGE_NAME("test_CMAKE_CMDLINE_MACROS_local_only")', 'PACKAGE_VERSION("1.2.3")' ])) fs.rootdirectory().add( name=const.CONFIX2_DIR, entry=File(lines=[ 'CMAKE_CMDLINE_MACROS(macros={"macro1": "value1", "macro2": "value2"}, flags=CMAKE_BUILDINFO_LOCAL)' ])) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[ExplicitDirectorySetup(), CMakeSetup()]) package.boil(external_nodes=[]) package.output() self.failUnless("-Dmacro1=value1" in find_cmake_output_builder( package.rootbuilder()).local_cmakelists().get_definitions()) self.failUnless("-Dmacro2=value2" in find_cmake_output_builder( package.rootbuilder()).local_cmakelists().get_definitions()) for buildinfo in package.rootbuilder().iter_buildinfos(): self.failIf( isinstance(buildinfo, BuildInfo_CommandlineMacros_CMake)) pass pass
def test(self): fs = FileSystem(path=[]) fs.rootdirectory().add( name=const.CONFIX2_PKG, entry=File(lines=['PACKAGE_NAME("'+self.__class__.__name__+'")', 'PACKAGE_VERSION("1.2.3")'])) fs.rootdirectory().add( name=const.CONFIX2_DIR, entry=File()) lo = fs.rootdirectory().add( name='lo', entry=Directory()) hi = fs.rootdirectory().add( name='hi', entry=Directory()) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[NullSetup()]) lodir_builder = DirectoryBuilder(directory=lo) lodir_builder.add_builder(DeferredProvider(provide=Provide_Symbol(symbol='the_deferred_provided_symbol'))) package.rootbuilder().add_builder(lodir_builder) hidir_builder = DirectoryBuilder(directory=hi) hidir_builder.add_require(Require_Symbol(symbol='the_deferred_provided_symbol', found_in=[], urgency=Require.URGENCY_ERROR)) package.rootbuilder().add_builder(hidir_builder) package.boil(external_nodes=[]) self.failUnless(lodir_builder in package.digraph().successors(hidir_builder)) pass
def setUp(self): fs = FileSystem(path=[], rootdirectory=intra_package.make_source_tree()) self.__package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[ExplicitDirectorySetup(), ExplicitCSetup(), CMakeSetup()]) self.__package.boil(external_nodes=[]) self.__package.output() self.__lo_output_builder = find_cmake_output_builder(self.__package.rootbuilder().find_entry_builder(['lo'])) self.__hi_output_builder = find_cmake_output_builder(self.__package.rootbuilder().find_entry_builder(['hi'])) self.__exe_output_builder = find_cmake_output_builder(self.__package.rootbuilder().find_entry_builder(['exe'])) pass
class CheckProgramBase(PersistentTestCase): def __init__(self, methodName): PersistentTestCase.__init__(self, methodName) self.fs_ = None pass def use_libtool(self): assert 0 def setUp(self): PersistentTestCase.setUp(self) self.fs_ = FileSystem(path=self.rootpath()) self.build_ = self.fs_.rootdirectory().add(name='build', entry=Directory()) self.source_ = self.fs_.rootdirectory().add(name='source', entry=Directory()) self.source_.add( name=const.CONFIX2_PKG, entry=File(lines=[ 'PACKAGE_NAME("CheckProgramTest")', 'PACKAGE_VERSION("1.2.3")' ])) self.source_.add(name=const.CONFIX2_DIR, entry=File(lines=[ "TESTS_ENVIRONMENT('name', 'value')", "EXECUTABLE(center=C(filename='main.c'),", " exename='the-test-program',", " what=EXECUTABLE_CHECK)" ])) self.source_.add( name='main.c', entry=File(lines=[ '#include <sys/types.h>', '#include <sys/stat.h>', '#include <fcntl.h>', '#include <stdlib.h>', '#include <string.h>', 'int main(void) {', ' const char* name = getenv("name");', ' if (!name)', ' return 1;', ' if (strcmp(name, "value"))', ' return 1;', ' return open("' + os.sep.join(self.build_.abspath() + ['my-check-was-here']) + '",', ' O_CREAT|O_RDWR, 0644) >=0?0:1;', '}' ])) self.package_ = LocalPackage( rootdirectory=self.source_, setups=[ExplicitSetup(use_libtool=self.use_libtool())]) self.package_.boil(external_nodes=[]) self.package_.output() pass pass
def test__CMAKE_CMAKELISTS_ADD_FIND_CALL_propagate_and_local(self): fs = FileSystem(path=['']) fs.rootdirectory().add( name=const.CONFIX2_PKG, entry=File(lines=[ 'PACKAGE_NAME("test_CMAKE_CMAKELISTS_ADD_FIND_CALL_propagate_and_local")', 'PACKAGE_VERSION("1.2.3")' ])) fs.rootdirectory().add( name=const.CONFIX2_DIR, entry=File(lines=[ 'CMAKE_CMAKELISTS_ADD_FIND_CALL("call", (CMAKE_BUILDINFO_PROPAGATE, CMAKE_BUILDINFO_LOCAL))' ])) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[ExplicitDirectorySetup(), CMakeSetup()]) package.boil(external_nodes=[]) package.output() self.failUnless('call' in find_cmake_output_builder( package.rootbuilder()).top_cmakelists().get_find_calls()) for buildinfo in package.rootbuilder().iter_buildinfos(): if isinstance(buildinfo, BuildInfo_Toplevel_CMakeLists_FindCall): break pass else: self.fail() pass pass
def test__library(self): rootdir = Directory() rootdir.add( name=const.CONFIX2_PKG, entry=File(lines=["PACKAGE_NAME('LibtoolInMemoryTest.testLibrary')", "PACKAGE_VERSION('1.2.3')"])) rootdir.add( name=const.CONFIX2_DIR, entry=File(lines=["LIBRARY(members=[C(filename='file.c')])"])) rootdir.add( name='file.c', entry=File()) package = LocalPackage(rootdirectory=rootdir, setups=[ExplicitSetup(use_libtool=True)]) package.boil(external_nodes=[]) package.output() library_builder = None for b in package.rootbuilder().iter_builders(): if isinstance(b, LibraryBuilder): self.failUnless(library_builder is None) library_builder = b pass pass self.failIf(library_builder is None) automake_output_builder = find_automake_output_builder(package.rootbuilder()) self.failUnless('lib'+library_builder.basename()+'.la' in automake_output_builder.makefile_am().ltlibraries()) pass
def test(self): fs = FileSystem(path=[]) fs.rootdirectory().add( name=const.CONFIX2_PKG, entry=File(lines=['PACKAGE_NAME("'+self.__class__.__name__+'")', 'PACKAGE_VERSION("1.2.3")'])) fs.rootdirectory().add( name=const.CONFIX2_DIR, entry=File()) lo1 = fs.rootdirectory().add( name='lo1', entry=Directory()) lo2 = fs.rootdirectory().add( name='lo2', entry=Directory()) hi = fs.rootdirectory().add( name='hi', entry=Directory()) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[NullSetup()]) lo1_builder = DirectoryBuilder(directory=lo1) lo1_builder.add_provide(Provide_Symbol(symbol='the_ambiguous_symbol')) package.rootbuilder().add_builder(lo1_builder) lo2_builder = DirectoryBuilder(directory=lo2) lo2_builder.add_provide(Provide_Symbol(symbol='the_ambiguous_symbol')) package.rootbuilder().add_builder(lo2_builder) hi_builder = DirectoryBuilder(directory=hi) hi_builder.add_require(Require_Symbol(symbol='the_ambiguous_symbol', found_in=[])) package.rootbuilder().add_builder(hi_builder) self.failUnlessRaises(Error, package.boil, external_nodes=[]) pass
def testProvides(self): fs = FileSystem(path=[]) fs.rootdirectory().add( name=const.CONFIX2_PKG, entry=File(['PACKAGE_NAME("argh")', 'PACKAGE_VERSION("1.2.3")'])) fs.rootdirectory().add(name=const.CONFIX2_DIR, entry=File()) file = fs.rootdirectory().add( name='file', entry=File(lines=[ 'from libconfix.core.machinery.provide import Provide_Symbol', "PROVIDE_SYMBOL(symbol='sym1')", "PROVIDE_SYMBOL(symbol='sym2', match=EXACT_MATCH)", "PROVIDE_SYMBOL(symbol='sym4', match=GLOB_MATCH)", "PROVIDE(Provide_Symbol(symbol='sym5'))" ])) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[NullSetup()]) builder = FileInterfaceTestBuilder(file=file) package.rootbuilder().add_builder(builder) self.assertEqual(len(builder.dependency_info().provides()), 4) sym1 = None sym2 = None sym3 = None sym4 = None sym5 = None for p in builder.dependency_info().provides(): self.assert_(isinstance(p, Provide_Symbol)) if p.symbol() == 'sym1': sym1 = p continue if p.symbol() == 'sym2': sym2 = p continue if p.symbol() == 'sym4': sym4 = p continue if p.symbol() == 'sym5': sym5 = p continue pass self.assertNotEqual(sym1, None) self.assertNotEqual(sym2, None) self.assertNotEqual(sym4, None) self.assertNotEqual(sym5, None) self.assertEqual(sym1.match(), Provide.EXACT_MATCH) self.assertEqual(sym2.match(), Provide.EXACT_MATCH) self.assertEqual(sym4.match(), Provide.GLOB_MATCH) self.assertEqual(sym5.match(), Provide.EXACT_MATCH) pass
def test__relocated_header_requires_relocated_header(self): fs = FileSystem(path=['dont\'t', 'care']) fs.rootdirectory().add(name=const.CONFIX2_PKG, entry=File(lines=[ "PACKAGE_NAME('" + self.__class__.__name__ + "')", "PACKAGE_VERSION('1.2.3')" ])) fs.rootdirectory().add(name=const.CONFIX2_DIR, entry=File()) include = fs.rootdirectory().add(name='include', entry=Directory()) include.add(name=const.CONFIX2_DIR, entry=File(lines=[ "RELOCATE_HEADER(filename='a.h',", " directory=['src'])", "RELOCATE_HEADER(filename='b.h',", " directory=['src'])" ])) include.add(name='a.h', entry=File(lines=[ '#ifndef A_H', '#define A_H', '// CONFIX:REQUIRE_H("b.h", REQUIRED)', '#include "b.h"', 'void a(void);' '#endif' ])) include.add( name='b.h', entry=File( lines=['#ifndef B_H', '#define B_H', 'void b(void);' '#endif'])) src = fs.rootdirectory().add(name='src', entry=Directory()) src.add(name=const.CONFIX2_DIR, entry=File()) src.add(name='a.c', entry=File(lines=[ '#include <a.h>', '// CONFIX:REQUIRE_H("a.h", REQUIRED)', 'void a(void) {}' ])) src.add(name='b.c', entry=File(lines=[ '#include <b.h>', '// CONFIX:REQUIRE_H("b.h", REQUIRED)', 'void b(void) {}' ])) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[ConfixSetup(use_libtool=False)]) package.boil(external_nodes=[]) pass
class IntraPackageBuildBase(PersistentTestCase): def __init__(self, methodName): PersistentTestCase.__init__(self, methodName) pass def use_libtool(self): assert 0 def setUp(self): PersistentTestCase.setUp(self) self.sourcerootpath_ = self.rootpath() + ['source'] self.buildrootpath_ = self.rootpath() + ['build'] self.fs_ = FileSystem(path=self.sourcerootpath_, rootdirectory=packages.lo_hi1_hi2_highest_exe(name='intrapackagebuildtest', version='1.2.3')) self.package_ = LocalPackage(rootdirectory=self.fs_.rootdirectory(), setups=[ConfixSetup(use_libtool=self.use_libtool())]) self.package_.boil(external_nodes=[]) self.package_.output() self.fs_.sync() pass def test(self): try: bootstrap.bootstrap( packageroot=self.sourcerootpath_, path=None, use_kde_hack=False, argv0=sys.argv[0]) os.makedirs(os.sep.join(self.buildrootpath_)) configure.configure( packageroot=self.sourcerootpath_, builddir=self.buildrootpath_, prefix='/dev/null'.split(os.sep), readonly_prefixes=[]) make.make(builddir=self.buildrootpath_, args=[]) except Error, e: sys.stderr.write(`e`+'\n') raise self.failUnless(os.path.isfile(os.sep.join(self.buildrootpath_+['lo', 'lo.o']))) self.failUnless(os.path.isfile(os.sep.join(self.buildrootpath_+['hi1', 'hi1.o']))) self.failUnless(os.path.isfile(os.sep.join(self.buildrootpath_+['hi2', 'hi2.o']))) self.failUnless(os.path.isfile(os.sep.join(self.buildrootpath_+['highest', 'highest.o']))) self.failUnless(os.path.isfile(os.sep.join(self.buildrootpath_+['exe', 'main.o']))) self.failUnless(os.path.isfile(os.sep.join(self.buildrootpath_+['exe', 'intrapackagebuildtest_exe_main']))) pass
def test(self): fs = FileSystem(path=['don\'t', 'care']) fs.rootdirectory().add(name=const.CONFIX2_PKG, entry=File(lines=[ "PACKAGE_NAME('ProvideStringUpdateTest')", "PACKAGE_VERSION('1.2.3')" ])) fs.rootdirectory().add( name=const.CONFIX2_DIR, entry=File( lines=["PROVIDE_SYMBOL('aaa')", "PROVIDE_SYMBOL('aaa')"])) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[NullSetup()]) package.boil(external_nodes=[]) pass
def setUp(self): PersistentTestCase.setUp(self) self.sourcerootpath_ = self.rootpath() + ['source'] self.buildrootpath_ = self.rootpath() + ['build'] self.fs_ = FileSystem(path=self.sourcerootpath_, rootdirectory=packages.lo_hi1_hi2_highest_exe(name='intrapackagebuildtest', version='1.2.3')) self.package_ = LocalPackage(rootdirectory=self.fs_.rootdirectory(), setups=[ConfixSetup(use_libtool=self.use_libtool())]) self.package_.boil(external_nodes=[]) self.package_.output() self.fs_.sync() pass
def test(self): fs = FileSystem(path=[]) fs.rootdirectory().add(name=const.CONFIX2_PKG, entry=File(lines=[ "PACKAGE_NAME('" + self.__class__.__name__ + ".once')", "PACKAGE_VERSION('1.2.3')" ])) fs.rootdirectory().add(name=const.CONFIX2_DIR, entry=File()) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[NullSetup()]) package.rootbuilder().add_builder(EnlargeForceDummy()) self.failUnlessRaises(LocalPackage.InfiniteLoopError, package.boil, external_nodes=[]) pass
def PACKAGE(): global DONE_PACKAGE global package global filesystem if DONE_PACKAGE: return 0 SETTINGS() debug.message("scanning package in %s ..." % CONFIG.packageroot()) before = time.time() filesystem = scan_filesystem(path=CONFIG.packageroot().split(os.sep)) if CONFIG.overlayroot() is not None: overlayed_filesystem = scan_filesystem( path=CONFIG.overlayroot().split(os.sep)) filesystem = OverlayFileSystem(original=filesystem, overlay=overlayed_filesystem) pass package = LocalPackage(rootdirectory=filesystem.rootdirectory(), setups=None) DONE_PACKAGE = 1 debug.message('done scanning (' + str(time.time() - before) + ' seconds)') return 0
def test(self): fs = FileSystem(path=[]) fs.rootdirectory().add( name=const.CONFIX2_PKG, entry=File(lines=["PACKAGE_NAME('"+self.__class__.__name__+"')", "PACKAGE_VERSION('1.2.3')"])) fs.rootdirectory().add( name=const.CONFIX2_DIR, entry=File(lines=["DIRECTORY(['lo'])", "DIRECTORY(['hi'])", ])) lo = fs.rootdirectory().add( name='lo', entry=Directory()) lo.add( name=const.CONFIX2_DIR, entry=File(lines=["from libconfix.core.hierarchy.tests.common_iface_suite import BUILDINFORMATION_propagates_Test", "BUILDINFORMATION(BUILDINFORMATION_propagates_Test.TestBuildInformation())", "PROVIDE_SYMBOL('test')"])) hi = fs.rootdirectory().add( name='hi', entry=Directory()) hi.add( name=const.CONFIX2_DIR, entry=File(lines=["from libconfix.core.hierarchy.tests.common_iface_suite import BUILDINFORMATION_propagates_Test", "REQUIRE_SYMBOL('test', URGENCY_ERROR)", "ADD_BUILDER(BUILDINFORMATION_propagates_Test.TestBuildInformationReceiver())" ])) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[Boilerplate(), C()]) package.boil(external_nodes=[]) for receiver in package.rootbuilder().find_entry_builder(['hi']).iter_builders(): try: getattr(receiver, 'seen_buildinfo') break except: pass pass else: self.fail() pass self.failUnless(receiver.seen_buildinfo) pass
def test(self): fs = dirhier.packageroot() file = fs.rootdirectory().add(name='x.iface', entry=File(lines=['REQUIRE_SYMBOL(symbol="unknown_symbol", urgency=URGENCY_ERROR)'])) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[FileInterfaceTestSetup()]) self.failUnlessRaises(NotResolved, package.boil, external_nodes=[]) pass
def test(self): fs = FileSystem(path=[]) fs.rootdirectory().add(name=const.CONFIX2_PKG, entry=File(lines=[ "PACKAGE_NAME('NoInternalRequiresTest')", "PACKAGE_VERSION('1.2.3')" ])) fs.rootdirectory().add(name=const.CONFIX2_DIR, entry=File()) fs.rootdirectory().add(name='file1.h', entry=File(lines=["#include <file2.h>"])) fs.rootdirectory().add(name='file2.h', entry=File()) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[ConfixSetup(use_libtool=False)]) package.boil(external_nodes=[]) self.failIf(len(package.rootbuilder().requires()) != 0) pass
def test__basic(self): fs = FileSystem(path=[]) fs.rootdirectory().add( name=const.CONFIX2_PKG, entry=File(lines=[ 'PACKAGE_NAME("HierarchyInMemoryTest.basic")', 'PACKAGE_VERSION("1.2.3")' ])) fs.rootdirectory().add( name=const.CONFIX2_DIR, entry=File(lines=[ 'DIRECTORY(["directory0"])', 'DIRECTORY(["directory1"])' ])) fs.rootdirectory().add(name='directory0', entry=Directory()) fs.rootdirectory().add(name='directory1', entry=Directory()) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[ExplicitDirectorySetup(), CMakeSetup()]) package.boil(external_nodes=[]) package.output() cmake_output_builder = find_cmake_output_builder(package.rootbuilder()) self.failUnlessEqual( len(cmake_output_builder.local_cmakelists().get_subdirectories()), 2 # plus the admin stuff, confix-admin/cmake/Modules + 4) self.failUnless('directory0' in cmake_output_builder.local_cmakelists( ).get_subdirectories()) self.failUnless('directory1' in cmake_output_builder.local_cmakelists( ).get_subdirectories()) pass
def test__creator(self): fs = FileSystem(path=['a']) fs.rootdirectory().add( name=const.CONFIX2_PKG, entry=File(lines=[ "PACKAGE_NAME('ignore-entries-c')", "PACKAGE_VERSION('6.6.6')" ])) fs.rootdirectory().add(name=const.CONFIX2_DIR, entry=File(lines=[ 'IGNORE_ENTRIES(["ignored1.idl"])', 'IGNORE_FILE("ignored2.idl")' ])) fs.rootdirectory().add(name='ignored1.idl', entry=File()) fs.rootdirectory().add(name='ignored2.idl', entry=File()) fs.rootdirectory().add(name='not-ignored.idl', entry=File()) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[ConfixSetup(use_libtool=False)]) package.boil(external_nodes=[]) self.failIf( package.rootbuilder().find_entry_builder(path=['ignored1.idl'])) self.failIf( package.rootbuilder().find_entry_builder(path=['ignored2.idl'])) self.failUnless( package.rootbuilder().find_entry_builder(path=['not-ignored.idl'])) pass