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)
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)
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)
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)
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)
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)
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)
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)
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)
def test_windows(self): generator = JobGeneratorEnviron( conanfile_wrapper=self.conanfile_wrapper, settings=self.settings, osys="Windows") self.assertEqual(len(list(generator.enumerate_jobs())), 0)