def test_projectInitialization(self): project = StatMakefileProject(self.PROJECT_EXAMPLE_PATH) makFile = StatMakefile(self.PROJECT_EXAMPLE_PATH) self.assertEqual(self.PROJECT_EXAMPLE_PATH, project.makefile) self.assertEqual(self.PROJECT_EXAMPLE_NAME, project.name) self.assertEqual(makFile[StatMakefile.NAME], project.outputName) self.assertSameItems([makFile[key] for key in makFile], [project[key] for key in project])
def setUp(self): self.makefile = StatMakefile(TEST_MAKEFILE_NAME) self.execute = self.patch(CUT, execute.__name__, return_value=(0, [])) self.patch(CUT, 'os.environ', new=TEST_ENVIRONMENT_MOCK) self.patch(CUT, formatMakeCommand.__name__, side_effect=formatMakeCommandFake) self.expectedCommand = formatMakeCommandFake(TEST_MAKEFILE_NAME, TEST_MAKE_ARGUMENTS)
def test_initializationUponNoneExistingMakefile(self): nonExistingFile = './non_existing_file.mak' try: StatMakefile(nonExistingFile) except StatMakFileException as e: self.assertEqual( "Makefile '{fileName}' doesn't exist!".format( fileName=nonExistingFile), str(e)) else: self.fail('The operation should have raised an exception')
def test_parsingOfDynamicallyDefinedValues(self): expected = { StatMakefile.SOURCES: [ 'test_main.c', 'code/src/sys_checksum.c', 'code/src/fletcher.c', 'tests/src/ut_fletcher_tests.c', 'tests/src/ut_checksum_tests.c', 'shared/fa/src/ut_fa_stub.c' ], StatMakefile.INCLUDES: ['code/inc', 'tests/inc'] } parser = StatMakefile(self.DYNAMIC_MAKEFILE) for variable in expected: self.assertEqual(expected[variable], parser[variable].split())
def test_generate(self): config = StatConfiguration() makFile = attributes.AUTO_GENERATED_MAKEFILE generator = StatMakefileGenerator(productMakefile=TEST_PRODUCT_FILE) generator.generate() self.assertTrue(os.path.isfile(makFile)) self.parser = StatMakefile(makFile) for parameter in iter(config): self.assertEqual(config[parameter], self.parser[parameter]) self.assertEqual(TEST_PRODUCT_NAME, self.parser[StatMakefile.NAME]) self.assertEqual(TEST_PRODUCT_EXEC, self.parser[StatMakefile.EXEC]) self.assertEqual(platform.system(), self.parser[StatMakefile.OS]) self.__verifyProductMakefileIsIncluded() self.__verifyToolsMakefileIsIncluded() os.remove(makFile)
def test_initializationUponSimpleMakefile(self): expected = { StatMakefile.SOURCES: ['tests/src/sys_checksum.c', 'tests/src/ut_fletcher_tests.c'], StatMakefile.INCLUDES: ['tests/inc'], StatMakefile.INTERFACES: [], StatMakefile.DEFINES: [ 'SIMPLE_DEFINE', 'ANOTHER_DEFINE', 'ADDITIONAL_DEFINE', 'EXTRA_DEFINE', 'SPARE_DEFINE', 'LAST_DEFINE', 'DEFINITION_VALUED=7', 'DEFINITION_SIMPLE' ], } parser = StatMakefile(self.SIMPLE_MAKEFILE) self.assertEqual(parser.name, os.path.basename(self.SIMPLE_MAKEFILE).split('.')[0]) for variable in expected: self.assertEqual(expected[variable], parser[variable].split()) self.assertEqual('simple', parser['NAME'])
def test_parsingOfCompoundMakefileWithInclude(self): expected = { StatMakefile.SOURCES: [ 'test_main.c', 'code/src/sys_checksum.c', 'code/src/tools.c', 'code/src/logs.c', 'code/src/fletcher.c', 'tests/src/ut_fletcher_tests.c', 'tests/src/ut_checksum_tests.c', 'shared/fa/src/ut_fa_stub.c' ], StatMakefile.INCLUDES: ['code/inc', 'tests/inc'], StatMakefile.DEFINES: [ 'SIMPLE_DEFINE', 'ANOTHER_DEFINE', 'ADDITIONAL_DEFINE', 'EXTRA_DEFINE', 'SPARE_DEFINE', 'LAST_DEFINE', 'SYSTEM_DEFINE_EXTRA' ], } parser = StatMakefile(self.COMPOUND_MAKEFILE) for variable in expected: self.assertEqual(expected[variable], parser[variable].split())
def __init__(self, makefileName, makeArguments, isVerbose=True): self.__fileName = makefileName self.__makefile = StatMakefile(makefileName) self.__beSilent = not isVerbose self.__log = [] self.__arguments = makeArguments
def __readUserConfiguration(self): if os.path.isfile(attributes.CONFIG_FILENAME): self.update(StatMakefile(attributes.CONFIG_FILENAME))
def __init__(self, fileName): self.__fileName = fileName self.__makefile = StatMakefile(fileName) self.__tree = None