def test__very_basic(self): fs = FileSystem(path=['a', 'b']) subdir = Directory() subdir.add(name='file', entry=File()) fs.rootdirectory().add(name='subdir', entry=subdir) file = fs.rootdirectory().find(['subdir', 'file']) self.failIfEqual(file, None) self.failUnless(isinstance(file, File)) self.assertEqual(subdir.abspath(), ['a', 'b', 'subdir']) self.assertEqual(subdir.relpath(fs.rootdirectory()), ['subdir']) self.assertRaises(Directory.AlreadyMounted, fs.rootdirectory().add, name='subdir', entry=File()) pass
def test__basic(self): source = Directory() source.add( name=const.CONFIX2_PKG, entry=File(lines=[ 'PACKAGE_NAME("Local-Install")', 'PACKAGE_VERSION("1.2.3")' ])) source.add( name=const.CONFIX2_DIR, entry=File(lines=[ 'DIRECTORY(["headers-only"])', 'DIRECTORY(["headers-with-library"])', 'DIRECTORY(["exe"])' ])) headers_only = source.add(name='headers-only', entry=Directory()) headers_with_library = source.add(name='headers-with-library', entry=Directory()) exe = source.add(name='exe', entry=Directory()) headers_only.add( name=const.CONFIX2_DIR, entry=File(lines=[ 'H(filename="header-1.h", install=["headers-only-install"])', 'H(filename="header-2.h", install=["headers-only-install"])' ])) headers_only.add(name='header-1.h', entry=File()) headers_only.add(name='header-2.h', entry=File()) headers_with_library.add( name=const.CONFIX2_DIR, entry=File(lines=[ 'LIBRARY(members=[H(filename="library-1.h", install=["headers-with-library-install"]),' ' H(filename="library-2.h", install=["headers-with-library-install"]),' ' C(filename="library-1.c"),' ' C(filename="library-2.c")', ' ]', ' )' ])) headers_with_library.add(name='library-1.h', entry=File(lines=['void library1(void);'])) headers_with_library.add(name='library-2.h', entry=File(lines=['void library2(void);'])) headers_with_library.add( name='library-1.c', entry=File(lines=[ '#include <headers-only-install/header-1.h>', 'void library1(void) {}' ])) headers_with_library.add( name='library-2.c', entry=File(lines=[ '#include <headers-only-install/header-2.h>', 'void library2(void) {}' ])) exe.add(name=const.CONFIX2_DIR, entry=File(lines=[ 'EXECUTABLE(exename="exe",', ' center=C(filename="main.c"))', ])) exe.add( name='main.c', entry=File(lines=[ '#include <headers-only-install/header-1.h>', '#include <headers-only-install/header-2.h>', '#include <headers-with-library-install/library-1.h>', '#include <headers-with-library-install/library-2.h>', 'int main(void) {', ' library1();', ' library2();', '}' ])) fs = FileSystem(path=self.rootpath()) source = fs.rootdirectory().add(name='source', entry=source) build = fs.rootdirectory().add(name='build', entry=Directory()) package = LocalPackage( rootdirectory=source, setups=[ExplicitDirectorySetup(), ExplicitCSetup(), CMakeSetup()]) package.boil(external_nodes=[]) package.output() fs.sync() commands.cmake(packageroot=source.abspath(), builddir=build.abspath(), args=[]) commands.make(builddir=build.abspath(), args=[]) scan.rescan_dir(build) # I doubt that this will hold under Windows :-) if it becomes # an issue we will skip this check self.failUnless(build.find(['exe', 'exe'])) pass
def test(self): source = Directory() source.add( name=const.CONFIX2_PKG, entry=File(lines=[ 'PACKAGE_NAME("Public-Install")', 'PACKAGE_VERSION("1.2.3")' ])) source.add(name=const.CONFIX2_DIR, entry=File(lines=[ 'DIRECTORY(["headers"])', 'DIRECTORY(["library"])', 'DIRECTORY(["exe"])', 'DIRECTORY(["test"])' ])) headers = source.add(name='headers', entry=Directory()) library = source.add(name='library', entry=Directory()) exe = source.add(name='exe', entry=Directory()) test = source.add(name='test', entry=Directory()) headers.add(name=const.CONFIX2_DIR, entry=File(lines=[ 'H(filename="flat-header.h")', 'H(filename="subdir-header.h", install=["subdir"])', ])) headers.add(name='flat-header.h', entry=File()) headers.add(name='subdir-header.h', entry=File()) library.add( name=const.CONFIX2_DIR, entry=File(lines=[ 'LIBRARY(basename="rary", members=[C(filename="library.c")])' ])) library.add(name='library.c', entry=File()) exe.add(name=const.CONFIX2_DIR, entry=File(lines=[ 'EXECUTABLE(exename="exe",', ' center=C(filename="main.c"))', ])) exe.add(name='main.c', entry=File(lines=['int main(void) { return 0; }'])) test.add(name=const.CONFIX2_DIR, entry=File(lines=[ 'EXECUTABLE(exename="test",', ' center=C(filename="main.c"),', ' what=EXECUTABLE_CHECK)', ])) test.add(name='main.c', entry=File(lines=['int main(void) { return 0; }'])) fs = FileSystem(path=self.rootpath()) source = fs.rootdirectory().add(name='source', entry=source) build = fs.rootdirectory().add(name='build', entry=Directory()) install = fs.rootdirectory().add(name='install', entry=Directory()) package = LocalPackage( rootdirectory=source, setups=[ExplicitDirectorySetup(), ExplicitCSetup(), CMakeSetup()]) package.boil(external_nodes=[]) package.output() fs.sync() commands.cmake( packageroot=source.abspath(), builddir=build.abspath(), args=['-DCMAKE_INSTALL_PREFIX=' + os.sep.join(install.abspath())]) commands.make(builddir=build.abspath(), args=['install']) scan.rescan_dir(install) self.failUnless(install.find(['include', 'flat-header.h'])) self.failUnless(install.find(['include', 'subdir', 'subdir-header.h'])) # if this fails, then you probably are running on Windows. self.failUnless(install.find(['lib', 'library.a'])) self.failUnless(install.find(['bin', 'exe'])) self.failIf(install.find(['bin', 'test'])) self.failUnless( install.find([ 'share', 'confix-%s' % const.REPO_VERSION, 'repo', package.repofilename() ])) pass