def test_construct_build_helper_with_project_file(self): conanfile = MockConanfile( MockSettings({'os': 'Linux', 'compiler': 'gcc'})) # just asume that the test is called from repo root profile_file_path = temp_folder() build_helper = qbs.Qbs(conanfile, project_file=profile_file_path) self.assertEqual(build_helper._project_file, profile_file_path)
def test_build_with_custom_configuration(self): conanfile = MockConanfile( MockSettings({'os': 'Linux', 'compiler': 'gcc'}), runner=RunnerMock()) conanfile.source_folder = '.' conanfile.build_folder = '.' build_helper = qbs.Qbs(conanfile) config_name = 'debug' config_values = { 'product.App.boolProperty': True, 'product.App.intProperty': 1337, 'product.App.stringProperty': 'Hello World', 'product.App.stringListProperty': ['Hello', 'World'] } build_helper.add_configuration(config_name, config_values) build_helper.build() self.assertEqual( conanfile.runner.command_called, ('qbs build --no-install --build-directory %s ' '--file %s --jobs %s profile:%s ' 'config:%s %s:%s %s:%s %s:%s %s:%s') % ( conanfile.build_folder, build_helper._project_file, build_helper.jobs, build_helper.use_toolchain_profile, config_name, 'product.App.boolProperty', 'true', 'product.App.intProperty', config_values['product.App.intProperty'], 'product.App.stringProperty', config_values['product.App.stringProperty'], 'product.App.stringListProperty', config_values['product.App.stringListProperty']))
def test_construct_build_helper_without_project_file(self): conanfile = MockConanfile( MockSettings({'os': 'Linux', 'compiler': 'gcc'})) conanfile.source_folder = '.' build_helper = qbs.Qbs(conanfile) self.assertEqual(build_helper.jobs, tools.cpu_count()) self.assertEqual(build_helper._project_file, conanfile.source_folder)
def test_construct_build_helper_with_wrong_project_file_path(self): conanfile = MockConanfile( MockSettings({ 'os': 'Linux', 'compiler': 'gcc' })) with self.assertRaises(ConanException): qbs.Qbs(conanfile, project_file='random/file/path')
def test_add_configuration(self): conanfile = MockConanfile( MockSettings({'os': 'Linux', 'compiler': 'gcc'})) conanfile.source_folder = '.' build_helper = qbs.Qbs(conanfile) configurations = { 'debug': {'products.MyLib.specialFlags': ['-frtti', '-fexceptions']}, 'release': {'products.MyLib.specialFlags': ['-fno-exceptions', '-fno-rtti']} } for name, config in configurations.items(): build_helper.add_configuration(name, config) self.assertEqual(build_helper._configuration, configurations)
def test_build_all(self): conanfile = MockConanfile( MockSettings({'os': 'Linux', 'compiler': 'gcc'}), runner=RunnerMock()) conanfile.source_folder = '.' conanfile.build_folder = '.' build_helper = qbs.Qbs(conanfile) build_helper.build_all() self.assertEqual( conanfile.runner.command_called, ('qbs build --no-install --build-directory %s ' '--file %s --all-products --jobs %s profile:%s') % ( conanfile.build_folder, build_helper._project_file, build_helper.jobs, build_helper.use_toolchain_profile))
def test_install(self): conanfile = MockConanfile(MockSettings({ 'os': 'Linux', 'compiler': 'gcc' }), runner=RunnerMock()) conanfile.source_folder = '.' conanfile.package_folder = 'pkg' build_helper = qbs.Qbs(conanfile) build_helper.install() self.assertEqual( conanfile.runner.command_called, ('qbs install --no-build --install-root %s ' '--file %s') % (conanfile.package_folder, build_helper._project_file))
def test_install_with_custom_configuration(self): conanfile = MockConanfile(MockSettings({ 'os': 'Linux', 'compiler': 'gcc' }), runner=RunnerMock()) conanfile.source_folder = '.' conanfile.package_folder = 'pkg' build_helper = qbs.Qbs(conanfile) config_name = 'debug' config_values = { 'product.App.boolProperty': True, 'product.App.intProperty': 1337, 'product.App.stringProperty': 'Hello World', 'product.App.stringListProperty': ['Hello', 'World'] } build_helper.add_configuration(config_name, config_values) build_helper.install() self.assertEqual(conanfile.runner.command_called, ('qbs install --no-build --install-root %s ' '--file %s config:%s') % (conanfile.package_folder, build_helper._project_file, config_name))
def test_build(self): conanfile = MockConanfile(MockSettings({ 'os': 'Linux', 'compiler': 'gcc' }), runner=RunnerMock()) conanfile.folders.set_base_source('.') conanfile.folders.set_base_build('.') build_helper = qbs.Qbs(conanfile) build_helper.build() self.assertEqual(conanfile.runner.command_called, ('qbs build --no-install --build-directory %s ' '--file %s --jobs %s profile:%s') % (conanfile.build_folder, build_helper._project_file, build_helper.jobs, build_helper.profile)) build_helper.build(products=['app1', 'app2', 'lib']) self.assertEqual( conanfile.runner.command_called, ('qbs build --no-install --build-directory %s ' '--file %s --products app1,app2,lib --jobs %s profile:%s') % (conanfile.build_folder, build_helper._project_file, build_helper.jobs, build_helper.profile))