Esempio n. 1
0
 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)
Esempio n. 2
0
 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']))
Esempio n. 3
0
 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)
Esempio n. 4
0
 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')
Esempio n. 5
0
 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)
Esempio n. 6
0
    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))
Esempio n. 7
0
    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))
Esempio n. 8
0
    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))
Esempio n. 9
0
    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))