def setCSCH(self): ProvidesTest.instance = self rpms = rc.RuntimeConfig().getRpmList() if rc.RuntimeConfig().getRpmList().getJava() == gc.ITW: self.log("Set ItwVersionCheck") self.csch = ITWeb(ProvidesTest.instance) return else: arch = self.getCurrentArch() if int(rpms.getMajorVersionSimplified()) == 8: if tc.is_arch_jitarch(arch) and "ppc" not in arch: self.csch = NonITW(ProvidesTest.instance) return else: self.csch = NonITW(ProvidesTest.instance) return if int(rpms.getMajorVersionSimplified()) == 11: if (arch in ["armv7hl", "s390x"] or tc.is_arch_jitarch(arch)) and "ppc" not in arch: self.csch = NonITW(ProvidesTest.instance) return else: self.csch = NonITW(ProvidesTest.instance) return if int(rpms.getMajorVersionSimplified()) > 11: if (arch in ["armv7hl", "s390x"] or tc.is_arch_jitarch(arch)) and "ppc" not in arch: self.csch = NonITW(ProvidesTest.instance) return else: self.csch = NonITW(ProvidesTest.instance) self.log("Set OthersVersionCheck") self.csch = NonITW(ProvidesTest.instance) return
def setCSCH(self): arch = self.getCurrentArch() rpms = rc.RuntimeConfig().getRpmList() if int(rpms.getMajorVersionSimplified()) == 8: if tc.is_arch_jitarch(arch) and "ppc" not in arch: self.csch = Ojdk8JIT() return elif int(rpms.getMajorVersionSimplified()) == 11: if (arch in ["armv7hl", "s390x"] or tc.is_arch_jitarch(arch)) and "ppc" not in arch: self.csch = Ojdk11JIT() return elif int(rpms.getMajorVersionSimplified()) == 11: if (arch in ["armv7hl", "s390x"] or tc.is_arch_jitarch(arch)) and "ppc" not in arch: self.csch = Ojdk11JIT() return elif int(rpms.getMajorVersionSimplified()) == 11: self.csch = Ojdk11JIT() return else: self.csch = OjdklatestJIT() return else: self.csch = Default() return
class BasePackages(JdkConfiguration): rpms = rc.RuntimeConfig().getRpmList() def __init__(self): super().__init__() def _get_arch(self): return PostinstallScriptTest.instance.getCurrentArch() def _generate_masters(self): return {} def _get_vendor(self): return self.rpms.getVendor() def _get_version(self): return self.rpms.getMajorVersion() def _get_masters_arch_copy(self, master): """Some of the masters have arch at the end, this method appends it automatically.""" master = master + "." + str(get_id(self._get_arch())) return master def _add_plugin(self): return [LIBJAVAPLUGIN]
def setCSCH(self): rpms = rc.RuntimeConfig().getRpmList() rpms.getMajorPackage() if (rpms.getVendor() == gc.OPENJDK or rpms.getVendor() == gc.OPENJ9) and int(rpms.getMajorVersionSimplified()) >= 11: self.csch = Ojdk11AndAbove(rpms) else: self.csch = Default(rpms)
def log(self, logmsg, verbosity=vc.Verbosity.TEST, jtregfilename=""): if verbosity.value <= rc.RuntimeConfig().get_verbosity().value: outputControl.file_log.FileLog().println(logmsg) if verbosity == verbosity.JTREG: if logmsg == "" and jtregfilename != "": outputControl.file_log.JtregLog().__init__(jtregfilename) else: outputControl.file_log.JtregLog(jtregfilename).println(logmsg) outputControl.file_log.DefaultLog().println(logmsg)
def provideCleanUsefullRoot(self): if self.alternatives: self.installAlternatives() else: self.init() self.installAlternatives() if rc.RuntimeConfig().getRpmList().getVendor() in (gc.ORACLE + gc.SUN + gc.IBM + gc.ITW): # ibm/itw/oracle plugin packages expect mozilla installed in the filesystem, this gives us # directories neccessary self.mkdirP("/usr/lib64/mozilla") self.mkdirP("/usr/lib64/mozilla/plugins") self.mkdirP("/usr/lib/mozilla") self.mkdirP("/usr/lib/mozilla/plugins") if rc.RuntimeConfig().getRpmList().getVendor() == gc.ORACLE: # oracle plugin packages in addition expect also these directories self.mkdirP("/usr/lib/jvm/jce-1.7.0-oracle") self.mkdirP("/usr/lib/jvm/jce-1.8.0-oracle")
def ghost_test(self, this): documentation = "This tests checks if every master is ghosted. Ghosted files are listed via rpm command," \ " as a difference between \'rpm -q -l\' and \'rpm -q -l --no-ghost\'" files = rc.RuntimeConfig().getRpmList().files files = [x.replace("rpms/", "") for x in files] if not self.documenting: files = [ x for x in files if tu.validate_arch_for_rpms( this.current_arch) == ns.get_arch(x) ] for file in files: self._check_ghosts_per_file(file) self._document(documentation) return self.passed, self.failed
def setCSCH(self): PermissionTest.instance = self rpms = rc.RuntimeConfig().getRpmList() self.log("Checking files for " + rpms.getMajorPackage(), vc.Verbosity.TEST) if rpms.getVendor() == gc.OPENJDK or rpms.getVendor() == gc.OPENJ9: if rpms.getMajorVersionSimplified() == "6": if self.getCurrentArch() in (gc.getX86_64Arch() + gc.getPower64BeAchs()): self.csch = OpenJdk6PowBeArchAndX86() return else: self.csch = OpenJdk6() return if rpms.getMajorVersionSimplified() == "7": self.csch = OpenJdk7() return elif rpms.getMajorVersionSimplified() == "8": self.csch = OpenJdk8() return elif int(rpms.getMajorVersionSimplified()) >= 9: self.csch = OpenJdk8() return else: raise UnknownJavaVersionException( "Unknown version of OpenJDK.") if rpms.getVendor() == gc.SUN: if self.getCurrentArch() in (gc.getX86_64Arch() + gc.getPower64BeAchs()): self.csch = OpenJdk6PowBeArchAndX86() return else: self.csch = OpenJdk6() return if rpms.getVendor() == gc.ORACLE: self.csch = Oracle() return if rpms.getVendor() == gc.IBM: self.csch = BaseTest() return if rpms.getVendor() == gc.ITW: # TODO might be worth to check also other subdirectories self.csch = BaseTest() return raise UnknownJavaVersionException("Unknown JDK version!!!")
def _check_ghosts_per_file(self, file): rpm_ghosts = self._get_actual_ghosts(file) default_masters = set(mexe.DefaultMock().get_default_masters()) mexe.DefaultMock().postinstall_exception_checked("rpms/" + file) if rc.RuntimeConfig().getRpmList().is_system_jdk(): actual_ghosts = set( mexe.DefaultMock().get_masters()).difference(default_masters) else: actual_ghosts = set() resolved_rpm_ghosts = set() resolved_actual_ghosts = {} for ghost in rpm_ghosts: newghost = ghost.replace("\n", "") resolved_rpm_ghosts.add(tu.resolve_link(newghost)) for ghost in actual_ghosts: resolved_actual_ghosts[(tu.resolve_link( mexe.DefaultMock().get_target(ghost)))] = ghost for ghost in self._get_hardcoded_ghosts(file): resolved_actual_ghosts[ghost] = "hardcoded" if not tu.passed_or_failed( self, set(resolved_actual_ghosts.keys()) == resolved_rpm_ghosts, "Sets of ghost are not correct for " + file + ". Differences will follow."): missing_ghosts = set( resolved_actual_ghosts.keys()).difference(resolved_rpm_ghosts) extra_ghosts = resolved_rpm_ghosts.difference( set(resolved_actual_ghosts.keys())) missing_ghosts_masters = [] for ghost in missing_ghosts: missing_ghosts_masters.append(ghost) if len(missing_ghosts) > 0: tu.passed_or_failed( self, False, "Masters not ghosted via %ghost declaration in specfile: " + str(missing_ghosts_masters)) if len(extra_ghosts) > 0: tu.passed_or_failed( self, False, "Ghosts that do not ghost any alternatives: " + str(extra_ghosts))
def setCSCH(self): BinariesTest.instance = self rpms = rc.RuntimeConfig().getRpmList() self.log("Checking binaries and slaves for " + rpms.getMajorPackage(), vc.Verbosity.TEST) if rpms.getVendor() == gc.OPENJDK or rpms.getVendor() == gc.OPENJ9: if rpms.getMajorVersionSimplified() == "6": if self.getCurrentArch() in (gc.getX86_64Arch() + gc.getPower64BeAchs()): self.csch = tcc.OpenJdk6PowBeArchAndX86(BinariesTest.instance) return else: self.csch = tcc.OpenJdk6(BinariesTest.instance) return elif rpms.getMajorVersionSimplified() == "7": self.csch = tcc.OpenJdk7(BinariesTest.instance) return elif rpms.getMajorVersionSimplified() == "8": if rpms.getVendor() == gc.OPENJ9: self.csch = tcc.OpenJdk8(BinariesTest.instance) elif rpms.isFedora(): if int(rpms.getOsVersion()) > 26: if self.getCurrentArch() in gc.getAarch64Arch() + gc.getPower64LeAchs() + gc.getPower64BeAchs(): self.csch = tcc.OpenJdk8NoExportsDebug(BinariesTest.instance) return elif self.getCurrentArch() in gc.getIx86archs() + gc.getX86_64Arch(): self.csch = tcc.OpenJdk8NoExportsDebugJFX(BinariesTest.instance) return else: self.csch = tcc.OpenJdk8NoExports(BinariesTest.instance) elif int(rpms.getOsVersion()) > 24: if self.getCurrentArch() in gc.getAarch64Arch()+ gc.getPower64LeAchs() + gc.getPower64BeAchs(): self.csch = tcc.OpenJdk8Debug(BinariesTest.instance) return elif self.getCurrentArch() in gc.getIx86archs() + gc.getX86_64Arch(): self.csch = tcc.OpenJDK8JFX(BinariesTest.instance) return else: self.csch = tcc.OpenJdk8(BinariesTest.instance) return else: raise ex.UnknownJavaVersionException("Outdated version of fedora OpenJDK.") else: if self.getCurrentArch() in gc.getIx86archs() + gc.getX86_64Arch() + gc.getAarch64Arch() + \ gc.getPower64Achs(): self.csch = tcc.OpenJdk8NoExportsDebugJFX(BinariesTest.instance) return else: self.csch = tcc.OpenJdk8NoExports(BinariesTest.instance) return elif rpms.getMajorVersionSimplified() == "9": if self.getCurrentArch() in gc.getArm32Achs(): self.csch = tcc.OpenJdk9(BinariesTest.instance) return else: self.csch = tcc.OpenJdk9Debug(BinariesTest.instance) return elif rpms.getMajorVersionSimplified() == "10": if self.getCurrentArch() in gc.getArm32Achs(): self.csch = tcc.OpenJdk10(BinariesTest.instance) return elif self.getCurrentArch() in gc.getX86_64Arch(): self.csch = tcc.OpenJdk10x64(BinariesTest.instance) return else: self.csch = tcc.OpenJdk10Debug(BinariesTest.instance) return elif rpms.getMajorVersionSimplified() == "11": if self.getCurrentArch() in gc.getArm32Achs() or rpms.getVendor() == gc.OPENJ9: self.csch = tcc.OpenJdk11(BinariesTest.instance) return elif self.getCurrentArch() in gc.getX86_64Arch() + gc.getAarch64Arch(): self.csch = tcc.OpenJdk11x64(BinariesTest.instance) return elif self.getCurrentArch() in gc.getS390xArch(): self.csch = tcc.OpenJdk11NoJhsdb(BinariesTest.instance) return else: if rpms.isRhel() and self.getCurrentArch() in gc.getS390Arch() + gc.getPpc32Arch(): self.csch = tcc.OpenJdk11NoDebugNoJhsdb(BinariesTest.instance) else: self.csch = tcc.OpenJdk11Debug(BinariesTest.instance) return elif int(rpms.getMajorVersionSimplified()) >= 12: if self.getCurrentArch() in gc.getArm32Achs(): self.csch = tcc.OpenJdkLatest(BinariesTest.instance) return elif self.getCurrentArch() in gc.getX86_64Arch() + gc.getAarch64Arch(): self.csch = tcc.OpenJdkLatestx64(BinariesTest.instance) return elif self.getCurrentArch() in gc.getS390xArch(): self.csch = tcc.OpenJdkLatestNoJhsdb(BinariesTest.instance) return else: if rpms.isRhel() and self.getCurrentArch() in gc.getS390Arch() + gc.getPpc32Arch(): self.csch = tcc.OpenJdkLatestNoDebugNoJhsdb(BinariesTest.instance) else: self.csch = tcc.OpenJdkLatestDebug(BinariesTest.instance) return else: raise ex.UnknownJavaVersionException("Unknown OpenJDK version.") elif rpms.getVendor() == gc.ITW: self.csch = tcc.Itw(BinariesTest.instance) return elif rpms.getVendor() == gc.IBM: if rpms.getMajorVersionSimplified() == "7": if self.getCurrentArch() in (gc.getPpc32Arch() + gc.getIx86archs()): self.csch = tcc.IbmWithPluginSubpackage(BinariesTest.instance) return elif self.getCurrentArch() in gc.getX86_64Arch(): self.csch = tcc.IbmArchMasterPlugin(BinariesTest.instance) return elif self.getCurrentArch() in gc.getS390xArch() + gc.getS390Arch(): self.csch = tcc.Ibm390Architectures(BinariesTest.instance) return else: self.csch = tcc.Ibm(BinariesTest.instance) return elif rpms.getMajorVersionSimplified() == "8": if rpms.getOsVersionMajor() == 7: if self.getCurrentArch() in ( gc.getX86_64Arch() + gc.getPower64BeAchs() + gc.getIx86archs() + gc.getPpc32Arch()): self.csch = tcc.IbmArchMasterPlugin(BinariesTest.instance) return elif self.getCurrentArch() in gc.getS390xArch() + gc.getS390Arch(): self.csch = tcc.Ibm390Architectures(BinariesTest.instance) return else: self.csch = tcc.Ibm(BinariesTest.instance) return elif rpms.getOsVersionMajor() == 8: if self.getCurrentArch() in gc.getS390xArch() + gc.getS390Arch(): self.csch = tcc.Ibm8Rhel8S390X(BinariesTest.instance) return self.csch = tcc.Ibm8Rhel8(BinariesTest.instance) return else: raise ex.UnknownJavaVersionException("Unknown IBM java version.") elif rpms.getVendor() == gc.ORACLE or rpms.getVendor() == gc.SUN: if rpms.getMajorVersionSimplified() == "6": if self.getCurrentArch() in gc.getIx86archs(): self.csch = tcc.OracleNoArchPlugin(BinariesTest.instance) return else: self.csch = tcc.Oracle6ArchPlugin(BinariesTest.instance) return elif rpms.getMajorVersionSimplified() == "7": self.csch = tcc.Oracle7(BinariesTest.instance) return elif rpms.getMajorVersionSimplified() == "8": self.csch = tcc.Oracle8(BinariesTest.instance) return else: raise ex.UnknownJavaVersionException("Unknown Oracle java version") else: raise ex.UnknownJavaVersionException("Unknown platform, java was not identified.")
def setCSCH(self): ManpageTests.instance = self rpms = rc.RuntimeConfig().getRpmList() self.log("Checking man pages for " + rpms.getMajorPackage(), vc.Verbosity.TEST) if rpms.getVendor() == gc.OPENJDK or rpms.getVendor() == gc.OPENJ9: if rpms.getMajorVersionSimplified() == "6": self.csch = OpenJdk6() return elif rpms.getMajorVersionSimplified() == "7": self.csch = OpenJdk7() return elif rpms.getMajorVersionSimplified() == "8"\ or rpms.getMajorVersionSimplified() == "9": if self.getCurrentArch() in gc.getX86_64Arch() + gc.getIx86archs(): self.csch = OpenJdk8WithDebug() return else: self.csch = OpenJdk8() return elif int(rpms.getMajorVersionSimplified()) == 10: if self.getCurrentArch() in gc.getArm32Achs(): self.csch = OpenJdk10() return elif self.getCurrentArch() in gc.getX86_64Arch(): self.csch = OpenJdk10Debugx64() return else: self.csch = OpenJdk10Debug() return elif int(rpms.getMajorVersionSimplified()) == 11: if self.getCurrentArch() in gc.getArm32Achs(): self.csch = OpenJdk11armv7hl() return elif self.getCurrentArch() in gc.getX86_64Arch() + gc.getAarch64Arch(): self.csch = OpenJdk11Debugx64() return else: if rpms.isRhel() and self.getCurrentArch() in gc.getS390Arch() + gc.getPpc32Arch(): self.csch = OpenJdk11() elif self.getCurrentArch() in gc.getS390xArch(): self.csch = OpenJdk11s390x() else: self.csch = OpenJdk11Debug() return elif int(rpms.getMajorVersionSimplified()) >= 12: if self.getCurrentArch() in gc.getArm32Achs(): self.csch = OpenJdk12() return elif self.getCurrentArch() in gc.getX86_64Arch() + gc.getAarch64Arch(): self.csch = OpenJdk12Debugx64() return else: if rpms.isRhel() and self.getCurrentArch() in gc.getS390Arch() + gc.getPpc32Arch(): self.csch = OpenJdk12() elif self.getCurrentArch() in gc.getS390xArch() + gc.getPpc32Arch(): self.csch = OpenJdk12s390x() else: self.csch = OpenJdk12Debug() return else: raise ex.UnknownJavaVersionException("Unknown java version.") elif rpms.getVendor() == gc.ITW: if self.getCurrentArch() in gc.getX86_64Arch() + gc.getPower64Achs() + \ gc.getAarch64Arch() + gc.getS390xArch(): self.csch = Itw64Bit() return else: self.csch = ITW() return elif rpms.getVendor() == gc.SUN or rpms.getVendor() == gc.ORACLE: if rpms.getMajorVersionSimplified() == "6": self.csch = Oracle6() return elif rpms.getMajorVersionSimplified() == "7" or rpms.getMajorVersionSimplified() == "8": self.csch = Oracle() return else: raise ex.UnknownJavaVersionException("Unknown java version.") elif rpms.getVendor() == gc.IBM: self.csch = Ibm() return else: raise ex.UnknownJavaVersionException("Unknown platform, java was not identified.")
class ManpageTestMethods(cs.JdkConfiguration): """ This test expects that binaries are equal to its slaves (checked in binaries_test). Only binaries are used as a source of expected manpages. This checks if all binaries have its manpages and if all the manpages have links. IBM java does not have any manpages, so the test is skipped. """ def __init__(self): super().__init__() self.list_of_failed_tests = [] self.missing_manpages = [] self.checked_subpackages = [] skipped = [] rpms = rc.RuntimeConfig().getRpmList() def _remove_excludes(self, binaries): excludes = self._get_excludes() if len(excludes) == 0: return binaries for e in excludes: if e in binaries: binaries.remove(e) return binaries def binaries_without_manpages(self, binaries=None): manpages_list = self.missing_manpages subpackages_list = self.checked_subpackages if manpages_list.__len__() == 0 or subpackages_list.__len__() == 0: return binaries self._document("There are multiple binaries, that are missing manpages in " + " and ".join(subpackages_list) + "subpackage: " + ", ".join(manpages_list)) for item in manpages_list: for subpackage in subpackages_list: try: binaries[subpackage].remove(item) except KeyError: tu.passed_or_failed(self, False, subpackage + " is not present.") except ValueError: tu.passed_or_failed(self, False, item + " is not present in manpages! This is unexpected behaviour.") return binaries def _get_extra_bins(self, plugin_bin_content): return [] def iced_tea_web_check(self, manpages_with_postcript=None, manpages_without_postscript=None): return def _get_manpage_files_names(self, list_of_bins, usr_bin_content): return list_of_bins def _get_manpage_link_names(self, list_of_links): return list_of_links def _get_checked_masters(self): return [] def _get_manpage_suffixes(self, subpackage): return [MANPAGE_SUFFIX, "-" + self.rpms.getMajorPackage() + MANPAGE_SUFFIX] def _get_subpackages(self): return [] def _clean_up_binaries(self, binaries, master, usr_bin): return binaries def _get_arch(self): return gc.get_32b_arch_identifiers_in_scriptlets(ManpageTests.instance.getCurrentArch()) def _clean_default_mpges(self, default_mans, all_mpgs): extracted_mpges = list(set(all_mpgs) - set(default_mans)) return extracted_mpges def _clean_debug_subpackages(self, bins): return # wont be doc-ed, is already handled in binary test def _remove_java_rmi_cgi(self, binaries): if tc.JAVA_RMI_CGI in binaries: binaries.remove(tc.JAVA_RMI_CGI) return binaries def _get_target(self, master): return mexe.DefaultMock().get_target(master).strip(master) def _itw_plugin_bin_location(self): return "/usr/lib" def _get_excludes(self): return [] def _clean_sdk_from_jre(self, bins, packages): ManpageTests.instance.log("Cleaning {} from JRE binaries " "(JRE bins do not have man pages in {}.)".format(SDK_BINARIES, tc.DEVEL), vc.Verbosity.TEST) devel_bins = [] ManpageTests.instance.log("Original " + SDK_BINARIES + ": " + ", ".join(bins[tc.DEVEL]), vc.Verbosity.TEST) for b in bins[packages[1]]: if b not in bins[packages[0]]: devel_bins.append(b) self._clean_debug_subpackages(bins) ManpageTests.instance.log(SDK_BINARIES + " without JRE binaries: " + ", ".join(devel_bins), vc.Verbosity.TEST) bins[packages[1]] = devel_bins return bins def manpage_file_check(self, bins, subpackage=None, plugin_bin_content=None, manpages_without_postscript=None): """ Each man page is a file, located in /usr/shared/man, it has a specified name bin-nvra.1.gz. It must be present for every binary in the given subpackages. JDK 10 has some of the pages missing, this is solved as exclude. Any exclude must be always documented in _document. """ self._document("When rpm is installed, man page file exists for each binary " "with {} suffix.".format(tu.replace_archs_with_general_arch(self._get_manpage_suffixes(tc.DEFAULT), self._get_arch())[FILE])) binaries = self._get_manpage_files_names(bins[subpackage], plugin_bin_content) manpage_files = manpages_without_postscript[subpackage] # now check that every binary has a man file for b in binaries: manpage = b + self._get_manpage_suffixes(subpackage)[FILE] tu.passed_or_failed(self, manpage in manpage_files, manpage + " man page file not in " + subpackage) return manpage_files def manpage_links_check(self, bins, subpackage=None, manpages_with_postscript=None, manpage_files=None): """ Each man page has a link, that is located in /usr/shared/man/ and has a specific name bin.1.gz. This link points to alternatives. It must be present for every binary in given subpackages (except exludes). """ self._document("Each man page slave has {} suffix.".format(self._get_manpage_suffixes(tc.DEFAULT)[LINK])) links = self._get_manpage_link_names(bins[subpackage]) # now remove all files from man pages manpage_links = list(set(manpages_with_postscript[subpackage]) - set(manpage_files)) for l in links: link = l + self._get_manpage_suffixes(subpackage)[LINK] tu.passed_or_failed(self, link in manpage_links, link + " man page link not in " + subpackage) def man_page_test(self, pkgs): self._document("Every binary must have a man page. If binary has a slave, then man page has also its slave." " \n - Man pages are in {} directory.".format(tc.MAN_DIR)) bins = {} manpages_without_postscript = {} manpages_with_postscript = {} mexe.DefaultMock().provideCleanUsefullRoot() default_mans = mexe.DefaultMock().execute_ls(tc.MAN_DIR)[0].split("\n") usr_bin_content = mexe.DefaultMock().execute_ls("/usr/bin")[0].split("\n") plugin_bin_content = mexe.DefaultMock().execute_ls(self._itw_plugin_bin_location())[0].split("\n") for pkg in pkgs: name = os.path.basename(pkg) _subpkg = tu.rename_default_subpkg(pkgsplit.get_subpackage_only(name)) # expects binaries are only in devel/default/headless subpackage, is consistent with binaries test if _subpkg not in self._get_subpackages(): continue # first check links if not mexe.DefaultMock().postinstall_exception_checked(pkg): self.skipped.append(_subpkg) continue masters = mexe.DefaultMock().get_masters() checked_masters = self._get_checked_masters() for m in masters: if m not in checked_masters: continue tg = self._get_target(m) binaries = mexe.DefaultMock().execute_ls(tg)[0].split("\n") binaries = self._clean_up_binaries(binaries, m, usr_bin_content) binaries = self._remove_java_rmi_cgi(binaries) binaries = self._remove_excludes(binaries) try: plugin_binaries = self._get_extra_bins(plugin_bin_content) except NotADirectoryError: tu.passed_or_failed(self, False, "/usr/bin directory not found, this is unexpected " "behaviour and the test will not be executed.") return ManpageTests.instance.log("Binaries found for {}: ".format(tg) + ", ".join(binaries + plugin_binaries)) bins[_subpkg] = copy.deepcopy(binaries + plugin_binaries) # check links manpages = self._clean_default_mpges(default_mans, mexe.DefaultMock().execute_ls(tc.MAN_DIR)[0].split("\n")) if len(manpages) != 0: manpages_with_postscript[_subpkg] = manpages ManpageTests.instance.log("Manpages found: " + ", ".join(manpages)) else: ManpageTests.instance.log("Warning: {} subpackage does not contain any binaries".format(_subpkg)) # then check files mexe.DefaultMock().importRpm(pkg) manpages_without_postscript[_subpkg] = self._clean_default_mpges(default_mans, mexe.DefaultMock().execute_ls(tc.MAN_DIR)[0] .split("\n")) try: bins = self._clean_sdk_from_jre(bins, self._get_subpackages()) bins = self.binaries_without_manpages(bins) except KeyError as e: tu.passed_or_failed(self, False, "This type of failure usually means missing package in tested rpm set." " Text of the error: " + str(e)) # then compare man files with binaries and man links with links for subpackage in bins.keys(): manpage_files = self.manpage_file_check(bins, subpackage, plugin_bin_content, manpages_without_postscript) self.manpage_links_check(bins, subpackage, manpages_with_postscript, manpage_files) self.iced_tea_web_check(manpages_with_postscript, manpages_without_postscript) ManpageTests.instance.log("Failed tests summary: " + ", ".join(self.list_of_failed_tests), vc.Verbosity.ERROR) return self.passed, self.failed # only doc-used method, does not execute any tests whatsoever def manpages_file_debug_subpackages_doc(self, args): if tc.get_debug_suffixes(): self._document(" For debug subpackages, man page file is suffixed " "with {}.".format(tu.replace_archs_with_general_arch((self._get_manpage_suffixes(tc.get_debug_suffixes())), self._get_arch())[FILE])) return
class GetAllBinariesAndSlaves(btp.PathTest): rpms = rc.RuntimeConfig().getRpmList() def document_subpackages(self, args=None): self._document( "Binaries and slaves are present in following subpackages: " + ", ".join(self._get_subpackages_with_binaries())) def check_exports_slaves(self, args=None): jre_slaves = self._get_exports_slaves_jre() sdk_slaves = self._get_exports_slaves_sdk() jre_subpackages = self._get_jre_subpackage() sdk_subpackages = self._get_sdk_subpackage() self._document(" and ".join(jre_slaves + sdk_slaves) + " are slaves, that point at export " "directories") for jsubpkg in jre_subpackages: for jslave in jre_slaves: try: self.installed_slaves[jsubpkg].remove(jslave) tu.passed_or_failed(self, True, "") except ValueError: tu.passed_or_failed( self, False, jslave + " export slave missing in " + jsubpkg) except KeyError: tu.passed_or_failed(self, False, "No slaves in " + jsubpkg + " subpkg.") for ssubpkg in sdk_subpackages: for sslave in sdk_slaves: try: self.installed_slaves[ssubpkg].remove(sslave) tu.passed_or_failed(self, True, "") except ValueError: tu.passed_or_failed( self, False, sslave + " export slave missing in " + ssubpkg) except KeyError: tu.passed_or_failed(self, False, "No slaves in " + ssubpkg + "subpkg.") return def check_subdirectory_slaves(self, args=None): jre_slave = "jre" sdk_slave = "java_sdk" self._document( jre_slave + " and " + sdk_slave + " are slaves that point at directories in /usr/lib/jvm.") jre_subpackages = self._get_jre_subpackage() sdk_subpackages = self._get_sdk_subpackage() for jsubpkg in jre_subpackages: try: self.installed_slaves[jsubpkg].remove(jre_slave) tu.passed_or_failed(self, True, "") except (ValueError, KeyError) as e: tu.passed_or_failed(self, False, jre_slave + " slave missing in " + jsubpkg) self.binaries_test.log(str(e)) for ssubpkg in sdk_subpackages: try: self.installed_slaves[ssubpkg].remove(sdk_slave) tu.passed_or_failed(self, True, "") except (ValueError, KeyError) as e: tu.passed_or_failed(self, False, sdk_slave + " slave missing in " + ssubpkg) self.binaries_test.log(str(e)) return def get_slaves(self, _subpkg): checked_masters = self._get_checked_masters() self._document("Checking slaves for masters:" " {}".format(" and ".join( tu.replace_archs_with_general_arch( checked_masters, self._get_arch())))) masters = mexe.DefaultMock().get_masters() clean_slaves = [] for m in checked_masters: if m not in masters: continue try: slaves = mexe.DefaultMock().get_slaves(m) except mexc.MockExecutionException: self.binaries_test.log( "No relevant slaves were present for " + _subpkg + ".", vc.Verbosity.TEST) continue self.binaries_test.log( "Found slaves for {}: {}".format(_subpkg, str(slaves)), vc.Verbosity.TEST) if m in [tc.JAVA, tc.JAVAC]: clean_slaves.append(m) # skipping manpage slaves for slave in slaves: if not slave.endswith("1.gz"): clean_slaves.append(slave) return clean_slaves def _get_all_binaries_and_slaves(self, pkgs): for pkg in pkgs: name = os.path.basename(pkg) _subpkg = tu.rename_default_subpkg( pkgsplit.get_subpackage_only(name)) if _subpkg in tc.subpackages_without_alternatives( ) + tc.get_javadoc_dirs(): self.binaries_test.log("Skipping binaries extraction for " + _subpkg) self.skipped.append(_subpkg) continue if not mexe.DefaultMock().postinstall_exception_checked(pkg): self.binaries_test.log( "Failed to execute postinstall. Slaves will not be found for " + _subpkg) binary_directory_path = self._get_binary_directory_path(name) binaries = mexe.DefaultMock().execute_ls(binary_directory_path) if binaries[1] != 0: self.binaries_test.log( "Location {} does not exist, binaries test skipped " "for ".format(binary_directory_path) + name, vc.Verbosity.TEST) continue else: self.binaries_test.log( "Binaries found at {}: {}".format( binary_directory_path, ", ".join(binaries[0].split("\n"))), vc.Verbosity.TEST) slaves = self.get_slaves(_subpkg) self.installed_slaves[_subpkg] = slaves self.installed_binaries[_subpkg] = binaries[0].split("\n") return self.installed_binaries, self.installed_slaves
def __init__(self, this): super().__init__() self.rpms = rc.RuntimeConfig().getRpmList() self.this = this
def __init__(self): super().__init__() self.list_of_failed_tests = [] self.rpms = rc.RuntimeConfig().getRpmList()
def setCSCH(self): PostinstallScriptTest.instance = self rpms = rc.RuntimeConfig().getRpmList() self.log("Checking post_script and master for " + rpms.getVendor(), vc.Verbosity.TEST) if rpms.getVendor() == gc.OPENJDK or rpms.getVendor() == gc.OPENJ9: if rpms.getMajorVersionSimplified() == "6": self.csch = OpenJdk6() return elif rpms.getMajorVersionSimplified() == "7": self.csch = OpenJdk7() return elif rpms.getMajorVersionSimplified() == "8": if self.getCurrentArch() in gc.getIx86archs() + gc.getX86_64Arch() + \ gc.getPower64Achs() + gc.getAarch64Arch(): self.csch = OpenJdk8Intel() return elif self.getCurrentArch( ) in gc.getS390xArch() + gc.getS390Arch() + gc.getArm32Achs( ) or self.getCurrentArch() == "armv7hl": self.csch = OpenJdk8S390() return else: self.csch = OpenJdk8OtherArchs() return elif rpms.getMajorVersionSimplified() in ["9", "10"]: if rpms.getOs() == gc.RHEL and rpms.getOsVersionMajor() == 7: if self.getCurrentArch() in gc.getArm32Achs( ) + gc.getPpc32Arch() + gc.getS390Arch(): self.csch = OpenJdk9Armvhl() return else: self.csch = OpenJdk9OtherArchs() return else: if self.getCurrentArch() in gc.getArm32Achs(): self.csch = OpenJdk9Armvhl() return else: self.csch = OpenJdk9OtherArchs() return elif rpms.getMajorVersionSimplified() == "11": if self.getCurrentArch() in gc.getArm32Achs(): self.csch = OpenJdk11Armv7hl() return if rpms.getOs() == gc.RHEL: self.csch = OpenJdk11OtherArchesRhel() return self.csch = OpenJdk11OtherArches() return elif int(rpms.getMajorVersionSimplified()) == 12: self.csch = OpenJdk12OtherArches() return elif int(rpms.getMajorVersionSimplified()) >= 13: if self.getCurrentArch() in gc.getArm32Achs(): self.csch = OpenJdk13arm7vhl() return self.csch = OpenJdk13() return else: raise ex.UnknownJavaVersionException("Unknown JDK version.") elif rpms.getVendor() == gc.ITW: self.csch = IcedTeaWeb() return elif rpms.getVendor() == gc.IBM: if rpms.getOsVersionMajor() < 8: if rpms.getMajorVersionSimplified() == "7": if self.getCurrentArch() in gc.getS390xArch() + gc.getS390Arch() + \ gc.getPower64LeAchs() + gc.getPower64BeAchs(): self.csch = Ibm7WithoutPlugin() return elif self.getCurrentArch() in gc.getX86_64Arch(): self.csch = Ibm7x86() return else: self.csch = Ibm7() return elif rpms.getMajorVersionSimplified() == "8": if self.getCurrentArch() in gc.getS390xArch( ) + gc.getS390Arch() + gc.getPower64LeAchs(): self.csch = Ibm8WithoutPlugin() return else: self.csch = Ibm8() return else: raise ex.UnknownJavaVersionException( "Unknown IBM java version.") else: if self.getCurrentArch() in gc.getS390xArch() + gc.getS390Arch( ) + gc.getPower64LeAchs(): self.csch = ProprietaryJavaRhel8s390x() return self.csch = ProprietaryJavaRhel8() return elif rpms.getVendor() == gc.ORACLE or rpms.getVendor() == gc.SUN: if rpms.getMajorVersionSimplified() == "6": if self.getCurrentArch() in gc.getS390xArch( ) + gc.getX86_64Arch() + gc.getPower64BeAchs(): self.csch = Oracle6WithArch() return else: self.csch = Oracle6() return elif rpms.getMajorVersionSimplified() == "7": self.csch = Oracle7() return elif rpms.getMajorVersionSimplified() == "8": if self.getCurrentArch() in gc.getX86_64Arch(): self.csch = Oracle7a8x86() return else: self.csch = Oracle8() return else: raise ex.UnknownJavaVersionException( "Unknown Oracle java version.") else: raise ex.UnknownJavaVersionException( "Unknown platform, java was not identified.")
def setCSCH(self): SubdirectoryTest.instance = self rpms = rc.RuntimeConfig().getRpmList() self.log("Checking subdirectories for: " + rpms.getMajorPackage(), vc.Verbosity.TEST) if rpms.getVendor() == gc.OPENJDK or rpms.getVendor() == gc.OPENJ9: if rpms.getMajorVersionSimplified() == "6": if self.current_arch in (gc.getPower64BeAchs() + gc.getX86_64Arch()): self.csch = OpenJdk6PowerBeArchAndX86() return else: self.csch = OpenJdk6() return elif rpms.getMajorVersionSimplified() == "7": self.csch = OpenJdk7() return elif rpms.getMajorVersionSimplified() == "8": if self.getCurrentArch() in gc.getIx86archs() + gc.getX86_64Arch() + gc.getPower64LeAchs() \ + gc.getAarch64Arch() + gc.getPower64BeAchs(): self.csch = OpenJdk8Debug() return else: self.csch = OpenJdk7() return elif int(rpms.getMajorVersionSimplified()) >= 9: if self.getCurrentArch() in gc.getIx86archs() + gc.getX86_64Arch() + gc.getPower64LeAchs() \ + gc.getAarch64Arch() + gc.getPower64BeAchs(): self.csch = OpenJdk9D() return else: self.csch = OpenJdk9() return else: raise UnknownJavaVersionException("Unknown OpenJDK version.") elif rpms.getVendor() == gc.SUN: if self.getCurrentArch() in gc.getX86_64Arch(): self.csch = OpenJdk6PowerBeArchAndX86() return else: self.csch = OpenJdk6() return elif rpms.getVendor() == gc.ORACLE: if rpms.getMajorVersionSimplified() == "7": self.csch = Oracle7() return elif rpms.getMajorVersionSimplified() == "8": self.csch = Oracle7() return else: raise UnknownJavaVersionException("Unknown Oracle java version.") elif rpms.getVendor() == gc.IBM: if rpms.getOsVersionMajor() < 8: if rpms.getMajorVersionSimplified() == "7": self.csch = Ibm7() return elif rpms.getMajorVersionSimplified() == "8": self.csch = Ibm8() return else: raise UnknownJavaVersionException("Unknown IBM java version.") else: self.csch = Ibm8Rhel8() return elif rpms.getVendor() == gc.ITW: self.csch = ITW() return else: raise UnknownJavaVersionException("Unknown vendor, configuration specific check could not be set.")
def setCSCH(self): SymlinkTest.instance = self rpms = rc.RuntimeConfig().getRpmList() self.log("Checking symlinks for: " + rpms.getMajorPackage(), vc.Verbosity.TEST) self.csch = BaseMethods() return
def identify_debug_suffixes(): import config.runtime_config as conf rpms = conf.RuntimeConfig().getRpmList() return rpms.getDebugSuffixes()