Exemple #1
0
    def test_macos(self):
        generator = JobGeneratorEnviron(
            conanfile_wrapper=self.conanfile_wrapper,
            settings=self.settings,
            osys="Macos")

        with context_env(CONAN_OPTIONS=self.options):
            self.assertEqual(len(list(generator.enumerate_jobs())),
                             32 * self.options_multiplier)

        with context_env(CONAN_APPLE_CLANG_VERSIONS="8.1",
                         CONAN_OPTIONS=self.options):
            jobs = list(generator.enumerate_jobs())
            self.assertEqual(len(jobs), 8 * self.options_multiplier)
Exemple #2
0
    def test_linux_gcc_and_clang(self):
        generator = JobGeneratorEnviron(
            conanfile_wrapper=self.conanfile_wrapper,
            settings=self.settings,
            osys="Linux")

        with context_env(CONAN_OPTIONS=self.options):
            self.assertEqual(len(list(generator.enumerate_jobs())),
                             68 * self.options_multiplier)

        with context_env(CONAN_GCC_VERSIONS="7",
                         CONAN_CLANG_VERSIONS="5.0",
                         CONAN_OPTIONS=self.options):
            jobs = list(generator.enumerate_jobs())
            self.assertEqual(len(jobs), 20 * self.options_multiplier)
Exemple #3
0
    def test_pagination(self):
        generator = JobGeneratorEnviron(conanfile_wrapper=self.wrapper,
                                        settings=self.settings,
                                        osys="Windows")
        with context_env(CONAN_VISUAL_VERSIONS='12'):
            all_jobs = list(generator.enumerate_jobs())
            self.assertEqual(len(all_jobs), 8)

            page_list = JobGeneratorEnviron.paginate(all_jobs,
                                                     page=1,
                                                     page_size=5)
            self.assertEqual(len(page_list), 3)

            page_list = JobGeneratorEnviron.paginate(all_jobs,
                                                     page=6,
                                                     page_size=5)
            self.assertEqual(len(page_list), 0)
Exemple #4
0
    def test_filter_jobs(self):
        generator = JobGeneratorEnviron(conanfile_wrapper=self.wrapper,
                                        settings=self.settings,
                                        osys="Windows")
        self.assertEqual(len(list(generator.enumerate_jobs())), 1)

        with context_env(CONAN_OPTIONS='shared'):
            all_jobs = list(generator.enumerate_jobs())
            self.assertEqual(len(all_jobs), 2)

            def discard_arch_x86(compiler, options):
                self.assertTrue(isinstance(compiler, NoCompiler))
                return compiler.arch == 'x86'

            x86_discarded = JobGeneratorEnviron.filter_jobs(
                all_jobs, filter=discard_arch_x86)
            self.assertEqual(len(list(x86_discarded)), 0)
Exemple #5
0
    def test_linux_gcc(self):
        generator = JobGeneratorEnviron(
            conanfile_wrapper=self.conanfile_wrapper,
            settings=self.settings,
            osys="Linux")

        with context_env(CONAN_OPTIONS=self.options):
            self.assertEqual(len(list(generator.enumerate_jobs())),
                             68 * self.options_multiplier)

        with context_env(CONAN_GCC_VERSIONS="7", CONAN_OPTIONS=self.options):
            jobs = list(generator.enumerate_jobs())
            self.assertEqual(len(jobs), 8 * self.options_multiplier)

        with context_env(CONAN_GCC_VERSIONS="6,7", CONAN_OPTIONS=self.options):
            jobs = list(generator.enumerate_jobs())
            self.assertEqual(len(jobs), 16 * self.options_multiplier)

        with context_env(CONAN_GCC_VERSIONS="0",
                         CONAN_OPTIONS=self.options):  # Invalid version
            jobs = list(generator.enumerate_jobs())
            self.assertEqual(len(jobs), 0 * self.options_multiplier)

        with context_env(
                CONAN_GCC_VERSIONS="0,7",
                CONAN_OPTIONS=self.options):  # Invalid version (fail-safe)
            jobs = list(generator.enumerate_jobs())
            self.assertEqual(len(jobs), 8 * self.options_multiplier)
Exemple #6
0
    def test_filter_jobs(self):
        generator = JobGeneratorEnviron(conanfile_wrapper=self.wrapper,
                                        settings=self.settings,
                                        osys="Windows")
        self.assertEqual(len(list(generator.enumerate_jobs())),
                         64)  # Visual Studio + MinGW

        with context_env(CONAN_VISUAL_VERSIONS='12'):
            all_jobs = list(generator.enumerate_jobs())
            self.assertEqual(len(all_jobs), 8)

            def discard_arch_x86(compiler, options):
                return compiler.arch == 'x86'

            x86_discarded = list(
                JobGeneratorEnviron.filter_jobs(all_jobs,
                                                filter=discard_arch_x86))
            self.assertEqual(len(x86_discarded), 4)
Exemple #7
0
    def test_total_linux(self):
        generator = JobGeneratorEnviron(conanfile_wrapper=self.wrapper,
                                        settings=self.settings,
                                        osys="Linux")
        self.assertEqual(len(list(generator.enumerate_jobs())), 1)

        with context_env(CONAN_OPTIONS='shared'):
            all_jobs = list(generator.enumerate_jobs())
            self.assertEqual(len(all_jobs), 2)
            self.assertTrue(isinstance(all_jobs[0][0], NoCompiler))
            self.assertTrue(isinstance(all_jobs[1][0], NoCompiler))

        with context_env(CONAN_BUILD_TYPES='Debug'):
            self.assertEqual(len(list(generator.enumerate_jobs())), 1)

        with context_env(CONAN_BUILD_TYPES='Debug', CONAN_GCC_VERSIONS='4.7'):
            self.assertEqual(len(list(generator.enumerate_jobs())), 1)
Exemple #8
0
    def test_pagination(self):
        generator = JobGeneratorEnviron(conanfile_wrapper=self.wrapper,
                                        settings=self.settings,
                                        osys="Windows")
        self.assertEqual(len(list(generator.enumerate_jobs())), 1)

        with context_env(CONAN_OPTIONS='shared'):
            all_jobs = list(generator.enumerate_jobs())
            self.assertEqual(len(all_jobs), 2)

            page_list = JobGeneratorEnviron.paginate(all_jobs,
                                                     page=0,
                                                     page_size=10)
            self.assertEqual(len(page_list), 2)

            page_list = JobGeneratorEnviron.paginate(all_jobs,
                                                     page=1,
                                                     page_size=10)
            self.assertEqual(len(page_list), 0)
Exemple #9
0
    def test_total_windows(self):
        generator = JobGeneratorEnviron(conanfile_wrapper=self.wrapper,
                                        settings=self.settings,
                                        osys="Windows")
        self.assertEqual(len(list(generator.enumerate_jobs())),
                         64)  # Visual Studio + MinGW

        # Just Visual Studio
        with context_env(CONAN_VISUAL_VERSIONS='12'):
            self.assertEqual(len(list(generator.enumerate_jobs())), 8)

        with context_env(CONAN_VISUAL_VERSIONS='12',
                         CONAN_BUILD_TYPES='Debug'):
            self.assertEqual(len(list(generator.enumerate_jobs())), 4)

        with context_env(CONAN_VISUAL_VERSIONS='12',
                         CONAN_BUILD_TYPES='Debug',
                         CONAN_OPTIONS='build_gmock,shared'):
            self.assertEqual(len(list(generator.enumerate_jobs())), 32)

        with context_env(CONAN_VISUAL_VERSIONS='12',
                         CONAN_BUILD_TYPES='Debug',
                         CONAN_VISUAL_RUNTIMES="MT"):
            self.assertEqual(len(list(generator.enumerate_jobs())), 0)

        with context_env(CONAN_VISUAL_VERSIONS='12',
                         CONAN_BUILD_TYPES='Debug',
                         CONAN_VISUAL_RUNTIMES="MTd"):
            self.assertEqual(len(list(generator.enumerate_jobs())), 2)

        with context_env(CONAN_BUILD_TYPES='Debug', CONAN_GCC_VERSIONS='4.7'):
            self.assertEqual(len(list(generator.enumerate_jobs())), 0)

        # Just MinGW
        with context_env(CONAN_MINGW_VERSIONS='4.9'):
            self.assertEqual(len(list(generator.enumerate_jobs())), 8)

        with context_env(CONAN_MINGW_VERSIONS='4.9',
                         CONAN_MINGW_EXCEPTIONS="seh"):
            self.assertEqual(len(list(generator.enumerate_jobs())), 8)

        with context_env(CONAN_MINGW_VERSIONS='4.9',
                         CONAN_MINGW_EXCEPTIONS="seh",
                         CONAN_MINGW_THREADS="posix"):
            self.assertEqual(len(list(generator.enumerate_jobs())), 4)
Exemple #10
0
 def test_windows(self):
     generator = JobGeneratorEnviron(
         conanfile_wrapper=self.conanfile_wrapper,
         settings=self.settings,
         osys="Windows")
     self.assertEqual(len(list(generator.enumerate_jobs())), 0)