def test_define_linux_flags_with_std(self): """Define Linux Flags""" self.data_test['cmake'] = get_cmake_lists('./') self.data_test['std'] = 'c++17' under_test = Flags(self.data_test) under_test.define_linux_flags() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('-std=c++17' in content_test) cmakelists_test.close() self.data_test['cmake'] = get_cmake_lists('./') self.data_test['std'] = 'c++19' under_test = Flags(self.data_test) under_test.define_linux_flags() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('-std=c++11' in content_test) cmakelists_test.close()
def test_define_linux_flags_with_std(self): """Define Linux Flags""" self.data_test['cmake'] = get_cmake_lists('./') self.data_test['std'] = 'c++17' under_test = Flags(self.data_test) under_test.define_linux_flags() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('-std=c++17' in content_test) cmakelists_test.close() self.data_test['cmake'] = get_cmake_lists('./') self.data_test['std'] = 'c++19' under_test = Flags(self.data_test) under_test.define_linux_flags() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('-std=c++11' in content_test) cmakelists_test.close()
def init_files(self, vs_project, cmake_lists): """ Initialize opening of CMakeLists.txt and VS Project files :param vs_project: Visual Studio project file path :type vs_project: str :param cmake_lists: CMakeLists.txt file path :type cmake_lists: str """ # VS Project (.vcxproj) temp_path = os.path.splitext(vs_project) if temp_path[1] == '.vcxproj': message('Path to project = %s' % vs_project, '') self.data['vcxproj'] = get_vcxproj_data(vs_project) else: # pragma: no cover message( 'This file is not a ".vcxproj". Be sure you give the right file', 'error') exit(1) # CMake Project (CMakeLists.txt) if os.path.exists(cmake_lists): self.data['cmake'] = get_cmake_lists(cmake_lists) else: message( 'The path given for the CMakeLists does not exist ! ' 'He will be generated in current directory.', 'error') self.data['cmake'] = get_cmake_lists() self.write_cmake_headers(vs_project)
def test_add_cmake_project(self): """Add CMake Project""" self.data_test['cmake'] = get_cmake_lists(self.cur_dir) under_test = ProjectVariables(self.data_test) # Case CXX language under_test.add_cmake_project(['cpp']) self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('project(${PROJECT_NAME} CXX)' in content_test) cmakelists_test.close() # Case C language under_test.cmake = get_cmake_lists(self.cur_dir) under_test.add_cmake_project(['c']) under_test.cmake.close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('project(${PROJECT_NAME} C)' in content_test) cmakelists_test.close()
def init_files(self, vs_project, cmake_lists): """ Initialize opening of CMake and VS Project files :param vs_project: Visual Studio project file path :type vs_project: str :param cmake_lists: CMakeLists.txt file path :type cmake_lists: str """ # VS Project (.vcxproj) if vs_project: temp_path = os.path.splitext(vs_project) if temp_path[1] == '.vcxproj': send('Project to convert = ' + vs_project, '') self.data['vcxproj'] = get_vcxproj_data(vs_project) else: # pragma: no cover send( 'This file is not a ".vcxproj". Be sure you give the right file', 'error') exit(1) # CMakeLists if cmake_lists: if os.path.exists(cmake_lists): self.data['cmake'] = get_cmake_lists(cmake_lists) if not self.data['cmake']: send( 'CMakeLists.txt path is not set. ' 'He will be generated in current directory.', 'warn') self.data['cmake'] = get_cmake_lists()
def test_add_cmake_project(self): """Add CMake Project""" self.data_test['cmake'] = get_cmake_lists(self.cur_dir) under_test = ProjectVariables(self.data_test) # Case CXX language under_test.add_cmake_project(['cpp']) self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('project(${PROJECT_NAME} CXX)' in content_test) cmakelists_test.close() # Case C language under_test.cmake = get_cmake_lists(self.cur_dir) under_test.add_cmake_project(['c']) under_test.cmake.close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('project(${PROJECT_NAME} C)' in content_test) cmakelists_test.close()
def test_add_outputs_variables(self): """Add Outputs Variables""" # If NO output is given self.data_test['cmake'] = get_cmake_lists(self.cur_dir) under_test = ProjectVariables(self.data_test) under_test.add_project_variables() under_test.add_outputs_variables() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('OUTPUT_DEBUG ../../../build/vc2017_x64d/bin/', content_test) self.assertTrue('OUTPUT_REL ../../../build/vc2017_x64/bin/' in content_test) cmakelists_test.close() # If output is given under_test.output = '../output_binaries' under_test.cmake = get_cmake_lists(self.cur_dir) under_test.add_outputs_variables() under_test.cmake.close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('OUTPUT_DEBUG ../output_binaries/${CMAKE_BUILD_TYPE}', content_test) self.assertTrue('OUTPUT_REL ../output_binaries/${CMAKE_BUILD_TYPE}' in content_test) cmakelists_test.close()
def init_files(self, vs_project, cmake_lists): """ Initialize opening of CMakeLists.txt and VS Project files :param vs_project: Visual Studio project file path :type vs_project: str :param cmake_lists: CMakeLists.txt file path :type cmake_lists: str """ # VS Project (.vcxproj) if vs_project: temp_path = os.path.splitext(vs_project) if temp_path[1] == '.vcxproj': send('Project to convert = ' + vs_project, '') self.data['vcxproj'] = get_vcxproj_data(vs_project) else: # pragma: no cover send('This file is not a ".vcxproj". Be sure you give the right file', 'error') exit(1) # Cmake Porject (CMakeLists.txt) if cmake_lists: if os.path.exists(cmake_lists): self.data['cmake'] = get_cmake_lists(cmake_lists) if not self.data['cmake']: send( 'CMakeLists.txt path is not set. ' 'He will be generated in current directory.', 'warn' ) self.data['cmake'] = get_cmake_lists()
def test_inclusion_of_cmake_is_written(self): """Inclusion of ".cmake" File is Written""" data_test = { 'cmake': './', 'cmakeoutput': '', 'vcxproj': self.vs_project, 'project': self.vs_project, 'dependencies': [], 'include': '../../test.txt', 'includecmake': '../../test.cmake', 'additional': '', 'std': '', } under_test = DataConverter(data_test) under_test.init_files(self.vs_project, '.') under_test.data['cmake'] = get_cmake_lists('./') under_test.create_data() under_test.close_cmake_file() cmakelists_test = open('CMakeLists.txt') content_test = cmakelists_test.read() # Includes are added self.assertTrue('Include files and directories' in content_test) self.assertTrue('../../test.cmake' in content_test) # File "test.txt" is not added because it does not exist self.assertTrue('../../test.txt' not in content_test) cmakelists_test.close()
def test_add_artefact_target_outputs(self): """Add Artefact Target Outputs""" self.data_test['cmake'] = get_cmake_lists(self.cur_dir) under_test = ProjectVariables(self.data_test) under_test.add_artefact_target_outputs() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue( 'set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_DEBUG}")' in content_test) self.assertTrue( 'set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_DEBUG}")' in content_test) self.assertTrue( 'set(CMAKE_EXECUTABLE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_DEBUG}' in content_test) self.assertTrue( 'set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_REL}")' in content_test) self.assertTrue( 'set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_REL}")' in content_test) self.assertTrue( 'set(CMAKE_EXECUTABLE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_REL}' in content_test) cmakelists_test.close()
def test_add_artefact_target_outputs(self): """Add Artefact Target Outputs""" self.data_test['cmake'] = get_cmake_lists(self.cur_dir) under_test = ProjectVariables(self.data_test) under_test.add_artefact_target_outputs() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue( 'set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_DEBUG}")' in content_test ) self.assertTrue( 'set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_DEBUG}")' in content_test ) self.assertTrue( 'set(CMAKE_EXECUTABLE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_DEBUG}' in content_test ) self.assertTrue( 'set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_REL}")' in content_test ) self.assertTrue( 'set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_REL}")' in content_test ) self.assertTrue( 'set(CMAKE_EXECUTABLE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_REL}' in content_test ) cmakelists_test.close()
def test_get_cmakelists(self): """Get CMakeLists.txt""" under_test = get_cmake_lists('./') self.assertTrue(under_test) self.assertIsInstance(under_test, _io.TextIOWrapper)
def test_add_outputs_variables(self): """Add Outputs Variables""" # TODO If NO output is given # self.data_test['cmake'] = get_cmake_lists(context, self.cur_dir) under_test = VCXProjectVariables(self.data_test) # # under_test.add_project_variables() # under_test.add_outputs_variables() # # self.data_test['cmake'].close() # # cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir) # content_test = cmakelists_test.read() # # self.assertTrue('OUTPUT_DEBUG ../../../build/vc2017_x64d/bin/', content_test) # self.assertTrue('OUTPUT_REL ../../../build/vc2017_x64/bin/' in content_test) # # cmakelists_test.close() # If output is given under_test.output = '../output_binaries' under_test.cmake = get_cmake_lists(context, self.cur_dir) under_test.add_outputs_variables() under_test.cmake.close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir) content_test = cmakelists_test.read() self.assertTrue('OUTPUT_DEBUG ../output_binaries/${CMAKE_BUILD_TYPE}', content_test) self.assertTrue('OUTPUT_REL ../output_binaries/${CMAKE_BUILD_TYPE}' in content_test) cmakelists_test.close()
def test_get_cmakelists(self): """Get CMakeLists.txt""" under_test = get_cmake_lists('./') self.assertTrue(under_test) self.assertIsInstance(under_test, _io.TextIOWrapper)
def test_write_flags(self): """Write Flags""" self.data_test['cmake'] = get_cmake_lists('./') under_test = Flags(self.data_test) self.assertFalse(under_test.win_deb_flags) self.assertFalse(under_test.win_rel_flags) under_test.write_flags() self.assertTrue(under_test.win_deb_flags) self.assertEqual(' /W4 /MD /Od /Zi /EHsc', under_test.win_deb_flags) self.assertTrue(under_test.win_rel_flags) self.assertEqual(' /W4 /GL /Od /Oi /Gy /Zi /EHsc', under_test.win_rel_flags) self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt', 'r') content_test = cmakelists_test.read() self.assertTrue(' /W4 /MD /Od /Zi /EHsc' in content_test) self.assertTrue(' /W4 /GL /Od /Oi /Gy /Zi /EHsc' in content_test) cmakelists_test.close()
class TestFlags(unittest2.TestCase): """ This file test methods of Flags class. """ cur_dir = os.path.dirname(os.path.realpath(__file__)) vs_project = get_vcxproj_data('%s/datatest/foo.vcxproj' % cur_dir) cmake_lists_test = get_cmake_lists('./') data_test = { 'cmake': cmake_lists_test, 'cmake_output': None, 'vcxproj': vs_project, 'dependencies': None, 'includes': None, 'additional_code': None, 'std': None, } def test_define_linux_flags_with_std(self): """Define Linux Flags""" self.data_test['cmake'] = get_cmake_lists('./') self.data_test['std'] = 'c++17' under_test = Flags(self.data_test) under_test.define_linux_flags() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('-std=c++17' in content_test) cmakelists_test.close() self.data_test['cmake'] = get_cmake_lists('./') self.data_test['std'] = 'c++19' under_test = Flags(self.data_test) under_test.define_linux_flags() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('-std=c++11' in content_test) cmakelists_test.close() def test_define_group_properties(self): """Define XML Groups Properties""" under_test = Flags(self.data_test) self.assertFalse(under_test.propertygroup) self.assertFalse(under_test.definitiongroups) under_test.define_settings() under_test.define_group_properties() self.assertTrue(under_test.propertygroup) self.assertTrue(under_test.definitiongroups)
def test_get_cmakelists(self): """Get CMakeLists.txt""" context = VSContext() under_test = get_cmake_lists(context, './') self.assertTrue(under_test) self.assertIsInstance(under_test, _io.TextIOWrapper) under_test.close()
def test_add_additional_code(self): """Add Additional CMake Code""" # When file is empty, nothing is added self.data_test['cmake'] = get_cmake_lists(context, self.cur_dir) under_test = ProjectFiles(self.data_test) under_test.add_additional_code(context, '') under_test.cmake.close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir) content_test = cmakelists_test.read() self.assertEqual('', content_test) cmakelists_test.close() # When file exist, code is added under_test.cmake = get_cmake_lists(context, self.cur_dir) under_test.add_additional_code( context, '%s/datatest/additional_code_test.cmake' % self.cur_dir) under_test.cmake.close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir) content_test = cmakelists_test.read() self.assertTrue('set(ADD_CODE code)' in content_test) cmakelists_test.close() # When file does not exist, nothing is added under_test.cmake = get_cmake_lists(context, self.cur_dir) under_test.add_additional_code(context, 'nofile/additional_code_test.cmake') under_test.cmake.close() cmakelists_add_test = open('%s/CMakeLists.txt' % self.cur_dir) content_add_test = cmakelists_add_test.read() self.assertEqual('', content_add_test) cmakelists_test.close()
def convert_project(self, context, xml_project_path, cmake_lists_destination_path): """ Method template for data collecting and writing """ # Initialize Context of DataConverter if not context.init(xml_project_path, cmake_lists_destination_path): message(context, 'Unknown project type at {0}'.format(xml_project_path), 'error') return False message(context, 'Conversion started: Project {0}'.format(context.project_name), 'done') message(context, 'Collecting data for project {0}'.format(context.vcxproj_path), '') self.collect_data(context) self.verify_data(context) self.merge_data_settings(context) if context.dry: return True if os.path.exists(context.cmake + '/CMakeLists.txt'): cmake_file = get_cmake_lists(context, context.cmake, 'a') cmake_file.write('\n' * 26) else: cmake_file = get_cmake_lists(context, context.cmake) message(context, 'Writing data for project {0}'.format(context.vcxproj_path), '') self.write_data(context, cmake_file) cmake_file.close() warnings = '' if context.warnings_count > 0: warnings = ' ({} warnings)'.format(context.warnings_count) message( context, 'Conversion done : Project {}{}'.format(context.project_name, warnings), 'done') return True
def test_write_dependencies(self): """Write Dependencies""" self.data_test['cmake'] = get_cmake_lists('./') under_test = Dependencies(self.data_test) # Add dependencies from ".vcxproj" under_test.write_dependencies() self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt') content_test = cmakelists_test.read() print(content_test) self.assertTrue('add_subdirectory("${G3LOGGER_DIR}"' in content_test) self.assertTrue( 'link_directories(${DEPENDENCIES_DIR}/g3log)' in content_test) cmakelists_test.close() # Add dependencies from "parameters" dependencies = ['external/zlib/cmake/', '../../external/g3log/cmake/'] self.data_test['dependencies'] = dependencies self.data_test['cmake'] = get_cmake_lists('./') under_test = Dependencies(self.data_test) under_test.write_dependencies() self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt') content_test = cmakelists_test.read() self.assertTrue( 'add_subdirectory(external/zlib/cmake/ ${CMAKE_BINARY_DIR}/lib1)' in content_test) self.assertTrue( 'add_subdirectory(../../external/g3log/cmake/ ${CMAKE_BINARY_DIR}/lib2)' in content_test) self.assertTrue( 'link_directories(${DEPENDENCIES_DIR}/g3log)' in content_test) cmakelists_test.close()
def test_add_additional_code(self): """Add Additional CMake Code""" # When file is empty, nothing is added self.data_test['cmake'] = get_cmake_lists(self.cur_dir) under_test = ProjectFiles(self.data_test) under_test.add_additional_code('') under_test.cmake.close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertEqual('', content_test) cmakelists_test.close() # When file exist, code is added under_test.cmake = get_cmake_lists(self.cur_dir) under_test.add_additional_code('%s/test_files/additional_code_test.cmake' % self.cur_dir) under_test.cmake.close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('set(ADD_CODE code)' in content_test) cmakelists_test.close() # When file does not exist, nothing is added under_test.cmake = get_cmake_lists(self.cur_dir) under_test.add_additional_code('nofile/additional_code_test.cmake') under_test.cmake.close() cmakelists_add_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_add_test = cmakelists_add_test.read() self.assertEqual('', content_add_test) cmakelists_test.close()
def test_write_dependencies(self): """Write Dependencies""" self.data_test['cmake'] = get_cmake_lists('./') under_test = Dependencies(self.data_test) under_test.write_dependencies() self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt', 'r') content_test = cmakelists_test.read() self.assertTrue( 'add_subdirectory(platform/cmake/g3log ${CMAKE_BINARY_DIR}/g3log' in content_test) self.assertTrue( 'add_subdirectory(platform/cmake/zlib ${CMAKE_BINARY_DIR}/zlib' in content_test) cmakelists_test.close() dependencies = ['external/zlib/cmake/', '../../external/g3log/cmake/'] self.data_test['dependencies'] = dependencies self.data_test['cmake'] = get_cmake_lists('./') under_test = Dependencies(self.data_test) under_test.write_dependencies() self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt', 'r') content_test = cmakelists_test.read() self.assertTrue( 'add_subdirectory(external/zlib/cmake/ ${CMAKE_BINARY_DIR}/lib1)' in content_test) self.assertTrue( 'add_subdirectory(../../external/g3log/cmake/ ${CMAKE_BINARY_DIR}/lib2)' in content_test) cmakelists_test.close()
def test_add_include_cmake(self): """Add Include CMake File""" self.data_test['cmake'] = get_cmake_lists(context, self.cur_dir) under_test = ProjectFiles(self.data_test) under_test.add_include_cmake('path/to/file.cmake') self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir) content_test = cmakelists_test.read() self.assertTrue('include("path/to/file.cmake")' in content_test)
def test_collects_source_files(self): """Collects Source Files""" self.data_test['cmake'] = get_cmake_lists(self.cur_dir) under_test = ProjectFiles(self.data_test) self.assertFalse(under_test.sources) self.assertFalse(under_test.headers) under_test.collects_source_files() self.data_test['cmake'].close() self.assertTrue(under_test.sources) self.assertTrue(under_test.headers)
def test_link_dependencies(self): """Link Dependencies""" self.data_test['cmake'] = get_cmake_lists('./') under_test = Dependencies(self.data_test) under_test.link_dependencies() self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt', 'r') self.assertTrue('target_link_libraries(${PROJECT_NAME}' in cmakelists_test.read()) cmakelists_test.close()
def test_link_dependencies(self): """Link Dependencies""" self.data_test['cmake'] = get_cmake_lists('./') under_test = Dependencies(self.data_test) under_test.link_dependencies() self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt') self.assertTrue( 'target_link_libraries(${PROJECT_NAME}' in cmakelists_test.read()) cmakelists_test.close()
def test_write_dependencies(self): """Write Dependencies""" self.data_test['cmake'] = get_cmake_lists('./') under_test = Dependencies(self.data_test) under_test.write_dependencies() self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt', 'r') content_test = cmakelists_test.read() self.assertTrue( 'add_subdirectory(platform/cmake/g3log ${CMAKE_BINARY_DIR}/g3log' in content_test) self.assertTrue( 'add_subdirectory(platform/cmake/zlib ${CMAKE_BINARY_DIR}/zlib' in content_test) cmakelists_test.close() dependencies = ['external/zlib/cmake/', '../../external/g3log/cmake/'] self.data_test['dependencies'] = dependencies self.data_test['cmake'] = get_cmake_lists('./') under_test = Dependencies(self.data_test) under_test.write_dependencies() self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt', 'r') content_test = cmakelists_test.read() self.assertTrue( 'add_subdirectory(external/zlib/cmake/ ${CMAKE_BINARY_DIR}/lib1)' in content_test) self.assertTrue( 'add_subdirectory(../../external/g3log/cmake/ ${CMAKE_BINARY_DIR}/lib2)' in content_test) cmakelists_test.close()
def test_add_project_variables(self): """Add Project Variables""" self.data_test['cmake'] = get_cmake_lists(context, self.cur_dir) under_test = VCXProjectVariables(self.data_test) under_test.add_project_variables() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir) content_test = cmakelists_test.read() self.assertTrue('set(PROJECT_NAME core)' in content_test) cmakelists_test.close()
def test_write_source_files(self): """Write Source Files""" self.data_test['cmake'] = get_cmake_lists('./') under_test = ProjectFiles(self.data_test) under_test.write_source_files() self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt', 'r') content_test = cmakelists_test.read() self.assertTrue('GLOB SRC_FILES' in content_test) self.assertTrue('CPP_DIR_1' in content_test) self.assertTrue('HEADER_DIR_1' in content_test)
def test_add_default_target(self): """Add Release as Default Target""" self.data_test['cmake'] = get_cmake_lists(self.cur_dir) under_test = ProjectVariables(self.data_test) under_test.add_default_target() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('set(CMAKE_BUILD_TYPE "Release")' in content_test) cmakelists_test.close()
def test_write_include_dir(self): """Write Include Dirs""" self.data_test['cmake'] = get_cmake_lists('./') under_test = Dependencies(self.data_test) under_test.write_include_dir() self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt', 'r') self.assertTrue( 'include_directories(../../../external/g3log/latest/src)' in cmakelists_test.read() ) cmakelists_test.close()
def test_add_default_target(self): """Add Release as Default Target""" self.data_test['cmake'] = get_cmake_lists(self.cur_dir) under_test = ProjectVariables(self.data_test) under_test.add_default_target() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('set(CMAKE_BUILD_TYPE "Release")' in content_test) cmakelists_test.close()
def test_write_include_dir(self): """Write Include Dirs""" self.data_test['cmake'] = get_cmake_lists('./') under_test = Dependencies(self.data_test) under_test.write_include_dir() self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt') self.assertTrue( 'include_directories(../../../external/g3log/latest/src)' in cmakelists_test.read()) cmakelists_test.close()
def test_write_source_files(self): """Write Source Files""" self.data_test['cmake'] = get_cmake_lists(self.cur_dir) under_test = ProjectFiles(self.data_test) under_test.write_files_variables() under_test.write_source_files() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('GLOB SRC_FILES' in content_test) self.assertTrue('CPP_DIR_1' in content_test) self.assertTrue('HEADER_DIR_1' in content_test)
def test_add_artefacts(self): """Add Artefact Target""" self.data_test['cmake'] = get_cmake_lists(self.cur_dir) under_test = ProjectFiles(self.data_test) under_test.add_target_artefact() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('add_library(${PROJECT_NAME} SHARED' in content_test) self.assertTrue('${SRC_FILES}' in content_test) cmakelists_test.close()
def test_add_project_variables(self): """Add Project Variables""" self.data_test['cmake'] = get_cmake_lists(self.cur_dir) under_test = ProjectVariables(self.data_test) under_test.add_project_variables() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)' in content_test) self.assertTrue('set(PROJECT_NAME core)' in content_test) cmakelists_test.close()
def test_write_variables(self): """Write Files Variables""" self.data_test['cmake'] = get_cmake_lists(self.cur_dir) under_test = ProjectFiles(self.data_test) under_test.write_files_variables() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('CPP_DIR_1' in content_test) self.assertTrue('HEADER_DIR_1' in content_test) cmakelists_test.close()
def test_add_artefacts(self): """Add Artefact Target""" self.data_test['cmake'] = get_cmake_lists('./') under_test = ProjectFiles(self.data_test) under_test.add_target_artefact() self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt', 'r') content_test = cmakelists_test.read() self.assertTrue('add_library(${PROJECT_NAME} SHARED' in content_test) self.assertTrue('${SRC_FILES}' in content_test) cmakelists_test.close()
def test_add_project_variables(self): """Add Project Variables""" self.data_test['cmake'] = get_cmake_lists(self.cur_dir) under_test = ProjectVariables(self.data_test) under_test.add_project_variables() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r') content_test = cmakelists_test.read() self.assertTrue('cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)' in content_test) self.assertTrue('set(PROJECT_NAME core)' in content_test) cmakelists_test.close()
def test_define_linux_flags(self): """Define Linux Flags""" self.data_test['cmake'] = get_cmake_lists('./') under_test = Flags(self.data_test) under_test.define_linux_flags() self.data_test['cmake'].close() self.assertFalse(under_test.win_deb_flags) self.assertFalse(under_test.win_rel_flags) cmakelists_test = open('CMakeLists.txt', 'r') content_test = cmakelists_test.read() self.assertTrue('-std=c++11 -fPIC' in content_test) cmakelists_test.close()
def test_define_linux_flags(self): """Define Linux Flags""" self.data_test['cmake'] = get_cmake_lists('./') under_test = Flags(self.data_test) under_test.define_linux_flags() self.data_test['cmake'].close() self.assertFalse(under_test.win_deb_flags) self.assertFalse(under_test.win_rel_flags) cmakelists_test = open('CMakeLists.txt', 'r') content_test = cmakelists_test.read() self.assertTrue('-std=c++11 -fPIC' in content_test) cmakelists_test.close()
def test_write_source_files(self): """Write Source Files""" self.data_test['cmake'] = get_cmake_lists(self.cur_dir) under_test = ProjectFiles(self.data_test) under_test.collects_source_files() under_test.write_source_files() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir) content_test = cmakelists_test.read() self.assertTrue( 'source_group("Sources" FILES ${SRC_FILES})' in content_test) self.assertTrue( 'source_group("Headers" FILES ${HEADERS_FILES})' in content_test)
def test_define_and_write_macro(self): """Define and Write Macros""" self.data_test['cmake'] = get_cmake_lists('./') define_and_write_macro(self.data_test) self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt', 'r') under_test = cmakelists_test.read() macros_test = [ '-D_CRT_NONSTDC_NO_DEPRECATE', '-D_DEBUG', '-D_WINDOWS', '-D_USRDLL', '-DCORE_EXPORTS', '-DUNICODE', '-D_UNICODE' ] for macro in macros_test: self.assertTrue(macro in under_test) cmakelists_test.close()
def test_define_and_write_macro(self): """Define and Write Macros""" self.data_test['cmake'] = get_cmake_lists('./') define_and_write_macro(self.data_test) self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt', 'r') under_test = cmakelists_test.read() macros_test = [ '-D_CRT_NONSTDC_NO_DEPRECATE', '-D_DEBUG', '-D_WINDOWS', '-D_USRDLL', '-DCORE_EXPORTS', '-DUNICODE', '-D_UNICODE' ] for macro in macros_test: self.assertTrue(macro in under_test) cmakelists_test.close()
def test_define_windows_flags(self): """Define Windows Flags""" self.data_test['cmake'] = get_cmake_lists('./') under_test = Flags(self.data_test) under_test.define_group_properties() under_test.define_windows_flags() self.data_test['cmake'].close() self.assertTrue(under_test.win_deb_flags) self.assertTrue(under_test.win_rel_flags) cmakelists_test = open('CMakeLists.txt', 'r') content_test = cmakelists_test.read() self.assertFalse('-std=c++11 -fPIC' in content_test) self.assertTrue(' /W4 /MD /Od /Zi /EHsc' in content_test) self.assertTrue(' /W4 /GL /Od /Oi /Gy /Zi /EHsc' in content_test) cmakelists_test.close()
def test_define_windows_flags(self): """Define Windows Flags""" self.data_test['cmake'] = get_cmake_lists('./') under_test = Flags(self.data_test) under_test.define_group_properties() under_test.define_windows_flags() self.data_test['cmake'].close() self.assertTrue(under_test.win_deb_flags) self.assertTrue(under_test.win_rel_flags) cmakelists_test = open('CMakeLists.txt', 'r') content_test = cmakelists_test.read() self.assertFalse('-std=c++11 -fPIC' in content_test) self.assertTrue(' /W4 /MD /Od /Zi /EHsc' in content_test) self.assertTrue(' /W4 /GL /Od /Oi /Gy /Zi /EHsc' in content_test) cmakelists_test.close()
def test_write_flags(self): """Write Flags""" self.data_test['cmake'] = get_cmake_lists('./') under_test = Flags(self.data_test) self.assertFalse(under_test.win_deb_flags) self.assertFalse(under_test.win_rel_flags) under_test.write_flags() self.assertTrue(under_test.win_deb_flags) self.assertEqual(' /W4 /MD /Od /Zi /EHsc', under_test.win_deb_flags) self.assertTrue(under_test.win_rel_flags) self.assertEqual(' /W4 /GL /Od /Oi /Gy /Zi /EHsc', under_test.win_rel_flags) self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt', 'r') content_test = cmakelists_test.read() self.assertTrue(' /W4 /MD /Od /Zi /EHsc' in content_test) self.assertTrue(' /W4 /GL /Od /Oi /Gy /Zi /EHsc' in content_test) cmakelists_test.close()
class TestDependencies(unittest2.TestCase): """ This file test methods of Dependencies class. """ cur_dir = os.path.dirname(os.path.realpath(__file__)) vs_project = get_vcxproj_data('%s/datatest/foo.vcxproj' % cur_dir) cmake_lists_test = get_cmake_lists('./') data_test = { 'cmake': cmake_lists_test, 'cmake_output': None, 'vcxproj': vs_project, 'project': '%s/datatest/foo.vcxproj' % cur_dir, 'dependencies': [], 'includes': None, 'additional_code': None, 'std': None, } def test_init_dependencies(self): """Initialize Dependencies""" under_test = Dependencies(self.data_test) self.assertTrue(under_test.cmake) self.assertTrue(under_test.tree) self.assertTrue(under_test.ns) self.assertFalse(under_test.custom_dependencies) def test_write_include_dir(self): """Write Include Dirs""" self.data_test['cmake'] = get_cmake_lists('./') under_test = Dependencies(self.data_test) under_test.write_include_dir() self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt') self.assertTrue( 'include_directories(../../../external/g3log/latest/src)' in cmakelists_test.read()) cmakelists_test.close() def test_write_dependencies(self): """Write Dependencies""" self.data_test['cmake'] = get_cmake_lists('./') under_test = Dependencies(self.data_test) # Add dependencies from ".vcxproj" under_test.write_dependencies() self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt') content_test = cmakelists_test.read() print(content_test) self.assertTrue('add_subdirectory("${G3LOGGER_DIR}"' in content_test) self.assertTrue( 'link_directories(${DEPENDENCIES_DIR}/g3log)' in content_test) cmakelists_test.close() # Add dependencies from "parameters" dependencies = ['external/zlib/cmake/', '../../external/g3log/cmake/'] self.data_test['dependencies'] = dependencies self.data_test['cmake'] = get_cmake_lists('./') under_test = Dependencies(self.data_test) under_test.write_dependencies() self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt') content_test = cmakelists_test.read() self.assertTrue( 'add_subdirectory(external/zlib/cmake/ ${CMAKE_BINARY_DIR}/lib1)' in content_test) self.assertTrue( 'add_subdirectory(../../external/g3log/cmake/ ${CMAKE_BINARY_DIR}/lib2)' in content_test) self.assertTrue( 'link_directories(${DEPENDENCIES_DIR}/g3log)' in content_test) cmakelists_test.close() def test_link_dependencies(self): """Link Dependencies""" self.data_test['cmake'] = get_cmake_lists('./') under_test = Dependencies(self.data_test) under_test.link_dependencies() self.data_test['cmake'].close() cmakelists_test = open('CMakeLists.txt') self.assertTrue( 'target_link_libraries(${PROJECT_NAME}' in cmakelists_test.read()) cmakelists_test.close()