├── .fmf └── version ├── .github ├── defaults.sh ├── dependabot.yml └── workflows │ ├── container-autoupdate.yml │ ├── daily-boot-iso-rawhide.yml │ ├── differential-shellcheck.yml │ ├── scenarios-permian.yml │ ├── scenarios.yml │ ├── static-code-tests.yml │ ├── test-os-variants.yml │ ├── testingfarm.yml │ └── weekly-summary.yml ├── .gitignore ├── .pylintrc ├── README.rst ├── WORKLIST ├── anabot-1.ks.in ├── anabot-1.sh ├── anabot-1.xml ├── anaconda-conf.ks.in ├── anaconda-conf.sh ├── anaconda-modules.ks.in ├── anaconda-modules.sh ├── authconfig.ks.in ├── authconfig.sh ├── authselect-not-set.ks.in ├── authselect-not-set.sh ├── authselect.ks.in ├── authselect.sh ├── autopart-encrypted-1.ks.in ├── autopart-encrypted-1.sh ├── autopart-encrypted-2.ks.in ├── autopart-encrypted-2.sh ├── autopart-encrypted-3.ks.in ├── autopart-encrypted-3.sh ├── autopart-fstype.ks.in ├── autopart-fstype.sh ├── autopart-hibernation.ks.in ├── autopart-hibernation.sh ├── autopart-luks-1.ks.in ├── autopart-luks-1.sh ├── autopart-luks-2.ks.in ├── autopart-luks-2.sh ├── autopart-luks-3.ks.in ├── autopart-luks-3.sh ├── autopart-luks-4.ks.in ├── autopart-luks-4.sh ├── autopart-luks-5.ks.in ├── autopart-luks-5.sh ├── autopart-nohome.ks.in ├── autopart-nohome.sh ├── basic-ftp.ks.in ├── basic-ftp.sh ├── basic-ostree.ks.in ├── basic-ostree.sh ├── bindtomac-bond-vlan-httpks.ks.in ├── bindtomac-bond-vlan-httpks.sh ├── bindtomac-bond2-httpks.ks.in ├── bindtomac-bond2-httpks.sh ├── bindtomac-bond2-pre.ks.in ├── bindtomac-bond2-pre.sh ├── bindtomac-bridge-2devs-httpks.ks.in ├── bindtomac-bridge-2devs-httpks.sh ├── bindtomac-bridge-2devs-pre.ks.in ├── bindtomac-bridge-2devs-pre.sh ├── bindtomac-bridge-httpks.ks.in ├── bindtomac-bridge-httpks.sh ├── bindtomac-bridge-no-bootopts-net.ks.in ├── bindtomac-bridge-no-bootopts-net.sh ├── bindtomac-bridged-bond-httpks.ks.in ├── bindtomac-bridged-bond-httpks.sh ├── bindtomac-ifname-httpks.ks.in ├── bindtomac-ifname-httpks.sh ├── bindtomac-network-device-default-httpks.ks.in ├── bindtomac-network-device-default-httpks.sh ├── bindtomac-network-device-mac-httpks.ks.in ├── bindtomac-network-device-mac-httpks.sh ├── bindtomac-network-device-mac-pre.ks.in ├── bindtomac-network-device-mac-pre.sh ├── bindtomac-network-device-mac.ks.in ├── bindtomac-network-device-mac.sh ├── bindtomac-network-static-2-httpks.ks.in ├── bindtomac-network-static-2-httpks.sh ├── bindtomac-network-static-to-dhcp-pre-single.ks.in ├── bindtomac-network-static-to-dhcp-pre-single.sh ├── bindtomac-onboot-activate-httpks.ks.in ├── bindtomac-onboot-activate-httpks.sh ├── bindtomac-onboot-bootopts-pre.ks.in ├── bindtomac-onboot-bootopts-pre.sh ├── bindtomac-team-httpks.ks.in ├── bindtomac-team-httpks.sh ├── bindtomac-team-pre.ks.in ├── bindtomac-team-pre.sh ├── bond-ks-initramfs.ks.in ├── bond-ks-initramfs.sh ├── bond-vlan-httpks.ks.in ├── bond-vlan-httpks.sh ├── bond-vlan-pre.ks.in ├── bond-vlan-pre.sh ├── bond2-httpks.ks.in ├── bond2-httpks.sh ├── bond2-pre.ks.in ├── bond2-pre.sh ├── bootloader-1.ks.in ├── bootloader-1.sh ├── bootloader-2.ks.in ├── bootloader-2.sh ├── bootloader-3.ks.in ├── bootloader-3.sh ├── bootloader-4.ks.in ├── bootloader-4.sh ├── bootloader-5.ks.in ├── bootloader-5.sh ├── bridge-2devs-httpks.ks.in ├── bridge-2devs-httpks.sh ├── bridge-2devs-pre.ks.in ├── bridge-2devs-pre.sh ├── bridge-2devs.ks.in ├── bridge-2devs.sh ├── bridge-httpks.ks.in ├── bridge-httpks.sh ├── bridge-no-bootopts-net.ks.in ├── bridge-no-bootopts-net.sh ├── bridged-bond-httpks.ks.in ├── bridged-bond-httpks.sh ├── bridged-bond-pre.ks.in ├── bridged-bond-pre.sh ├── btrfs-1.ks.in ├── btrfs-1.sh ├── btrfs-2.ks.in ├── btrfs-2.sh ├── certificate.ks.in ├── certificate.sh ├── check_for_disabled_modules.ks.in ├── check_for_disabled_modules.sh ├── clearpart-1.ks.in ├── clearpart-1.sh ├── clearpart-2.ks.in ├── clearpart-2.sh ├── clearpart-3.ks.in ├── clearpart-3.sh ├── clearpart-4.ks.in ├── clearpart-4.sh ├── container.ks.in ├── container.sh ├── containers ├── README.md ├── runner │ ├── Dockerfile │ ├── README.md │ ├── fetch_daily_iso.sh │ ├── launch │ ├── roles │ │ └── runner-host │ │ │ ├── handlers │ │ │ └── main.yml │ │ │ └── tasks │ │ │ └── main.yml │ ├── run-kstest │ ├── scenario │ └── skip-testtypes ├── squid-cache.conf ├── squid-cache.nft └── squid.sh ├── default-desktop.ks.in ├── default-desktop.sh ├── default-fstype.ks.in ├── default-fstype.sh ├── default-menu-auto-hide-fedora.ks.in ├── default-menu-auto-hide-fedora.sh ├── default-menu-auto-hide-rhel.ks.in ├── default-menu-auto-hide-rhel.sh ├── default-systemd-target-gui-graphical-provides.ks.in ├── default-systemd-target-gui-graphical-provides.sh ├── default-systemd-target-gui.ks.in ├── default-systemd-target-gui.sh ├── default-systemd-target-rdp-graphical-provides.ks.in ├── default-systemd-target-rdp-graphical-provides.sh ├── default-systemd-target-rdp.ks.in ├── default-systemd-target-rdp.sh ├── default-systemd-target-skipx.ks.in ├── default-systemd-target-skipx.sh ├── default-systemd-target-startxonboot.ks.in ├── default-systemd-target-startxonboot.sh ├── default-systemd-target-tui-graphical-provides.ks.in ├── default-systemd-target-tui-graphical-provides.sh ├── default-systemd-target-tui.ks.in ├── default-systemd-target-tui.sh ├── default-systemd-target-vnc-graphical-provides.ks.in ├── default-systemd-target-vnc-graphical-provides.sh ├── default-systemd-target-vnc.ks.in ├── default-systemd-target-vnc.sh ├── deprecated-rhel9-part1.ks.in ├── deprecated-rhel9-part1.sh ├── deprecated-rhel9-part2.ks.in ├── deprecated-rhel9-part2.sh ├── disklabel-default.ks.in ├── disklabel-default.sh ├── disklabel-gpt.ks.in ├── disklabel-gpt.sh ├── disklabel-mbr.ks.in ├── disklabel-mbr.sh ├── dns-global-bootopts.ks.in ├── dns-global-bootopts.sh ├── dns-global-exclusive-tls-2.ks.in ├── dns-global-exclusive-tls-2.sh ├── dns-global-exclusive-tls-httpks-2.sh ├── dns-global-exclusive-tls-httpks.sh ├── dns-global-exclusive-tls-initramfs.sh ├── dns-global-exclusive-tls-ksnet.ks.in ├── dns-global-exclusive-tls-ksnet.sh ├── dns-global-exclusive-tls.ks.in ├── dns-global-exclusive-tls.sh ├── dns.ks.in ├── dns.sh ├── docs └── network.md ├── driverdisk-disk-kargs.ks.in ├── driverdisk-disk-kargs.sh ├── driverdisk-disk.ks.in ├── driverdisk-disk.sh ├── encrypt-device.ks.in ├── encrypt-device.sh ├── encrypt-swap.ks.in ├── encrypt-swap.sh ├── escrow-cert.ks.in ├── escrow-cert.sh ├── fedora-live-image-build.ks.in ├── fedora-live-image-build.sh ├── firewall-disable-with-options.ks.in ├── firewall-disable-with-options.sh ├── firewall-disable.ks.in ├── firewall-disable.sh ├── firewall-use-system-defaults-ignore-options.ks.in ├── firewall-use-system-defaults-ignore-options.sh ├── firewall-use-system-defaults.ks.in ├── firewall-use-system-defaults.sh ├── firewall.ks.in ├── firewall.sh ├── fragments ├── platform │ ├── fedora_rawhide │ │ ├── payload │ │ │ ├── default_packages.ks │ │ │ └── unified_packages.ks │ │ ├── repos │ │ │ ├── default.ks │ │ │ ├── https.ks │ │ │ ├── modular.ks │ │ │ ├── unified-nfs.ks │ │ │ └── unified.ks │ │ ├── section-data │ │ │ ├── hello-world.ks │ │ │ ├── server-dvd-link.ks │ │ │ └── unified-iso.ks │ │ ├── storage │ │ │ ├── ostreecontainer_autopart.ks │ │ │ └── ostreecontainer_autopart_encrypted.ks │ │ ├── timezone │ │ │ ├── ntp_disabled.ks │ │ │ └── ntp_enabled.ks │ │ └── validation │ │ │ └── unified.ks │ ├── rhel10 │ │ ├── payload │ │ │ ├── default_packages.ks │ │ │ ├── python_crypt_packages.ks │ │ │ └── unified_packages.ks │ │ ├── repos │ │ │ ├── default.ks │ │ │ ├── unified-nfs.ks │ │ │ └── unified.ks │ │ ├── section-data │ │ │ ├── hello-world.ks │ │ │ ├── server-dvd-link.ks │ │ │ └── unified-iso.ks │ │ ├── timezone │ │ │ ├── ntp_disabled.ks │ │ │ └── ntp_enabled.ks │ │ └── validation │ │ │ └── unified.ks │ ├── rhel8 │ │ ├── payload │ │ │ ├── default_packages.ks │ │ │ ├── packages_instlangs_1.ks │ │ │ ├── packages_instlangs_2.ks │ │ │ ├── packages_instlangs_3.ks │ │ │ ├── packages_weakdeps.ks │ │ │ ├── python_crypt_packages.ks │ │ │ └── unified_packages.ks │ │ ├── repos │ │ │ ├── default.ks │ │ │ ├── unified-nfs.ks │ │ │ └── unified.ks │ │ ├── section-data │ │ │ ├── hello-world.ks │ │ │ ├── server-dvd-link.ks │ │ │ └── unified-iso.ks │ │ ├── storage │ │ │ └── raid_biosboot.ks │ │ ├── timezone │ │ │ ├── ntp_disabled.ks │ │ │ └── ntp_enabled.ks │ │ └── validation │ │ │ └── unified.ks │ └── rhel9 │ │ ├── payload │ │ ├── default_packages.ks │ │ ├── python_crypt_packages.ks │ │ └── unified_packages.ks │ │ ├── repos │ │ ├── default.ks │ │ ├── unified-nfs.ks │ │ └── unified.ks │ │ ├── section-data │ │ ├── hello-world.ks │ │ ├── server-dvd-link.ks │ │ └── unified-iso.ks │ │ ├── storage │ │ └── raid_biosboot.ks │ │ ├── timezone │ │ ├── ntp_disabled.ks │ │ └── ntp_enabled.ks │ │ └── validation │ │ └── unified.ks └── shared │ ├── bootloader │ └── default.ks │ ├── common │ ├── common.ks │ ├── common_no_payload.ks │ └── common_no_storage_and_payload.ks │ ├── data │ └── edns-idmops.psi.redhat.com.crt │ ├── l10n │ └── default.ks │ ├── network │ └── default.ks │ ├── payload │ ├── default_packages.ks │ ├── packages_instlangs_1.ks │ ├── packages_instlangs_2.ks │ ├── packages_instlangs_3.ks │ ├── packages_weakdeps.ks │ └── python_crypt_packages.ks │ ├── storage │ ├── default.ks │ ├── ostreecontainer_autopart.ks │ ├── ostreecontainer_autopart_encrypted.ks │ └── raid_biosboot.ks │ ├── users │ ├── default.ks │ ├── python3_check_root_locked.ks │ └── user.ks │ └── validation │ ├── success_if_result_empty.ks │ ├── success_if_result_empty_standalone.ks │ └── success_on_first_boot.ks ├── functions-proxy.sh ├── functions.sh ├── geolocation-off-by-default-with-ks.ks.in ├── geolocation-off-by-default-with-ks.sh ├── groups-and-envs-1.ks.in ├── groups-and-envs-1.sh ├── groups-and-envs-2.ks.in ├── groups-and-envs-2.sh ├── groups-and-envs-3.ks.in ├── groups-and-envs-3.sh ├── groups-ignoremissing.ks.in ├── groups-ignoremissing.sh ├── harddrive-install-tree-relative.ks.in ├── harddrive-install-tree-relative.sh ├── harddrive-install-tree.ks.in ├── harddrive-install-tree.sh ├── harddrive-iso-single.ks.in ├── harddrive-iso-single.sh ├── harddrive-iso.ks.in ├── harddrive-iso.sh ├── hello-world.ks.in ├── hello-world.sh ├── hmc.ks.in ├── hmc.sh ├── hostname-bootopts.ks.in ├── hostname-bootopts.sh ├── hostname.ks.in ├── hostname.sh ├── https-repo.ks.in ├── https-repo.sh ├── ibft.ks.in ├── ibft.sh ├── ifname-httpks.ks.in ├── ifname-httpks.sh ├── ignoredisk-1.ks.in ├── ignoredisk-1.sh ├── ignoredisk-2.ks.in ├── ignoredisk-2.sh ├── image-deployment-1.ks.in ├── image-deployment-1.sh ├── image-deployment-2-rhel8.ks.in ├── image-deployment-2-rhel8.sh ├── image-deployment-2.ks.in ├── image-deployment-2.sh ├── initial-setup-default.ks.in ├── initial-setup-default.sh ├── initial-setup-disable.ks.in ├── initial-setup-disable.sh ├── initial-setup-enable.ks.in ├── initial-setup-enable.sh ├── initial-setup-gui.ks.in ├── initial-setup-gui.sh ├── initial-setup-reconfig.ks.in ├── initial-setup-reconfig.sh ├── iscsi-bind.ks.in ├── iscsi-bind.sh ├── iscsi.ks.in ├── iscsi.sh ├── keyboard-bootopt-only.ks.in ├── keyboard-bootopt-only.sh ├── keyboard-convert-vc.ks.in ├── keyboard-convert-vc.sh ├── keyboard-convert-x-override-bootopt.ks.in ├── keyboard-convert-x-override-bootopt.sh ├── keyboard-generic-argument.ks.in ├── keyboard-generic-argument.sh ├── keyboard.ks.in ├── keyboard.sh ├── ks-include-post.ks ├── ks-include.ks.in ├── ks-include.sh ├── lang.ks.in ├── lang.sh ├── lib ├── basic_squid_auth.py └── mkdud.py ├── liveimg.ks.in ├── liveimg.sh ├── log-util-check.ks.in ├── log-util-check.sh ├── log-util-tests.sh ├── lvm-1.ks.in ├── lvm-1.sh ├── lvm-2.ks.in ├── lvm-2.sh ├── lvm-cache-1.ks.in ├── lvm-cache-1.sh ├── lvm-cache-2.ks.in ├── lvm-cache-2.sh ├── lvm-luks-1.ks.in ├── lvm-luks-1.sh ├── lvm-luks-2.ks.in ├── lvm-luks-2.sh ├── lvm-luks-3.ks.in ├── lvm-luks-3.sh ├── lvm-luks-4.ks.in ├── lvm-luks-4.sh ├── lvm-raid-1.ks.in ├── lvm-raid-1.sh ├── lvm-raid-2.ks.in ├── lvm-raid-2.sh ├── lvm-thinp-1.ks.in ├── lvm-thinp-1.sh ├── lvm-thinp-2.ks.in ├── lvm-thinp-2.sh ├── module-1.ks.in ├── module-1.sh ├── module-2.ks.in ├── module-2.sh ├── module-3.ks.in ├── module-3.sh ├── module-4.ks.in ├── module-4.sh ├── module-enable-one-module-multiple-streams.ks.in ├── module-enable-one-module-multiple-streams.sh ├── module-enable-one-stream-install-different-stream.ks.in ├── module-enable-one-stream-install-different-stream.sh ├── module-ignoremissing.ks.in ├── module-ignoremissing.sh ├── module-install-no-stream-no-profile.ks.in ├── module-install-no-stream-no-profile.sh ├── module-install-one-module-multiple-streams-and-profiles.ks.in ├── module-install-one-module-multiple-streams-and-profiles.sh ├── module-install-one-module-multiple-streams.ks.in ├── module-install-one-module-multiple-streams.sh ├── mountpoint-assignment-1.ks.in ├── mountpoint-assignment-1.sh ├── mountpoint-assignment-2.ks.in ├── mountpoint-assignment-2.sh ├── network-addr-gen-mode-dhcpall.ks.in ├── network-addr-gen-mode-dhcpall.sh ├── network-addr-gen-mode.ks.in ├── network-addr-gen-mode.sh ├── network-autoconnections-dhcpall-httpks.ks.in ├── network-autoconnections-dhcpall-httpks.sh ├── network-autoconnections-httpks.ks.in ├── network-autoconnections-httpks.sh ├── network-bootopts-bond-bootif.ks.in ├── network-bootopts-bond-bootif.sh ├── network-bootopts-bond-dhcp-httpks.ks.in ├── network-bootopts-bond-dhcp-httpks.sh ├── network-bootopts-bond-ks-override.ks.in ├── network-bootopts-bond-ks-override.sh ├── network-bootopts-bootif-httpks.ks.in ├── network-bootopts-bootif-httpks.sh ├── network-bootopts-bridge-dhcp-httpks.ks.in ├── network-bootopts-bridge-dhcp-httpks.sh ├── network-bootopts-noautodefault.ks.in ├── network-bootopts-noautodefault.sh ├── network-bootopts-static-legacy-httpks.ks.in ├── network-bootopts-static-legacy-httpks.sh ├── network-bootopts-static-mac.ks.in ├── network-bootopts-static-mac.sh ├── network-bootopts-static-unspec-bootif.ks.in ├── network-bootopts-static-unspec-bootif.sh ├── network-bootopts-static-unspec-single.ks.in ├── network-bootopts-static-unspec-single.sh ├── network-bootopts-static.ks.in ├── network-bootopts-static.sh ├── network-bootopts-team-dhcp-httpks.ks.in ├── network-bootopts-team-dhcp-httpks.sh ├── network-bootopts-vlan-static-httpks.ks.in ├── network-bootopts-vlan-static-httpks.sh ├── network-device-bootif-httpks.ks.in ├── network-device-bootif-httpks.sh ├── network-device-default-httpks.ks.in ├── network-device-default-httpks.sh ├── network-device-default-ksdevice-httpks.ks.in ├── network-device-default-ksdevice-httpks.sh ├── network-device-default-ksdevice-pre.ks.in ├── network-device-default-ksdevice-pre.sh ├── network-device-default-pre-hostname.ks.in ├── network-device-default-pre-hostname.sh ├── network-device-default.ks.in ├── network-device-default.sh ├── network-device-mac-httpks.ks.in ├── network-device-mac-httpks.sh ├── network-device-mac-pre.ks.in ├── network-device-mac-pre.sh ├── network-device-mac.ks.in ├── network-device-mac.sh ├── network-device-names.cfg ├── network-dns-search.ks.in ├── network-dns-search.sh ├── network-missing-ifcfg-httpks.ks.in ├── network-missing-ifcfg-httpks.sh ├── network-noipv4-httpks.ks.in ├── network-noipv4-httpks.sh ├── network-noipv4-pre.ks.in ├── network-noipv4-pre.sh ├── network-options-pre.ks.in ├── network-options-pre.sh ├── network-prefixdevname.ks.in ├── network-prefixdevname.sh ├── network-static-2-httpks.ks.in ├── network-static-2-httpks.sh ├── network-static-2-pre.ks.in ├── network-static-2-pre.sh ├── network-static-httpks.ks.in ├── network-static-httpks.sh ├── network-static-to-dhcp-pre-single.ks.in ├── network-static-to-dhcp-pre-single.sh ├── network-static-to-dhcp-pre.ks.in ├── network-static-to-dhcp-pre.sh ├── network-static.ks.in ├── network-static.sh ├── nfs.ks.in ├── nfs.sh ├── nosave-1.ks.in ├── nosave-1.sh ├── nosave-2.ks.in ├── nosave-2.sh ├── nosave-3.ks.in ├── nosave-3.sh ├── ntp-nontp-without-chrony-gui.ks.in ├── ntp-nontp-without-chrony-gui.sh ├── ntp-nontp-without-chrony.ks.in ├── ntp-nontp-without-chrony.sh ├── ntp-pools.ks.in ├── ntp-pools.sh ├── ntp-with-nontp-gui.ks.in ├── ntp-with-nontp-gui.sh ├── ntp-with-nontp.ks.in ├── ntp-with-nontp.sh ├── ntp-without-chrony-gui.ks.in ├── ntp-without-chrony-gui.sh ├── ntp-without-chrony.ks.in ├── ntp-without-chrony.sh ├── onboot-activate-httpks.ks.in ├── onboot-activate-httpks.sh ├── onboot-activate.ks.in ├── onboot-activate.sh ├── onboot-bootopts-pre.ks.in ├── onboot-bootopts-pre.sh ├── packages-and-groups-1.ks.in ├── packages-and-groups-1.sh ├── packages-and-groups-ignoremissing.ks.in ├── packages-and-groups-ignoremissing.sh ├── packages-default.ks.in ├── packages-default.sh ├── packages-excludedocs.ks.in ├── packages-excludedocs.sh ├── packages-ignorebroken.ks.in ├── packages-ignorebroken.sh ├── packages-ignoremissing.ks.in ├── packages-ignoremissing.sh ├── packages-instlangs-1.ks.in ├── packages-instlangs-1.sh ├── packages-instlangs-2.ks.in ├── packages-instlangs-2.sh ├── packages-instlangs-3.ks.in ├── packages-instlangs-3.sh ├── packages-multilib.ks.in ├── packages-multilib.sh ├── packages-weakdeps.ks.in ├── packages-weakdeps.sh ├── part-luks-1.ks.in ├── part-luks-1.sh ├── part-luks-2.ks.in ├── part-luks-2.sh ├── part-luks-3.ks.in ├── part-luks-3.sh ├── part-luks-4.ks.in ├── part-luks-4.sh ├── plans └── testing-farm.fmf ├── post-lib-keyboard.sh ├── post-lib-network.sh ├── post-nochroot-lib-keyboard.sh ├── post-nochroot-lib-network.sh ├── post-nochroot-lib-ui.sh ├── pre-install.ks.in ├── pre-install.sh ├── pre-lib-harddrive.sh ├── preexisting-btrfs.ks.in ├── preexisting-btrfs.sh ├── preexisting-btrfs.tar.xz ├── proxy-auth.ks.in ├── proxy-auth.sh ├── proxy-cmdline.ks.in ├── proxy-cmdline.sh ├── proxy-kickstart.ks.in ├── proxy-kickstart.sh ├── raid-1-reqpart.ks.in ├── raid-1-reqpart.sh ├── raid-1.ks.in ├── raid-1.sh ├── raid-ddf.ks.in ├── raid-ddf.sh ├── raid-ddf.tar.xz ├── raid-luks-1.ks.in ├── raid-luks-1.sh ├── raid-luks-2.ks.in ├── raid-luks-2.sh ├── raid-luks-3.ks.in ├── raid-luks-3.sh ├── raid-luks-4.ks.in ├── raid-luks-4.sh ├── reboot-initial-setup-gui.ks.in ├── reboot-initial-setup-gui.sh ├── reboot-initial-setup-tui.ks.in ├── reboot-initial-setup-tui.sh ├── reboot-uefi.ks.in ├── reboot-uefi.sh ├── reboot.ks.in ├── reboot.sh ├── repo-addrepo-hd-iso.ks.in ├── repo-addrepo-hd-iso.sh ├── repo-addrepo-hd-tree.ks.in ├── repo-addrepo-hd-tree.sh ├── repo-addrepo.ks.in ├── repo-addrepo.sh ├── repo-baseurl.ks.in ├── repo-baseurl.sh ├── repo-enable.ks.in ├── repo-enable.sh ├── repo-exclude.ks.in ├── repo-exclude.sh ├── repo-include.ks.in ├── repo-include.sh ├── repo-install.ks.in ├── repo-install.sh ├── repo-metalink.ks.in ├── repo-metalink.sh ├── repo-mirrorlist.ks.in ├── repo-mirrorlist.sh ├── reqpart.ks.in ├── reqpart.sh ├── rootpw-allow-ssh.ks.in ├── rootpw-allow-ssh.sh ├── rootpw-basic.ks.in ├── rootpw-basic.sh ├── rootpw-crypted.ks.in ├── rootpw-crypted.sh ├── rootpw-lock-no-password.ks.in ├── rootpw-lock-no-password.sh ├── rootpw-lock.ks.in ├── rootpw-lock.sh ├── rpm-ostree-container-bootc.ks.in ├── rpm-ostree-container-bootc.sh ├── rpm-ostree-container-leavebootorder.ks.in ├── rpm-ostree-container-leavebootorder.sh ├── rpm-ostree-container-luks.ks.in ├── rpm-ostree-container-luks.sh ├── rpm-ostree-container-silverblue.ks.in ├── rpm-ostree-container-silverblue.sh ├── rpm-ostree-container-uefi.ks.in ├── rpm-ostree-container-uefi.sh ├── rpm-ostree.ks.in ├── rpm-ostree.sh ├── script-post.ks.in ├── script-post.sh ├── script-pre-install.ks.in ├── script-pre-install.sh ├── script-pre.ks.in ├── script-pre.sh ├── scripts-lib.sh ├── scripts ├── Makefile.prereqs ├── apply-ksappend.py ├── classify-failures ├── confs │ ├── squid-pass.conf │ └── squid.conf ├── defaults-fedora_rawhide.sh ├── defaults-rhel10.sh ├── defaults-rhel8.sh ├── defaults-rhel9.sh ├── defaults.sh ├── generate-launch-args.py ├── generate-permian-query.py ├── generate-repository.py ├── generate-testcases.py ├── generate-testplan.py ├── httpd.py ├── kstests-in-cloud.sh ├── launch_proxy.sh ├── launcher │ ├── lib │ │ ├── __init__.py │ │ ├── conf │ │ │ ├── __init__.py │ │ │ ├── configuration.py │ │ │ └── runner_parser.py │ │ ├── launcher_interface.sh │ │ ├── log_monitor │ │ │ ├── __init__.py │ │ │ └── log_handler.py │ │ ├── shell_launcher.py │ │ ├── test_logging.py │ │ ├── utils │ │ │ └── __init__.py │ │ ├── validator.py │ │ └── virtual_controller.py │ └── run_one_test.py ├── log2json ├── probe_boot_iso.sh ├── run-ci.sh ├── run_kickstart_tests.sh ├── run_report.sh ├── test_manager.py ├── test_manager │ ├── __init__.py │ ├── collector.py │ ├── configurator.py │ ├── errors.py │ └── kickstart_test.py ├── udev_escape.py └── weekly-summary ├── selinux-contexts.ks.in ├── selinux-contexts.sh ├── selinux-disabled.ks.in ├── selinux-disabled.sh ├── selinux-enforcing.ks.in ├── selinux-enforcing.sh ├── selinux-permissive.ks.in ├── selinux-permissive.sh ├── services.ks.in ├── services.sh ├── snapshot-post.ks.in ├── snapshot-post.sh ├── snapshot-pre.ks.in ├── snapshot-pre.sh ├── stage2-from-ks.ks.in ├── stage2-from-ks.sh ├── storage-multipath-autopart.ks.in ├── storage-multipath-autopart.sh ├── team-httpks.ks.in ├── team-httpks.sh ├── team-pre.ks.in ├── team-pre.sh ├── team.ks.in ├── team.sh ├── test └── static-code ├── testlib ├── test_cases │ ├── README.md │ └── kstest-template.tc.yaml.j2 └── test_plans │ ├── daily-daily-iso.plan.yaml.j2 │ ├── daily-rhel10.plan.yaml.j2 │ ├── daily-rhel9.plan.yaml.j2 │ ├── minimal.plan.yaml │ └── pull-request-permian-gating.plan.yaml ├── timezone-noncommon.ks.in ├── timezone-noncommon.sh ├── timezoneLOCAL.ks.in ├── timezoneLOCAL.sh ├── timezoneUTC.ks.in ├── timezoneUTC.sh ├── tmpfs-fixed_size.ks.in ├── tmpfs-fixed_size.sh ├── ui_cmdline.ks.in ├── ui_cmdline.sh ├── ui_graphical_interactive.ks.in ├── ui_graphical_interactive.sh ├── ui_graphical_noninteractive.ks.in ├── ui_graphical_noninteractive.sh ├── ui_rdp.ks.in ├── ui_rdp.sh ├── ui_text_interactive.ks.in ├── ui_text_interactive.sh ├── ui_text_noninteractive.ks.in ├── ui_text_noninteractive.sh ├── ui_vnc.ks.in ├── ui_vnc.sh ├── unified-cdrom.ks.in ├── unified-cdrom.sh ├── unified-cmdline.ks.in ├── unified-cmdline.sh ├── unified-harddrive.ks.in ├── unified-harddrive.sh ├── unified-nfs.ks.in ├── unified-nfs.sh ├── unified.ks.in ├── unified.sh ├── url-baseurl.ks.in ├── url-baseurl.sh ├── url-metalink.ks.in ├── url-metalink.sh ├── url-mirrorlist.ks.in ├── url-mirrorlist.sh ├── user-locked-root-locked-admin.ks.in ├── user-locked-root-locked-admin.sh ├── user-multiple-wheel-no-root.ks.in ├── user-multiple-wheel-no-root.sh ├── user-multiple.ks.in ├── user-multiple.sh ├── user-no-wheel-no-root.ks.in ├── user-no-wheel-no-root.sh ├── user-single.ks.in ├── user-single.sh ├── user-wheel-no-root.ks.in ├── user-wheel-no-root.sh ├── validate-lib-initial-setup.sh ├── validate-lib-services.sh ├── vlan-httpks.ks.in ├── vlan-httpks.sh ├── vlan-pre.ks.in └── vlan-pre.sh /.fmf/version: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /.github/defaults.sh: -------------------------------------------------------------------------------- 1 | # The download.fedoraproject.org automatic redirector often selects download-ib01.f.o. for GitHub's cloud, which is too unreliable; use mirror from default scripts/defaults.sh configuration 2 | #export KSTEST_URL='http://download.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/$basearch/os/' 3 | #export KSTEST_MODULAR_URL='http://download.fedoraproject.org/pub/fedora/linux/development/rawhide/Modular/$basearch/os/' 4 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # Dependabot checks our dependencies and opens pull requests for new versions. 2 | # See the current status: https://github.com/rhinstaller/kickstart-tests/network/updates 3 | 4 | version: 2 5 | updates: 6 | 7 | # Set update schedule for GitHub actions. 8 | - package-ecosystem: "github-actions" 9 | directory: "/" 10 | schedule: 11 | interval: "daily" 12 | commit-message: 13 | prefix: "infra" 14 | -------------------------------------------------------------------------------- /.github/workflows/container-autoupdate.yml: -------------------------------------------------------------------------------- 1 | # Build our container for running kickstart tests and push that to our quay.io repository 2 | # We cannot fully self-validate the new container, as running all kickstart tests just takes too long. 3 | # So tag the containers by build date, so that in the worst case we can always reset :latest to the previously working tag. 4 | name: Build and push containers 5 | on: 6 | schedule: 7 | - cron: 0 18 * * 6 8 | # be able to start this action manually from a actions tab when needed 9 | workflow_dispatch: 10 | 11 | jobs: 12 | runner: 13 | name: Build kstest-runner container 14 | runs-on: ubuntu-latest 15 | environment: quay.io 16 | steps: 17 | - name: Checkout repository 18 | uses: actions/checkout@v4 19 | 20 | - name: Login to container registry 21 | run: docker login -u ${{ secrets.QUAY_USERNAME }} -p ${{ secrets.QUAY_PASSWORD }} quay.io 22 | 23 | - name: Build and push container 24 | run: | 25 | TAG=$(date --iso-8601) 26 | NAME=quay.io/rhinstaller/kstest-runner 27 | docker build -t $NAME:$TAG containers/runner 28 | docker tag $NAME:$TAG $NAME:latest 29 | 30 | docker push $NAME:$TAG 31 | docker push $NAME:latest 32 | -------------------------------------------------------------------------------- /.github/workflows/differential-shellcheck.yml: -------------------------------------------------------------------------------- 1 | # Doc: https://github.com/redhat-plumbers-in-action/differential-shellcheck#usage 2 | --- 3 | 4 | name: Differential ShellCheck 5 | on: 6 | pull_request: 7 | branches: [main] 8 | 9 | permissions: 10 | contents: read 11 | 12 | jobs: 13 | lint: 14 | runs-on: ubuntu-latest 15 | 16 | steps: 17 | - name: Repository checkout 18 | uses: actions/checkout@v4 19 | with: 20 | fetch-depth: 0 21 | 22 | - name: Differential ShellCheck 23 | uses: redhat-plumbers-in-action/differential-shellcheck@v5 24 | env: 25 | # The shell specification is missing in .sh test files 26 | SHELLCHECK_OPTS: -s bash 27 | with: 28 | severity: warning 29 | token: ${{ secrets.GITHUB_TOKEN }} 30 | -------------------------------------------------------------------------------- /.github/workflows/static-code-tests.yml: -------------------------------------------------------------------------------- 1 | name: static-code-tests 2 | on: [pull_request] 3 | jobs: 4 | static-code-tests: 5 | runs-on: ubuntu-latest 6 | permissions: {} 7 | container: 8 | image: quay.io/rhinstaller/kstest-runner 9 | steps: 10 | - name: Set up dependencies 11 | run: | 12 | pip install pylint==3.1.0 ruff==0.3.7 13 | 14 | - name: Clone repository 15 | uses: actions/checkout@v4 16 | with: 17 | fetch-depth: 0 18 | 19 | - name: Run static code tests 20 | run: | 21 | export PATH="$HOME/.local/bin:$PATH"; ./test/static-code 22 | -------------------------------------------------------------------------------- /.github/workflows/weekly-summary.yml: -------------------------------------------------------------------------------- 1 | # Generate a weekly summary of test failures 2 | name: Weekly Summary 3 | on: 4 | schedule: 5 | # Run Monday mornings, but long enough after daily test run for results 6 | - cron: 0 9 * * 1 7 | # be able to start this action manually from a actions tab when needed 8 | workflow_dispatch: 9 | permissions: 10 | contents: read 11 | 12 | jobs: 13 | weekly_summary: 14 | name: Create weekly summary of test runs 15 | runs-on: ubuntu-latest 16 | env: 17 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 18 | steps: 19 | - name: Clone repository 20 | uses: actions/checkout@v4 21 | - name: Install pycurl 22 | run: sudo apt-get install -y python3-pycurl 23 | - name: Run weekly-summary script 24 | run: | 25 | PATH=./scripts/:$PATH \ 26 | ./scripts/weekly-summary --rebuild --flake-details \ 27 | --artifacts=logs-daily-iso,logs-rhel9,logs-rhel10 \ 28 | --archive-logs /var/tmp/kstest-archive/ 29 | 30 | - name: Collect logs 31 | if: always() 32 | uses: actions/upload-artifact@v4 33 | with: 34 | name: 'weekly-logs-archive' 35 | path: /var/tmp/kstest-archive/* 36 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /*.ks 2 | fragments/runtime 3 | *.log 4 | *.retry 5 | __pycache__ 6 | 7 | # these are temp directories for downloaded images and logs 8 | data/ 9 | -------------------------------------------------------------------------------- /.pylintrc: -------------------------------------------------------------------------------- 1 | [MESSAGES CONTROL] 2 | 3 | disable = empty-docstring, 4 | fixme, 5 | missing-docstring, 6 | missing-module-docstring, 7 | no-name-in-module, 8 | redefined-outer-name, 9 | unnecessary-pass, 10 | unspecified-encoding, 11 | C, 12 | R 13 | 14 | [FORMAT] 15 | 16 | disable = consider-using-f-string, 17 | line-too-long, 18 | logging-format-interpolation, 19 | 20 | [MASTER] 21 | 22 | # A comma-separated list of package or module names from where C extensions may 23 | # be loaded. Extensions are loading into the active Python interpreter and may 24 | # run arbitrary code. 25 | extension-pkg-whitelist= pycurl 26 | 27 | [IMPORTS] 28 | 29 | # List of module names for which member attributes should not be checked 30 | # (useful for modules/projects where namespaces are manipulated during runtime 31 | # and thus existing member attributes cannot be deduced by static analysis. It 32 | # supports qualified module names, as well as Unix pattern matching. 33 | ignored-modules=rpmfluff,jinja2,pycurl 34 | -------------------------------------------------------------------------------- /anabot-1.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | # NOTHING TO DO HERE! THIS FILE IS NOT USED! 4 | -------------------------------------------------------------------------------- /anabot-1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /anaconda-modules.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2021 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 19 | # shellcheck disable=SC2034 20 | TESTTYPE="anaconda" 21 | 22 | . ${KSTESTDIR}/functions.sh 23 | -------------------------------------------------------------------------------- /authconfig.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | 4 | %ksappend common/common_no_payload.ks 5 | %ksappend payload/default_packages.ks 6 | 7 | # Test deprecated command 8 | authconfig --passalgo=sha512 --useshadow 9 | 10 | %post 11 | 12 | authselect current | egrep -q "Profile ID: sssd" 13 | if [[ $? -ne 0 ]]; then 14 | echo "*** Failed check: Default authselect profile: sssd" >> /root/RESULT 15 | fi 16 | 17 | authselect current | egrep -q "Enabled features: None" 18 | if [[ $? -ne 0 ]]; then 19 | echo "*** Failed check: Enabled features: None" >> /root/RESULT 20 | fi 21 | 22 | if [[ ! -e /root/RESULT ]]; then 23 | echo SUCCESS > /root/RESULT 24 | fi 25 | %end 26 | -------------------------------------------------------------------------------- /authselect-not-set.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | #Test that authselect default configuration if authselect is not set in kickstart 3 | %ksappend repos/default.ks 4 | 5 | %ksappend common/common_no_payload.ks 6 | %ksappend payload/default_packages.ks 7 | 8 | # Test authselect default profile 9 | 10 | %post 11 | 12 | @KSINCLUDE@ scripts-lib.sh 13 | platform="$(get_platform @KSTEST_OS_NAME@ @KSTEST_OS_VERSION@)" 14 | 15 | command -v authselect > /dev/null 2>&1 16 | if [[ $? -eq 0 ]]; then 17 | if [ "${platform}" == "rhel8" ] || [ "${platform}" == "rhel9" ]; then 18 | authselect current | grep -E "No existing configuration detected" 19 | else 20 | authselect current | grep -E "Profile ID: local" 21 | fi 22 | if [[ $? -ne 0 ]]; then 23 | echo "*** Failed check: default authselect configuration is detected" >> /root/RESULT 24 | fi 25 | else 26 | echo "*** Failed check: authselect is installed" >> /root/RESULT 27 | fi 28 | 29 | if [[ ! -e /root/RESULT ]]; then 30 | echo SUCCESS > /root/RESULT 31 | fi 32 | %end 33 | -------------------------------------------------------------------------------- /authselect-not-set.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2020 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Radek Vykydal 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="security" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /authselect.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | 4 | %ksappend common/common_no_payload.ks 5 | %ksappend payload/default_packages.ks 6 | 7 | authselect select sssd with-mkhomedir 8 | 9 | %post 10 | 11 | authselect current | egrep -q "Profile ID: sssd" 12 | if [[ $? -ne 0 ]]; then 13 | echo "*** Failed check: Default authselect profile: sssd" >> /root/RESULT 14 | fi 15 | 16 | authselect current | egrep -q -- "- with-mkhomedir" 17 | if [[ $? -ne 0 ]]; then 18 | echo "*** Failed check: Enabled features: - with-mkhomedir" >> /root/RESULT 19 | fi 20 | 21 | if [[ ! -e /root/RESULT ]]; then 22 | echo SUCCESS > /root/RESULT 23 | fi 24 | %end 25 | -------------------------------------------------------------------------------- /authselect.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2020 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Radek Vykydal 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="security" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /autopart-encrypted-1.ks.in: -------------------------------------------------------------------------------- 1 | 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all --initlabel 8 | autopart --type=lvm --encrypted --passphrase="passphrase" 9 | 10 | keyboard us 11 | lang en 12 | timezone America/New_York 13 | rootpw qweqwe 14 | shutdown 15 | 16 | %packages 17 | %end 18 | 19 | %post 20 | # Log the created partitioning. 21 | lsblk 22 | 23 | # Find the LUKS device. 24 | crypted="$(blkid --match-token TYPE="crypto_LUKS" --output device)" 25 | 26 | if [[ $? != 0 ]] ; then 27 | echo "*** couldn't find a LUKS device" > /root/RESULT 28 | exit 1 29 | fi 30 | 31 | # The LUKS device should be a parent of a root device. 32 | lsblk ${crypted} --output mountpoint | grep -x / 33 | 34 | if [[ $? != 0 ]] ; then 35 | echo "*** ${crypted} doesn't contain a root device" > /root/RESULT 36 | exit 1 37 | fi 38 | 39 | # Try to use the passphrase. 40 | echo "passphrase" | cryptsetup luksOpen --test-passphrase "${crypted}" 41 | 42 | if [[ $? != 0 ]] ; then 43 | echo "*** cannot open ${crypted} with the passphrase" > /root/RESULT 44 | exit 1 45 | fi 46 | 47 | echo 'SUCCESS' > /root/RESULT 48 | %end 49 | -------------------------------------------------------------------------------- /autopart-encrypted-2.ks.in: -------------------------------------------------------------------------------- 1 | 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all --initlabel 8 | autopart --type=lvm --encrypted --passphrase="passphrase" --cipher="aes-xts-plain64" 9 | 10 | keyboard us 11 | lang en 12 | timezone America/New_York 13 | rootpw qweqwe 14 | shutdown 15 | 16 | %packages 17 | %end 18 | 19 | %post 20 | # Check the cipher name of the LUKS device. 21 | crypted="$(blkid --match-token TYPE="crypto_LUKS" --output device)" 22 | cipher="$(cryptsetup luksDump ${crypted} | awk '{ if ($1 == "Cipher:") print $2; }' )" 23 | 24 | if [[ "$cipher" != "aes-xts-plain64" ]] ; then 25 | echo "*** unexpected cipher ${cipher} of ${crypted}" > /root/RESULT 26 | exit 1 27 | fi 28 | 29 | echo 'SUCCESS' > /root/RESULT 30 | %end 31 | -------------------------------------------------------------------------------- /autopart-fstype.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | network --bootproto=dhcp 3 | 4 | bootloader --timeout=1 5 | zerombr 6 | clearpart --all --initlabel 7 | autopart --type=plain --fstype="ext2" 8 | 9 | keyboard us 10 | lang en 11 | timezone America/New_York 12 | rootpw qweqwe 13 | shutdown 14 | 15 | %packages 16 | %end 17 | 18 | %post 19 | # Check the fstype of the root. 20 | root_fstype="$( \ 21 | lsblk -o MOUNTPOINT,FSTYPE --noheadings \ 22 | | awk '$1 ~ /^\/$/ { print $2; }' \ 23 | )" 24 | 25 | if [ "$root_fstype" != "ext2" ]; then 26 | echo "fstype of root is incorrect: $root_fstype)" >> /root/RESULT 27 | fi 28 | 29 | if [ ! -e /root/RESULT ]; then 30 | echo SUCCESS > /root/RESULT 31 | fi 32 | %end 33 | -------------------------------------------------------------------------------- /autopart-luks-1.ks.in: -------------------------------------------------------------------------------- 1 | 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all --initlabel 8 | 9 | # Test LUKS 1. 10 | autopart --type=lvm --encrypted --passphrase="passphrase" --luks-version=luks1 11 | 12 | keyboard us 13 | lang en 14 | timezone America/New_York 15 | rootpw qweqwe 16 | shutdown 17 | 18 | %packages 19 | %end 20 | 21 | %post 22 | 23 | # Find the LUKS device. 24 | crypted="$(blkid --match-token TYPE="crypto_LUKS" --output device)" 25 | 26 | if [[ $? != 0 ]] ; then 27 | echo "*** couldn't find a LUKS device" > /root/RESULT 28 | exit 1 29 | fi 30 | 31 | # Check if the LUKS version is luks1. 32 | result="$(cryptsetup luksDump ${crypted} | awk '{ if ($1 == "Version:") print $2; }' )" 33 | 34 | if [[ "$result" != "1" ]] ; then 35 | echo "*** unexpected LUKS version for ${crypted}: ${result}" > /root/RESULT 36 | exit 1 37 | fi 38 | 39 | # Try to use the passphrase. 40 | echo "passphrase" | cryptsetup luksOpen --test-passphrase "${crypted}" 41 | 42 | if [[ $? != 0 ]] ; then 43 | echo "*** cannot open ${crypted} with the passphrase" > /root/RESULT 44 | exit 1 45 | fi 46 | 47 | echo 'SUCCESS' > /root/RESULT 48 | %end 49 | -------------------------------------------------------------------------------- /autopart-luks-3.ks.in: -------------------------------------------------------------------------------- 1 | 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all --initlabel 8 | 9 | # Test LUKS 2 with pbkdf2 and limited iterations. 10 | autopart --type=lvm --encrypted --passphrase="passphrase" --luks-version=luks2 --pbkdf=pbkdf2 --pbkdf-time=10 11 | 12 | keyboard us 13 | lang en 14 | timezone America/New_York 15 | rootpw qweqwe 16 | shutdown 17 | 18 | %packages 19 | %end 20 | 21 | %post 22 | 23 | # Find the LUKS device. 24 | crypted="$(blkid --match-token TYPE="crypto_LUKS" --output device)" 25 | 26 | if [[ $? != 0 ]] ; then 27 | echo "*** couldn't find a LUKS device" > /root/RESULT 28 | exit 1 29 | fi 30 | 31 | # Check the PBKDF of the LUKS device. 32 | result="$(cryptsetup luksDump ${crypted} | awk '{ if ($1 == "PBKDF:") print $2; }' )" 33 | 34 | if [[ "$result" != "pbkdf2" ]] ; then 35 | echo "*** unexpected PBKDF for ${crypted}: ${result}" >> /root/RESULT 36 | fi 37 | 38 | # The test was successful. 39 | if [ ! -e /root/RESULT ]; then 40 | echo SUCCESS > /root/RESULT 41 | fi 42 | 43 | %end 44 | -------------------------------------------------------------------------------- /basic-ftp.ks.in: -------------------------------------------------------------------------------- 1 | url --url=@KSTEST_FTP_URL@ 2 | network --bootproto=dhcp 3 | 4 | bootloader --timeout=1 5 | zerombr 6 | clearpart --all 7 | autopart 8 | 9 | keyboard us 10 | lang en 11 | timezone America/New_York 12 | rootpw qweqwe 13 | shutdown 14 | 15 | %packages 16 | %end 17 | 18 | %post 19 | # If we made it post, that's good enough 20 | echo SUCCESS > /root/RESULT 21 | %end 22 | -------------------------------------------------------------------------------- /basic-ftp.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright (C) 2015 Red Hat, Inc. 4 | # 5 | # This copyrighted material is made available to anyone wishing to use, 6 | # modify, copy, or redistribute it subject to the terms and conditions of 7 | # the GNU General Public License v.2, or (at your option) any later version. 8 | # This program is distributed in the hope that it will be useful, but WITHOUT 9 | # ANY WARRANTY expressed or implied, including the implied warranties of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 11 | # Public License for more details. You should have received a copy of the 12 | # GNU General Public License along with this program; if not, write to the 13 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 14 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 15 | # source code or documentation are not subject to the GNU General Public 16 | # License and may only be used or replicated with the express permission of 17 | # Red Hat, Inc. 18 | # 19 | # Red Hat Author(s): David Shea 20 | 21 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 22 | # shellcheck disable=SC2034 23 | TESTTYPE="payload" 24 | 25 | . ${KSTESTDIR}/functions.sh 26 | -------------------------------------------------------------------------------- /basic-ostree.ks.in: -------------------------------------------------------------------------------- 1 | # Substitute something in for REPO or this will all come crashing down. 2 | ostreesetup --nogpg --osname=fedora-atomic --remote=fedora-atomic --url=@KSTEST_OSTREE_REPO@ --ref=fedora-atomic/rawhide/x86_64/base/core 3 | network --bootproto=dhcp 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all 8 | autopart 9 | 10 | keyboard us 11 | lang en 12 | timezone America/New_York 13 | rootpw qweqwe 14 | shutdown 15 | 16 | %post --nochroot 17 | mkdir -p /mnt/sysimage/root/ 18 | echo SUCCESS > /mnt/sysimage/root/RESULT 19 | %end 20 | -------------------------------------------------------------------------------- /bindtomac-bond2-httpks.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2016 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Radek Vykydal 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="network" 23 | 24 | . ${KSTESTDIR}/bond2-httpks.sh 25 | -------------------------------------------------------------------------------- /bindtomac-bond2-pre.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2016 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Radek Vykydal 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="network" 23 | 24 | . ${KSTESTDIR}/bond2-pre.sh 25 | -------------------------------------------------------------------------------- /bindtomac-network-device-default-httpks.ks.in: -------------------------------------------------------------------------------- 1 | #NOTE: as this test is a "-httpks" the kickstart should be really applied 2 | # in initrafs (config files created by parse-kickstart). The parse-kickstart 3 | # code actually ignores the command without --device specified 4 | # (and no ksdevice set), so it will be applied in anaconda. 5 | %ksappend repos/default.ks 6 | 7 | network --bootproto=dhcp --ipv6=2001:cafe:cafe::1/64 --bindto=mac 8 | 9 | bootloader --timeout=1 10 | zerombr 11 | clearpart --all 12 | autopart 13 | 14 | keyboard us 15 | lang en 16 | timezone America/New_York 17 | rootpw qweqwe 18 | shutdown 19 | 20 | %packages 21 | %end 22 | 23 | %post --nochroot 24 | 25 | @KSINCLUDE@ post-nochroot-lib-network.sh 26 | 27 | check_gui_configurations @KSTEST_NETDEV1@ 28 | 29 | %end 30 | 31 | %post 32 | 33 | @KSINCLUDE@ post-lib-network.sh 34 | 35 | check_device_config_value @KSTEST_NETDEV1@ IPV6ADDR 2001:cafe:cafe::1/64 ipv6 address1 2001:cafe:cafe::1/64 36 | check_device_config_bound_to_mac @KSTEST_NETDEV1@ 37 | 38 | # No error was written to /root/RESULT file, everything is OK 39 | if [[ ! -e /root/RESULT ]]; then 40 | echo SUCCESS > /root/RESULT 41 | fi 42 | %end 43 | -------------------------------------------------------------------------------- /bindtomac-network-device-mac-httpks.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | 3 | network --bootproto=dhcp --device=52:54:00:12:34:51 --bindto=mac 4 | network --bootproto=dhcp --device=52:54:00:12:34:52 --activate --bindto=mac 5 | 6 | bootloader --timeout=1 7 | zerombr 8 | clearpart --all 9 | autopart 10 | 11 | keyboard us 12 | lang en 13 | timezone America/New_York 14 | rootpw qweqwe 15 | shutdown 16 | 17 | %packages 18 | %end 19 | 20 | %post 21 | 22 | @KSINCLUDE@ post-lib-network.sh 23 | 24 | # --device= is used to specify the interface, not to bind the 25 | # connection to the MAC address 26 | check_device_config_bound_to_mac @KSTEST_NETDEV1@ 27 | check_config_exists @KSTEST_NETDEV1@-1 no 28 | check_device_connected @KSTEST_NETDEV1@ yes 29 | 30 | check_device_config_bound_to_mac @KSTEST_NETDEV2@ 31 | check_config_exists @KSTEST_NETDEV2@-1 no 32 | check_device_connected @KSTEST_NETDEV2@ yes 33 | 34 | # No error was written to /root/RESULT file, everything is OK 35 | if [[ ! -e /root/RESULT ]]; then 36 | echo SUCCESS > /root/RESULT 37 | fi 38 | %end 39 | -------------------------------------------------------------------------------- /bindtomac-network-device-mac-pre.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | 3 | %include /tmp/ksinclude 4 | %pre 5 | echo "network --bootproto=dhcp --device=52:54:00:12:34:53 --bindto=mac" >> /tmp/ksinclude 6 | echo "network --bootproto=dhcp --device=52:54:00:12:34:54 --activate --bindto=mac" >> /tmp/ksinclude 7 | %end 8 | 9 | bootloader --timeout=1 10 | zerombr 11 | clearpart --all 12 | autopart 13 | 14 | keyboard us 15 | lang en 16 | timezone America/New_York 17 | rootpw qweqwe 18 | shutdown 19 | 20 | %packages 21 | %end 22 | 23 | %post 24 | 25 | @KSINCLUDE@ post-lib-network.sh 26 | 27 | check_config_key_exists @KSTEST_NETDEV1@ HWADDR __ANY ethernet mac-address __ANY 28 | check_config_exists @KSTEST_NETDEV1@-1 no 29 | check_device_connected @KSTEST_NETDEV1@ yes 30 | 31 | check_config_key_exists @KSTEST_NETDEV2@ HWADDR __ANY ethernet mac-address __ANY 32 | check_config_exists @KSTEST_NETDEV2@-1 no 33 | check_device_connected @KSTEST_NETDEV2@ yes 34 | 35 | # No error was written to /root/RESULT file, everything is OK 36 | if [[ ! -e /root/RESULT ]]; then 37 | echo SUCCESS > /root/RESULT 38 | fi 39 | %end 40 | -------------------------------------------------------------------------------- /bindtomac-network-device-mac.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | 3 | network --bootproto=dhcp --device=52:54:00:12:34:50 --bindto=mac 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all 8 | autopart 9 | 10 | keyboard us 11 | lang en 12 | timezone America/New_York 13 | rootpw qweqwe 14 | shutdown 15 | 16 | %packages 17 | %end 18 | 19 | %post 20 | 21 | @KSINCLUDE@ post-lib-network.sh 22 | 23 | check_device_config_value ksdev0 HWADDR 52:54:00:12:34:50 ethernet mac-address 52:54:00:12:34:50 24 | check_device_connected ksdev0 yes 25 | 26 | # No error was written to /root/RESULT file, everything is OK 27 | if [[ ! -e /root/RESULT ]]; then 28 | echo SUCCESS > /root/RESULT 29 | fi 30 | %end 31 | -------------------------------------------------------------------------------- /bindtomac-onboot-bootopts-pre.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | 3 | %include /tmp/ksinclude 4 | %pre 5 | echo "network --device=@KSTEST_NETDEV2@ --bootproto dhcp --onboot=no --bindto=mac" >> /tmp/ksinclude 6 | %end 7 | 8 | bootloader --timeout=1 9 | zerombr 10 | clearpart --all 11 | autopart 12 | 13 | keyboard us 14 | lang en 15 | timezone America/New_York 16 | rootpw qweqwe 17 | shutdown 18 | 19 | %packages 20 | %end 21 | 22 | %post --nochroot 23 | 24 | @KSINCLUDE@ post-nochroot-lib-network.sh 25 | 26 | check_gui_configurations @KSTEST_NETDEV1@ @KSTEST_NETDEV2@ 27 | 28 | %end 29 | 30 | %post 31 | 32 | @KSINCLUDE@ post-lib-network.sh 33 | 34 | check_device_config_value @KSTEST_NETDEV1@ ONBOOT yes connection autoconnect __NONE 35 | check_device_config_value @KSTEST_NETDEV2@ ONBOOT no connection autoconnect false 36 | check_device_connected @KSTEST_NETDEV1@ yes 37 | check_device_connected @KSTEST_NETDEV2@ yes 38 | check_device_config_bound_to_mac @KSTEST_NETDEV2@ 39 | 40 | # No error was written to /root/RESULT file, everything is OK 41 | if [[ ! -e /root/RESULT ]]; then 42 | echo SUCCESS > /root/RESULT 43 | fi 44 | %end 45 | -------------------------------------------------------------------------------- /bootloader-1.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | network --bootproto=dhcp 3 | 4 | bootloader --timeout=13 --append="anaconda_testing_option=1" --password="grub.pbkdf2.12345" --iscrypted 5 | 6 | autopart 7 | clearpart --all --initlabel 8 | zerombr 9 | 10 | keyboard us 11 | lang en 12 | timezone America/New_York 13 | rootpw qweqwe 14 | shutdown 15 | 16 | %packages 17 | %end 18 | 19 | 20 | %post 21 | # Check the timeout. 22 | grep "^GRUB_TIMEOUT=13$" /etc/default/grub 23 | if [[ $? -ne 0 ]]; then 24 | echo '*** Failed check: the timeout check' >> /root/RESULT 25 | fi 26 | 27 | # Check the extra args. 28 | grep "^GRUB_CMDLINE_LINUX=" /etc/default/grub | grep "anaconda_testing_option=1" 29 | if [[ $? -ne 0 ]]; then 30 | echo '*** Failed check: the extra options check' >> /root/RESULT 31 | fi 32 | 33 | # Check the password. 34 | grep "^GRUB2_PASSWORD=grub.pbkdf2.12345$" /boot/grub2/user.cfg 35 | if [[ $? -ne 0 ]]; then 36 | echo '*** Failed check: the password check' >> /root/RESULT 37 | fi 38 | 39 | # The test was successful. 40 | if [ ! -e /root/RESULT ]; then 41 | echo SUCCESS > /root/RESULT 42 | fi 43 | %end 44 | -------------------------------------------------------------------------------- /bootloader-2.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | network --bootproto=dhcp 3 | 4 | bootloader --timeout=1 --boot-drive=vda 5 | 6 | autopart 7 | clearpart --all --initlabel 8 | zerombr 9 | 10 | keyboard us 11 | lang en 12 | timezone America/New_York 13 | rootpw qweqwe 14 | shutdown 15 | 16 | %packages 17 | %end 18 | 19 | 20 | %pre-install 21 | # Get the MBR after the partitioning. 22 | dd if=/dev/vda bs=512 count=1 of=/tmp/pre_install_mbr_content.bin 23 | %end 24 | 25 | 26 | %post --nochroot 27 | # Get the current MBR. 28 | dd if=/dev/vda bs=512 count=1 of=/tmp/current_mbr_content.bin 29 | 30 | # Check the MBR. 31 | cmp /tmp/pre_install_mbr_content.bin /tmp/current_mbr_content.bin 32 | if [[ $? -ne 1 ]]; then 33 | echo '*** Failed check: MBR was changed' >> /mnt/sysroot/root/RESULT 34 | else 35 | echo SUCCESS > /mnt/sysroot/root/RESULT 36 | fi 37 | %end 38 | -------------------------------------------------------------------------------- /bootloader-2.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2018 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Vendula Poncova 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="bootloader storage" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /bootloader-3.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | network --bootproto=dhcp 3 | 4 | bootloader --timeout=1 --boot-drive=vda --nombr 5 | 6 | autopart 7 | clearpart --all 8 | zerombr 9 | 10 | keyboard us 11 | lang en 12 | timezone America/New_York 13 | rootpw qweqwe 14 | shutdown 15 | 16 | %packages 17 | %end 18 | 19 | 20 | %pre-install 21 | # Get the MBR after the partitioning. 22 | dd if=/dev/vda bs=512 count=1 of=/tmp/pre_install_mbr_content.bin 23 | %end 24 | 25 | 26 | %post --nochroot 27 | # Get the current MBR. 28 | dd if=/dev/vda bs=512 count=1 of=/tmp/current_mbr_content.bin 29 | 30 | # Check the MBR. 31 | cmp /tmp/pre_install_mbr_content.bin /tmp/current_mbr_content.bin 32 | if [[ $? -ne 0 ]]; then 33 | echo '*** Failed check: MBR was not changed' >> /mnt/sysroot/root/RESULT 34 | else 35 | echo SUCCESS > /mnt/sysroot/root/RESULT 36 | fi 37 | %end 38 | -------------------------------------------------------------------------------- /certificate.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2025 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Radek Vykydal 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="security" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /check_for_disabled_modules.ks.in: -------------------------------------------------------------------------------- 1 | # test name: check_for_disabled_addons 2 | 3 | # Use defaults 4 | %ksappend repos/default.ks 5 | %ksappend common/common_no_payload.ks 6 | %ksappend payload/default_packages.ks 7 | 8 | %post --nochroot 9 | # Check the syslog for Addons, which should have been disabled 10 | 11 | errors=$( grep "Anaconda.Addons*" /tmp/syslog | grep -v forbidden ) 12 | 13 | if [[ -n "${errors}" ]]; then 14 | echo "Addons are still enabled:" > /mnt/sysroot/root/RESULT 15 | echo "${errors}" >> /mnt/sysroot/root/RESULT 16 | else 17 | echo "SUCCESS" >> /mnt/sysroot/root/RESULT 18 | fi 19 | 20 | %end 21 | -------------------------------------------------------------------------------- /clearpart-1.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | bootloader --timeout=1 6 | clearpart --none --initlabel 7 | autopart --type lvm 8 | 9 | keyboard us 10 | lang en_US.UTF-8 11 | timezone America/New_York --utc 12 | rootpw testcase 13 | shutdown 14 | 15 | %packages 16 | %end 17 | 18 | %post 19 | echo SUCCESS > /root/RESULT 20 | %end 21 | -------------------------------------------------------------------------------- /containers/README.md: -------------------------------------------------------------------------------- 1 | Containers for running kickstart tests. 2 | 3 | * runner - Run a kickstart test in a container. 4 | * squid.sh - Start/stop a transparent HTTP proxy. See [runner README](./runner/README.md) for details. 5 | -------------------------------------------------------------------------------- /containers/runner/fetch_daily_iso.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -eux 3 | 4 | DAILY_ISO_TOKEN=$1 5 | OUTPUT_PATH=${2:-"boot.iso"} 6 | 7 | CURL="curl -u token:$(cat $DAILY_ISO_TOKEN) --show-error --fail" 8 | RESPONSE=$($CURL --silent https://api.github.com/repos/rhinstaller/kickstart-tests/actions/artifacts?name=images) 9 | ZIP=$(echo "$RESPONSE" | jq --raw-output '.artifacts[0].archive_download_url') 10 | echo "INFO: Downloading $ZIP ..." 11 | $CURL -L -o images.zip "$ZIP" 12 | unzip images.zip 13 | mv boot.iso ${OUTPUT_PATH} 14 | -------------------------------------------------------------------------------- /containers/runner/roles/runner-host/handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Reboot machine 4 | reboot: 5 | reboot_timeout: 300 6 | msg: "Reboot after kernel modules installation" 7 | -------------------------------------------------------------------------------- /containers/runner/roles/runner-host/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Update all packages 2 | dnf: 3 | name: "*" 4 | state: latest 5 | 6 | - name: Install packages 7 | dnf: 8 | name: "{{ host_packages }}" 9 | state: latest 10 | 11 | - name: Install kernel-modules (reboot if updated) 12 | dnf: 13 | name: "kernel-modules" 14 | state: present 15 | notify: 16 | - Reboot machine 17 | 18 | 19 | -------------------------------------------------------------------------------- /containers/squid-cache.conf: -------------------------------------------------------------------------------- 1 | http_port 3129 transparent 2 | cache_dir ufs /var/cache/squid 20000 16 256 3 | maximum_object_size 5 GB 4 | -------------------------------------------------------------------------------- /containers/squid-cache.nft: -------------------------------------------------------------------------------- 1 | table ip squid-cache { 2 | chain prerouting { 3 | type nat hook prerouting priority dstnat; policy accept; 4 | tcp dport 80 redirect to :3129 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /default-desktop.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # Test default desktop configuration via the xconfig command. 4 | %ksappend repos/default.ks 5 | 6 | %ksappend common/common_no_payload.ks 7 | %ksappend payload/default_packages.ks 8 | 9 | xconfig --defaultdesktop GNOME 10 | 11 | %post 12 | 13 | cat /etc/sysconfig/desktop | grep GNOME 14 | if [[ $? -ne 0 ]]; then 15 | echo "*** Default desktop environment not set to GNOME" >> /root/RESULT 16 | fi 17 | 18 | %ksappend validation/success_if_result_empty.ks 19 | %end 20 | -------------------------------------------------------------------------------- /default-fstype.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="storage" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /default-menu-auto-hide-fedora.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | 4 | %ksappend common/common_no_payload.ks 5 | %ksappend payload/default_packages.ks 6 | 7 | %post 8 | # log grubenv file 9 | cat /boot/grub2/grubenv 10 | 11 | # check the menu_auto_hide is correctly set 12 | grep -q "menu_auto_hide=1" /boot/grub2/grubenv || \ 13 | echo "*** Failed check: The menu_auto_hide is set to 1 in /boot/grub2/grubenv by default" >> /root/RESULT 14 | 15 | %ksappend validation/success_if_result_empty.ks 16 | 17 | %end 18 | -------------------------------------------------------------------------------- /default-menu-auto-hide-rhel.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | 4 | %ksappend common/common_no_payload.ks 5 | %ksappend payload/default_packages.ks 6 | 7 | %post 8 | # log grubenv file 9 | cat /boot/grub2/grubenv 10 | 11 | # check the menu_auto_hide is correctly set 12 | grep -q "menu_auto_hide=1" /boot/grub2/grubenv || \ 13 | echo "*** Failed check: The menu_auto_hide is set to 1 in /boot/grub2/grubenv by default" >> /root/RESULT 14 | 15 | %ksappend validation/success_if_result_empty.ks 16 | 17 | %end 18 | -------------------------------------------------------------------------------- /default-systemd-target-gui-graphical-provides.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # Test graphical.target is set as the default systemd target if: 4 | # - the installation runs in GUI mode 5 | # - contains a package with provides == service(graphical-login). 6 | 7 | %ksappend repos/default.ks 8 | 9 | %ksappend common/common_no_payload.ks 10 | 11 | # run installation in GUI mode 12 | graphical 13 | 14 | # the gdm package provides service(graphical-login) 15 | %packages 16 | gdm 17 | %end 18 | 19 | %post 20 | 21 | systemctl get-default | grep graphical.target 22 | if [[ $? != 0 ]]; then 23 | echo "*** graphical.target should be set if package with provides == service(graphical-login) is installed" >> /root/RESULT 24 | fi 25 | 26 | %ksappend validation/success_if_result_empty.ks 27 | %end 28 | -------------------------------------------------------------------------------- /default-systemd-target-gui.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # Test multi-user.target should be set by default as the default systemd target 4 | # when installation runs in GUI mode but not package with service(graphical-login) 5 | # will be installed. 6 | 7 | %ksappend repos/default.ks 8 | 9 | %ksappend common/common_no_payload.ks 10 | %ksappend payload/default_packages.ks 11 | 12 | %post 13 | 14 | systemctl get-default | grep multi-user.target 15 | if [[ $? != 0 ]]; then 16 | echo "*** multi-user.target should be set as the default systemd target" >> /root/RESULT 17 | fi 18 | 19 | %ksappend validation/success_if_result_empty.ks 20 | %end 21 | -------------------------------------------------------------------------------- /default-systemd-target-rdp.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # Test multi-user.target should be set by default as the default systemd target 4 | # for remote desktop installs. While controlled remotely over RDP the installation itself runs 5 | # in text mode and should behave as such. 6 | 7 | %ksappend repos/default.ks 8 | 9 | %ksappend common/common_no_payload.ks 10 | %ksappend payload/default_packages.ks 11 | 12 | %post 13 | 14 | # the support script should run the installation in RDP mode via boot options 15 | cat /proc/cmdline | grep inst.rdp 16 | if [[ $? != 0 ]]; then 17 | echo "*** inst.rdp not used to enable remote desktop mode" >> /root/RESULT 18 | echo "*** /proc/cmdline:" >> /root/RESULT 19 | cat /proc/cmdline >> /root/RESULT 20 | fi 21 | 22 | systemctl get-default | grep multi-user.target 23 | if [[ $? != 0 ]]; then 24 | echo "*** multi-user.target should be set as the default systemd target for remote desktop (RDP) installs" >> /root/RESULT 25 | fi 26 | 27 | %ksappend validation/success_if_result_empty.ks 28 | %end 29 | -------------------------------------------------------------------------------- /default-systemd-target-skipx.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # Test default systemd target is correctly set via the skipx command. 4 | %ksappend repos/default.ks 5 | 6 | %ksappend common/common_no_payload.ks 7 | %ksappend payload/default_packages.ks 8 | 9 | skipx 10 | 11 | %post 12 | 13 | systemctl get-default | grep multi-user.target 14 | if [[ $? != 0 ]]; then 15 | echo "*** multi-user.target should be set as the default systemd target" >> /root/RESULT 16 | fi 17 | 18 | %ksappend validation/success_if_result_empty.ks 19 | %end 20 | -------------------------------------------------------------------------------- /default-systemd-target-startxonboot.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # Test default systemd target configuration via the xconfig --startxonboot command. 4 | %ksappend repos/default.ks 5 | 6 | %ksappend common/common_no_payload.ks 7 | %ksappend payload/default_packages.ks 8 | 9 | xconfig --startxonboot 10 | 11 | %post 12 | 13 | systemctl get-default | grep graphical.target 14 | if [[ $? != 0 ]]; then 15 | echo "*** graphical.target should be set as the default systemd target" >> /root/RESULT 16 | fi 17 | 18 | %ksappend validation/success_if_result_empty.ks 19 | %end 20 | -------------------------------------------------------------------------------- /default-systemd-target-tui-graphical-provides.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # Test multi-user.target is set as the default systemd target if: 4 | # - the installation tuns in text mode 5 | # - the installation transaction contains a package which provides service(graphical-login) 6 | # Basically the text mode should override the provides. 7 | 8 | %ksappend repos/default.ks 9 | 10 | %ksappend common/common_no_payload.ks 11 | 12 | # run the installation in text mode 13 | text 14 | 15 | # the gdm package provides service(graphical-login) 16 | %packages 17 | gdm 18 | %end 19 | 20 | %post 21 | 22 | systemctl get-default | grep multi-user.target 23 | if [[ $? != 0 ]]; then 24 | echo "*** multi-user.target should be set for text installs even if package with service(graphical-login) is installed" >> /root/RESULT 25 | fi 26 | 27 | %ksappend validation/success_if_result_empty.ks 28 | %end 29 | -------------------------------------------------------------------------------- /default-systemd-target-tui.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # Test multi-user.target should be set by default as the default systemd target when: 4 | # - the installation runs in text mode 5 | # - no package providing service(graphical-login) is installed 6 | 7 | %ksappend repos/default.ks 8 | 9 | %ksappend common/common_no_payload.ks 10 | %ksappend payload/default_packages.ks 11 | 12 | # run the installation in text mode 13 | text 14 | 15 | %post 16 | 17 | systemctl get-default | grep multi-user.target 18 | if [[ $? != 0 ]]; then 19 | echo "*** multi-user.target should be set as the default systemd target for text mode installations" >> /root/RESULT 20 | fi 21 | 22 | %ksappend validation/success_if_result_empty.ks 23 | %end 24 | -------------------------------------------------------------------------------- /default-systemd-target-vnc-graphical-provides.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # Test multi-user.target is set as the default systemd target if: 4 | # - the installation runs in VNC mode 5 | # - the installation transaction contains a package providing service(graphical-login) 6 | # Text mode overrides the provides & for this VNC installation is considered to be 7 | # similar to textmode, as while controlled remotely over VNC, the installation run 8 | # itself runs in text mode. 9 | 10 | %ksappend repos/default.ks 11 | 12 | %ksappend common/common_no_payload.ks 13 | 14 | # run the installation in VNC mode 15 | vnc 16 | 17 | # the gdm package provides service(graphical-login) 18 | %packages 19 | gdm 20 | %end 21 | 22 | %post 23 | 24 | systemctl get-default | grep multi-user.target 25 | if [[ $? != 0 ]]; then 26 | echo "*** multi-user.target should be set for VNC installs even is package with service(graphical-login) is installed" >> /root/RESULT 27 | fi 28 | 29 | %ksappend validation/success_if_result_empty.ks 30 | %end 31 | -------------------------------------------------------------------------------- /default-systemd-target-vnc.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # Test multi-user.target should be set by default as the default systemd target 4 | # for VNC installs. While controlled remotely over VNC the installation itslef runs 5 | # in text mode and should behave as such. 6 | 7 | %ksappend repos/default.ks 8 | 9 | %ksappend common/common_no_payload.ks 10 | %ksappend payload/default_packages.ks 11 | 12 | # run the installation in VNC mode 13 | vnc 14 | 15 | %post 16 | 17 | systemctl get-default | grep multi-user.target 18 | if [[ $? != 0 ]]; then 19 | echo "*** multi-user.target should be set as the default systemd target for VNC installs" >> /root/RESULT 20 | fi 21 | 22 | %ksappend validation/success_if_result_empty.ks 23 | %end 24 | -------------------------------------------------------------------------------- /deprecated-rhel9-part2.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all --initlabel 8 | autopart 9 | 10 | keyboard us 11 | lang en_US.UTF-8 12 | timezone --ntpservers ntp.example.com Europe/Prague 13 | rootpw testcase 14 | shutdown 15 | 16 | %packages 17 | %end 18 | 19 | %post --nochroot 20 | if ! $(grep -q "KickstartParseWarning: The option --ntpservers will be deprecated in future releases." /tmp/anaconda.log); then 21 | echo 'Deprecation warning is missing for timezone --ntpservers' > /mnt/sysroot/root/RESULT 22 | fi 23 | %end 24 | 25 | %post 26 | if ! $(ls -l /etc/localtime | grep -q "Europe/Prague"); then 27 | echo 'Command timezone ignored not deprecated options' > /root/RESULT 28 | fi 29 | 30 | # No error was written to /root/RESULT file, everything is OK 31 | if [[ ! -e /root/RESULT ]]; then 32 | echo SUCCESS > /root/RESULT 33 | fi 34 | %end 35 | -------------------------------------------------------------------------------- /disklabel-default.ks.in: -------------------------------------------------------------------------------- 1 | 2 | # Use defaults. 3 | %ksappend repos/default.ks 4 | %ksappend common/common_no_payload.ks 5 | %ksappend payload/default_packages.ks 6 | 7 | %post 8 | # Log the created partitioning. 9 | lsblk 10 | 11 | # Check the partition table. 12 | dev_info="$( parted /dev/vda print )" 13 | echo "${dev_info}" | grep "Partition Table: gpt" 14 | 15 | if [[ $? != 0 ]]; then 16 | echo "*** unexpected partition table:\n${dev_info}" >> /root/RESULT 17 | fi 18 | 19 | %ksappend validation/success_if_result_empty.ks 20 | %end 21 | -------------------------------------------------------------------------------- /disklabel-gpt.ks.in: -------------------------------------------------------------------------------- 1 | 2 | # Use defaults. 3 | %ksappend repos/default.ks 4 | %ksappend common/common_no_payload.ks 5 | %ksappend payload/default_packages.ks 6 | 7 | %post 8 | # Log the created partitioning. 9 | lsblk 10 | 11 | # Check the partition table. 12 | dev_info="$( parted /dev/vda print )" 13 | echo "${dev_info}" | grep "Partition Table: gpt" 14 | 15 | if [[ $? != 0 ]]; then 16 | echo "*** unexpected partition table:\n${dev_info}" >> /root/RESULT 17 | fi 18 | 19 | %ksappend validation/success_if_result_empty.ks 20 | %end 21 | -------------------------------------------------------------------------------- /disklabel-mbr.ks.in: -------------------------------------------------------------------------------- 1 | 2 | # Use defaults. 3 | %ksappend repos/default.ks 4 | %ksappend common/common_no_payload.ks 5 | %ksappend payload/default_packages.ks 6 | 7 | %post 8 | # Log the created partitioning. 9 | lsblk 10 | 11 | # Check the partition table. 12 | dev_info="$( parted /dev/vda print )" 13 | echo "${dev_info}" | grep "Partition Table: msdos" 14 | 15 | if [[ $? != 0 ]]; then 16 | echo "*** unexpected partition table:\n${dev_info}" >> /root/RESULT 17 | fi 18 | 19 | %ksappend validation/success_if_result_empty.ks 20 | %end 21 | -------------------------------------------------------------------------------- /dns.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2021 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Radek Vykydal 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="network dns" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /firewall-disable.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # Test that firewall can be properly disabled. 4 | %ksappend repos/default.ks 5 | 6 | %ksappend common/common_no_payload.ks 7 | %ksappend payload/default_packages.ks 8 | 9 | # disable firewall 10 | firewall --disable 11 | 12 | %post 13 | # firewalld package should be installed as long as the firewall command is present 14 | # in the input kickstart, regardless of its options 15 | rpm -q firewalld 16 | if [[ $? != 0 ]]; then 17 | echo '*** firewalld package should have been installed' >> /root/RESULT 18 | fi 19 | 20 | # The firewall --disable kickstart command gets translated into firewall-offline-cmd --disable, 21 | # which simply disables the firewalld systemd unit. So by checking if the unit is disabled, 22 | # we can check if the kickstart command works correctly. 23 | systemctl is-enabled firewalld 24 | if [[ $? -eq 0 ]]; then 25 | echo "*** firewalld.service should be disabled" >> /root/RESULT 26 | fi 27 | 28 | %ksappend validation/success_if_result_empty.ks 29 | %end 30 | -------------------------------------------------------------------------------- /firewall-use-system-defaults.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # Test that firewall can be properly configured to use 4 | # system defaults. This basically means avoiding any 5 | # firewall-offline-cmd --enable/--disable calls and 6 | # simply leaving default distro provided firewall 7 | # configuration in place. 8 | %ksappend repos/default.ks 9 | 10 | %ksappend common/common_no_payload.ks 11 | %ksappend payload/default_packages.ks 12 | 13 | # disable firewall 14 | firewall --use-system-defaults 15 | 16 | %post 17 | # firewalld package should be installed as long as the firewall command is present 18 | # in the input kickstart, regardless of its options 19 | rpm -q firewalld 20 | if [[ $? != 0 ]]; then 21 | echo '*** firewalld package should have been installed' >> /root/RESULT 22 | fi 23 | 24 | # On Fedora firewall is enabled by default. 25 | systemctl is-enabled firewall 26 | if [[ $? -eq 0 ]]; then 27 | echo "*** firewall should be enabled" >> /root/RESULT 28 | fi 29 | 30 | %ksappend validation/success_if_result_empty.ks 31 | %end 32 | -------------------------------------------------------------------------------- /fragments/platform/fedora_rawhide/payload/default_packages.ks: -------------------------------------------------------------------------------- 1 | # Default Fedora packages section (empty) 2 | %packages 3 | %end 4 | -------------------------------------------------------------------------------- /fragments/platform/fedora_rawhide/payload/unified_packages.ks: -------------------------------------------------------------------------------- 1 | # Fedora Rawhide unified ISO created by create_dvd script [1] should contain test-rpm rpm 2 | # [1]: https://github.com/rhinstaller/devel-tools/tree/main/modify_install_iso 3 | 4 | %packages 5 | test-rpm 6 | %end 7 | -------------------------------------------------------------------------------- /fragments/platform/fedora_rawhide/repos/default.ks: -------------------------------------------------------------------------------- 1 | # Default Fedora Rawhide repositories 2 | url --url @KSTEST_URL@ 3 | -------------------------------------------------------------------------------- /fragments/platform/fedora_rawhide/repos/https.ks: -------------------------------------------------------------------------------- 1 | # Default Fedora Rawhide repositories with https 2 | url --url=https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/$basearch/os/ 3 | -------------------------------------------------------------------------------- /fragments/platform/fedora_rawhide/repos/modular.ks: -------------------------------------------------------------------------------- 1 | # The Fedora rawhide repository with modules. 2 | # Install the repo, so DNF can use it in %post scripts. 3 | repo --name=modular --baseurl @KSTEST_MODULAR_URL@ --install --cost 0 4 | -------------------------------------------------------------------------------- /fragments/platform/fedora_rawhide/repos/unified-nfs.ks: -------------------------------------------------------------------------------- 1 | # Unified ISO for Rawhide served on NFS server 2 | nfs --server NFS_SERVER --dir NFS_DIR 3 | -------------------------------------------------------------------------------- /fragments/platform/fedora_rawhide/repos/unified.ks: -------------------------------------------------------------------------------- 1 | # Unified ISO for Rawhide served on http server 2 | url UNIFIED_ISO_URL_GOES_HERE 3 | -------------------------------------------------------------------------------- /fragments/platform/fedora_rawhide/section-data/hello-world.ks: -------------------------------------------------------------------------------- 1 | # Create a variable in the %pre section with a link to the archived repository of Hello Word. 2 | # The curl tool will download this archive and unpack it in the system. 3 | ADDON_SOURCE="https://github.com/rhinstaller/hello-world-anaconda-addon/archive/main.tar.gz" 4 | -------------------------------------------------------------------------------- /fragments/platform/fedora_rawhide/section-data/server-dvd-link.ks: -------------------------------------------------------------------------------- 1 | # Create a variable in the pre/post section with link to a Fedora rawhide server DVD. 2 | # The curl tool will download this ISO and it will be processed later in the section. 3 | #_LINK="http://ftp.tu-chemnitz.de/pub/linux/fedora/linux/development/rawhide/Server/x86_64/iso" 4 | REPO_URL=@KSTEST_URL@ 5 | _LINK=${REPO_URL%Everything/x86_64/os/}Server/x86_64/iso/ 6 | ISO_LOCATION="$(curl -L $_LINK | grep -Po "Fedora-Server-dvd-x86_64-.*?.iso" | head -n 1)" 7 | ISO_LOCATION="${_LINK}/${ISO_LOCATION}" 8 | 9 | echo $ISO_LOCATION 10 | -------------------------------------------------------------------------------- /fragments/platform/fedora_rawhide/section-data/unified-iso.ks: -------------------------------------------------------------------------------- 1 | # Create a variable in the pre/post section with link to a Rawhide unified ISO 2 | # The curl tool will download this ISO and it will be processed later in the section. 3 | ISO_LOCATION= 4 | -------------------------------------------------------------------------------- /fragments/platform/fedora_rawhide/storage/ostreecontainer_autopart.ks: -------------------------------------------------------------------------------- 1 | # Default storage configuration with lvm type enforced for Fedora 2 | zerombr 3 | clearpart --all 4 | autopart --type=lvm 5 | -------------------------------------------------------------------------------- /fragments/platform/fedora_rawhide/storage/ostreecontainer_autopart_encrypted.ks: -------------------------------------------------------------------------------- 1 | # Default storage configuration with LUKS and lvm type enforced 2 | zerombr 3 | clearpart --all 4 | autopart --encrypted --passphrase=passphrase --type=lvm 5 | -------------------------------------------------------------------------------- /fragments/platform/fedora_rawhide/timezone/ntp_disabled.ks: -------------------------------------------------------------------------------- 1 | # Set up the timezone. 2 | timezone --utc Europe/Prague 3 | 4 | # Disable NTP. 5 | timesource --ntp-disable 6 | -------------------------------------------------------------------------------- /fragments/platform/fedora_rawhide/timezone/ntp_enabled.ks: -------------------------------------------------------------------------------- 1 | # Set up the timezone. 2 | timezone --utc Europe/Prague 3 | 4 | # Enable NTP. 5 | timesource --ntp-server ntp.cesnet.cz 6 | -------------------------------------------------------------------------------- /fragments/platform/fedora_rawhide/validation/unified.ks: -------------------------------------------------------------------------------- 1 | # Validate installed packages on Fedora rawhide system. 2 | 3 | # Check that the test package was correctly installed. 4 | if ! rpm -q test-rpm ; then 5 | echo '*** test-rpm package was not installed!' >> /root/RESULT 6 | fi 7 | -------------------------------------------------------------------------------- /fragments/platform/rhel10/payload/default_packages.ks: -------------------------------------------------------------------------------- 1 | # Default RHEL10 packages section (empty) 2 | %packages 3 | %end 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel10/payload/python_crypt_packages.ks: -------------------------------------------------------------------------------- 1 | %packages 2 | python3 3 | %end 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel10/payload/unified_packages.ks: -------------------------------------------------------------------------------- 1 | # RHEL 10 packages section from unified DVD. 2 | # The unified DVD should contain under one link both BaseOS and AppStream so install AppStream specific package. 3 | 4 | %packages 5 | # Anaconda package is part of the AppStream repository. It is not contained in the BaseOS. 6 | anaconda 7 | %end 8 | -------------------------------------------------------------------------------- /fragments/platform/rhel10/repos/default.ks: -------------------------------------------------------------------------------- 1 | # Default RHEL10 repositories - BeseOS + AppStream or unified repo can be used 2 | url --url @KSTEST_URL@ 3 | repo --name=appstream --baseurl @KSTEST_MODULAR_URL@ 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel10/repos/unified-nfs.ks: -------------------------------------------------------------------------------- 1 | # Unified ISO for RHEL-10 served on NFS server 2 | nfs --server NFS_SERVER --dir NFS_DIR 3 | -------------------------------------------------------------------------------- /fragments/platform/rhel10/repos/unified.ks: -------------------------------------------------------------------------------- 1 | # Unified ISO for RHEL 10 served on http server 2 | # BaseOS and AppStream repositories should be loaded automatically from the unified repo 3 | url RHEL10_UNIFIED_REPO_URL_GOES_HERE 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel10/section-data/hello-world.ks: -------------------------------------------------------------------------------- 1 | # Create a variable in the %pre section with a link to the archived repository of Hello Word. 2 | # The curl tool will download this archive and unpack it in the system. 3 | ADDON_SOURCE="https://github.com/rhinstaller/hello-world-anaconda-addon/archive/main.tar.gz" 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel10/section-data/server-dvd-link.ks: -------------------------------------------------------------------------------- 1 | # Create a variable in the pre/post section with link to a RHEL DVD. 2 | # The curl tool will download this ISO and it will be processed later in the section. 3 | #_LINK= 4 | REPO_URL=@KSTEST_URL@ 5 | _LINK=${REPO_URL%os/}iso/ 6 | ISO_LOCATION="$(curl -L $_LINK | grep -Po "RHEL-10.*?-x86_64-dvd1.iso" | head -n 1)" 7 | ISO_LOCATION="${_LINK}/${ISO_LOCATION}" 8 | 9 | echo $ISO_LOCATION 10 | -------------------------------------------------------------------------------- /fragments/platform/rhel10/section-data/unified-iso.ks: -------------------------------------------------------------------------------- 1 | # Create a variable in the pre/post section with link to a RHEL-10 unified ISO 2 | # The curl tool will download this ISO and it will be processed later in the section. 3 | ISO_LOCATION= 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel10/timezone/ntp_disabled.ks: -------------------------------------------------------------------------------- 1 | # Set up the timezone. 2 | timezone --utc Europe/Prague 3 | 4 | # Disable NTP. 5 | timesource --ntp-disable 6 | -------------------------------------------------------------------------------- /fragments/platform/rhel10/timezone/ntp_enabled.ks: -------------------------------------------------------------------------------- 1 | # Set up the timezone. 2 | timezone --utc Europe/Prague 3 | 4 | # Enable NTP. 5 | timesource --ntp-server ntp.cesnet.cz 6 | -------------------------------------------------------------------------------- /fragments/platform/rhel10/validation/unified.ks: -------------------------------------------------------------------------------- 1 | # Validate installed packages on RHEL 10 system. 2 | 3 | # Check that the anaconda package was correctly installed. 4 | if ! rpm -q anaconda ; then 5 | echo '*** anaconda package was not installed!' >> /root/RESULT 6 | fi 7 | -------------------------------------------------------------------------------- /fragments/platform/rhel8/payload/default_packages.ks: -------------------------------------------------------------------------------- 1 | # Default RHEL8 packages section (empty) 2 | %packages 3 | %end 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel8/payload/packages_instlangs_1.ks: -------------------------------------------------------------------------------- 1 | # Only install the en_US locale 2 | %packages --instLangs=en_US 3 | %end 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel8/payload/packages_instlangs_2.ks: -------------------------------------------------------------------------------- 1 | # Install no locales 2 | %packages --instLangs= 3 | %end 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel8/payload/packages_instlangs_3.ks: -------------------------------------------------------------------------------- 1 | # Install a short list of languages 2 | # Use ones with translations in blivet to make them easy to find. 3 | # Add glibc-all-langpacks to install locale data separately from 4 | # lang --addsupport. 5 | %packages --instLangs=es:fr:it 6 | python3-blivet 7 | glibc-all-langpacks 8 | %end 9 | -------------------------------------------------------------------------------- /fragments/platform/rhel8/payload/packages_weakdeps.ks: -------------------------------------------------------------------------------- 1 | # Install gnupg2 and make sure the packages it recommends are skipped 2 | %packages --excludeWeakdeps 3 | gnupg2 4 | %end 5 | -------------------------------------------------------------------------------- /fragments/platform/rhel8/payload/python_crypt_packages.ks: -------------------------------------------------------------------------------- 1 | %packages 2 | python3 3 | %end 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel8/payload/unified_packages.ks: -------------------------------------------------------------------------------- 1 | # RHEL 8 packages section from unified DVD. 2 | # The unified DVD should contain under one link both BaseOS and AppStream so install AppStream specific package. 3 | 4 | %packages 5 | # Anaconda package is part of the AppStream repository. It is not contained in the BaseOS. 6 | anaconda 7 | %end 8 | -------------------------------------------------------------------------------- /fragments/platform/rhel8/repos/default.ks: -------------------------------------------------------------------------------- 1 | # Default RHEL8 repositories - BeseOS + AppStream or unified repo can be used 2 | url --url @KSTEST_URL@ 3 | repo --name=appstream --baseurl @KSTEST_MODULAR_URL@ 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel8/repos/unified-nfs.ks: -------------------------------------------------------------------------------- 1 | # Unified ISO for RHEL-8 served on NFS server 2 | nfs --server NFS_SERVER --dir NFS_DIR 3 | -------------------------------------------------------------------------------- /fragments/platform/rhel8/repos/unified.ks: -------------------------------------------------------------------------------- 1 | # Unified ISO for RHEL 8 served on http server 2 | # BaseOS and AppStream repositories should be loaded automatically from the unified repo 3 | url RHEL8_UNIFIED_REPO_URL_GOES_HERE 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel8/section-data/hello-world.ks: -------------------------------------------------------------------------------- 1 | # Create a variable in the %pre section with a link to the archived repository of Hello Word. 2 | # The curl tool will download this archive and unpack it in the system. 3 | ADDON_SOURCE="https://github.com/rhinstaller/hello-world-anaconda-addon/archive/rhel-8.tar.gz" 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel8/section-data/server-dvd-link.ks: -------------------------------------------------------------------------------- 1 | # Create a variable in the pre/post section with link to a RHEL DVD. 2 | # The curl tool will download this ISO and it will be processed later in the section. 3 | #_LINK= 4 | REPO_URL=@KSTEST_URL@ 5 | _LINK=${REPO_URL%os/}iso/ 6 | ISO_LOCATION="$(curl -L $_LINK | grep -Po "RHEL-8.*?-x86_64-dvd1.iso" | head -n 1)" 7 | ISO_LOCATION="${_LINK}/${ISO_LOCATION}" 8 | 9 | echo $ISO_LOCATION 10 | -------------------------------------------------------------------------------- /fragments/platform/rhel8/section-data/unified-iso.ks: -------------------------------------------------------------------------------- 1 | # Create a variable in the pre/post section with link to a RHEL-8 unified ISO 2 | # The curl tool will download this ISO and it will be processed later in the section. 3 | ISO_LOCATION= 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel8/storage/raid_biosboot.ks: -------------------------------------------------------------------------------- 1 | # biosboot partition not required as RHEL 8 uses MBR by default 2 | -------------------------------------------------------------------------------- /fragments/platform/rhel8/timezone/ntp_disabled.ks: -------------------------------------------------------------------------------- 1 | # Set up the timezone and disable NTP. 2 | timezone --utc --nontp Europe/Prague 3 | -------------------------------------------------------------------------------- /fragments/platform/rhel8/timezone/ntp_enabled.ks: -------------------------------------------------------------------------------- 1 | # Set up the timezone and enable NTP. 2 | timezone --utc --ntpservers=ntp.cesnet.cz Europe/Prague 3 | -------------------------------------------------------------------------------- /fragments/platform/rhel8/validation/unified.ks: -------------------------------------------------------------------------------- 1 | # Validate installed packages on RHEL 8 system. 2 | 3 | # Check that the anaconda package was correctly installed. 4 | if ! rpm -q anaconda ; then 5 | echo '*** anaconda package was not installed!' >> /root/RESULT 6 | fi 7 | -------------------------------------------------------------------------------- /fragments/platform/rhel9/payload/default_packages.ks: -------------------------------------------------------------------------------- 1 | # Default RHEL9 packages section (empty) 2 | %packages 3 | %end 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel9/payload/python_crypt_packages.ks: -------------------------------------------------------------------------------- 1 | %packages 2 | python3 3 | %end 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel9/payload/unified_packages.ks: -------------------------------------------------------------------------------- 1 | # RHEL 9 packages section from unified DVD. 2 | # The unified DVD should contain under one link both BaseOS and AppStream so install AppStream specific package. 3 | 4 | %packages 5 | # Anaconda package is part of the AppStream repository. It is not contained in the BaseOS. 6 | anaconda 7 | %end 8 | -------------------------------------------------------------------------------- /fragments/platform/rhel9/repos/default.ks: -------------------------------------------------------------------------------- 1 | # Default RHEL9 repositories - BeseOS + AppStream or unified repo can be used 2 | url --url @KSTEST_URL@ 3 | repo --name=appstream --baseurl @KSTEST_MODULAR_URL@ 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel9/repos/unified-nfs.ks: -------------------------------------------------------------------------------- 1 | # Unified ISO for RHEL-9 served on NFS server 2 | nfs --server NFS_SERVER --dir NFS_DIR 3 | -------------------------------------------------------------------------------- /fragments/platform/rhel9/repos/unified.ks: -------------------------------------------------------------------------------- 1 | # Unified ISO for RHEL 9 served on http server 2 | # BaseOS and AppStream repositories should be loaded automatically from the unified repo 3 | url RHEL9_UNIFIED_REPO_URL_GOES_HERE 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel9/section-data/hello-world.ks: -------------------------------------------------------------------------------- 1 | # Create a variable in the %pre section with a link to the archived repository of Hello Word. 2 | # The curl tool will download this archive and unpack it in the system. 3 | ADDON_SOURCE="https://github.com/rhinstaller/hello-world-anaconda-addon/archive/main.tar.gz" 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel9/section-data/server-dvd-link.ks: -------------------------------------------------------------------------------- 1 | # Create a variable in the pre/post section with link to a RHEL DVD. 2 | # The curl tool will download this ISO and it will be processed later in the section. 3 | #_LINK= 4 | REPO_URL=@KSTEST_URL@ 5 | _LINK=${REPO_URL%os/}iso/ 6 | ISO_LOCATION="$(curl -L $_LINK | grep -Po "RHEL-9.*?-x86_64-dvd1.iso" | head -n 1)" 7 | ISO_LOCATION="${_LINK}/${ISO_LOCATION}" 8 | 9 | echo $ISO_LOCATION 10 | -------------------------------------------------------------------------------- /fragments/platform/rhel9/section-data/unified-iso.ks: -------------------------------------------------------------------------------- 1 | # Create a variable in the pre/post section with link to a RHEL-9 unified ISO 2 | # The curl tool will download this ISO and it will be processed later in the section. 3 | ISO_LOCATION= 4 | -------------------------------------------------------------------------------- /fragments/platform/rhel9/storage/raid_biosboot.ks: -------------------------------------------------------------------------------- 1 | # biosboot partition not required as RHEL 9 uses MBR by default 2 | -------------------------------------------------------------------------------- /fragments/platform/rhel9/timezone/ntp_disabled.ks: -------------------------------------------------------------------------------- 1 | # Set up the timezone. 2 | timezone --utc Europe/Prague 3 | 4 | # Disable NTP. 5 | timesource --ntp-disable 6 | -------------------------------------------------------------------------------- /fragments/platform/rhel9/timezone/ntp_enabled.ks: -------------------------------------------------------------------------------- 1 | # Set up the timezone. 2 | timezone --utc Europe/Prague 3 | 4 | # Enable NTP. 5 | timesource --ntp-server ntp.cesnet.cz 6 | -------------------------------------------------------------------------------- /fragments/platform/rhel9/validation/unified.ks: -------------------------------------------------------------------------------- 1 | # Validate installed packages on RHEL 9 system. 2 | 3 | # Check that the anaconda package was correctly installed. 4 | if ! rpm -q anaconda ; then 5 | echo '*** anaconda package was not installed!' >> /root/RESULT 6 | fi 7 | -------------------------------------------------------------------------------- /fragments/shared/bootloader/default.ks: -------------------------------------------------------------------------------- 1 | # Default bootloader configuration 2 | bootloader --timeout=1 3 | -------------------------------------------------------------------------------- /fragments/shared/common/common.ks: -------------------------------------------------------------------------------- 1 | # Commands needed by most kickstart tests to run correctly 2 | shutdown 3 | -------------------------------------------------------------------------------- /fragments/shared/common/common_no_payload.ks: -------------------------------------------------------------------------------- 1 | ## common commands without payload configuration ## 2 | shutdown 3 | # network 4 | network --bootproto=dhcp 5 | # storage & bootloader 6 | bootloader --timeout=1 7 | zerombr 8 | clearpart --all 9 | autopart 10 | # l10n 11 | keyboard us 12 | lang en 13 | timezone America/New_York 14 | # user confguration 15 | rootpw testcase 16 | ## common commands without payload configuration - end ## 17 | -------------------------------------------------------------------------------- /fragments/shared/common/common_no_storage_and_payload.ks: -------------------------------------------------------------------------------- 1 | ## common commands without payload and storage configuration ## 2 | shutdown 3 | # network 4 | network --bootproto=dhcp 5 | # bootloader 6 | bootloader --timeout=1 7 | # l10n 8 | keyboard us 9 | lang en 10 | timezone America/New_York 11 | # user confguration 12 | rootpw testcase 13 | ## common commands without payload and storage configuration - end ## 14 | -------------------------------------------------------------------------------- /fragments/shared/l10n/default.ks: -------------------------------------------------------------------------------- 1 | # Default l10n configuration 2 | keyboard us 3 | lang en_US.UTF-8 4 | timezone America/New_York --utc 5 | -------------------------------------------------------------------------------- /fragments/shared/network/default.ks: -------------------------------------------------------------------------------- 1 | # Default network configuration 2 | network --bootproto=dhcp 3 | -------------------------------------------------------------------------------- /fragments/shared/payload/default_packages.ks: -------------------------------------------------------------------------------- 1 | # Default package selection 2 | %packages 3 | %end 4 | -------------------------------------------------------------------------------- /fragments/shared/payload/packages_instlangs_1.ks: -------------------------------------------------------------------------------- 1 | # Only install the en_US locale 2 | %packages --inst-langs=en_US 3 | %end 4 | -------------------------------------------------------------------------------- /fragments/shared/payload/packages_instlangs_2.ks: -------------------------------------------------------------------------------- 1 | # Install no locales 2 | %packages --inst-langs= 3 | %end 4 | -------------------------------------------------------------------------------- /fragments/shared/payload/packages_instlangs_3.ks: -------------------------------------------------------------------------------- 1 | # Install a short list of languages 2 | # Use ones with translations in blivet to make them easy to find. 3 | # Add glibc-all-langpacks to install locale data separately from 4 | # lang --addsupport. 5 | %packages --inst-langs=es:fr:it 6 | python3-blivet 7 | glibc-all-langpacks 8 | %end 9 | -------------------------------------------------------------------------------- /fragments/shared/payload/packages_weakdeps.ks: -------------------------------------------------------------------------------- 1 | # Install gnupg2 and make sure the packages it recommends are skipped 2 | %packages --exclude-weakdeps 3 | gnupg2 4 | %end 5 | -------------------------------------------------------------------------------- /fragments/shared/payload/python_crypt_packages.ks: -------------------------------------------------------------------------------- 1 | %packages 2 | python3 3 | python3-crypt-r 4 | %end 5 | -------------------------------------------------------------------------------- /fragments/shared/storage/default.ks: -------------------------------------------------------------------------------- 1 | # Default storage configuration 2 | zerombr 3 | clearpart --all 4 | autopart 5 | -------------------------------------------------------------------------------- /fragments/shared/storage/ostreecontainer_autopart.ks: -------------------------------------------------------------------------------- 1 | # Default storage configuration 2 | zerombr 3 | clearpart --all 4 | autopart 5 | -------------------------------------------------------------------------------- /fragments/shared/storage/ostreecontainer_autopart_encrypted.ks: -------------------------------------------------------------------------------- 1 | # Default storage configuration with LUKS 2 | zerombr 3 | clearpart --all 4 | autopart --encrypted --passphrase=passphrase 5 | -------------------------------------------------------------------------------- /fragments/shared/storage/raid_biosboot.ks: -------------------------------------------------------------------------------- 1 | # Required for GPT scheme 2 | part biosboot --fstype=biosboot --size=1 --ondisk=vda 3 | part biosboot --fstype=biosboot --size=1 --ondisk=vdb 4 | -------------------------------------------------------------------------------- /fragments/shared/users/default.ks: -------------------------------------------------------------------------------- 1 | # Default user configuration 2 | rootpw testcase 3 | -------------------------------------------------------------------------------- /fragments/shared/users/python3_check_root_locked.ks: -------------------------------------------------------------------------------- 1 | # check root account is locked 2 | %post --interpreter=/usr/bin/python3 3 | 4 | errors = [] 5 | 6 | # Test that the root password is what we expect it to be 7 | with open("/etc/shadow", "r") as f: 8 | for line in f: 9 | if line.startswith("root:"): 10 | shadow_fields = line.strip().split(":") 11 | break 12 | else: 13 | errors.append("Unable to find root password") 14 | 15 | if shadow_fields[1][0] != "!": 16 | error.append("Root password is not locked: %s" % shadow_fields[1]) 17 | 18 | # write errors, if any, to RESULT file 19 | if errors: 20 | with open("/root/RESULT", "wt") as result: 21 | for e in errors: 22 | result.write(e + "\n") 23 | %end 24 | 25 | -------------------------------------------------------------------------------- /fragments/shared/users/user.ks: -------------------------------------------------------------------------------- 1 | # Simple user configuration 2 | user --name=user1 --homedir=/home/user1 --password="user1_password" --plaintext 3 | -------------------------------------------------------------------------------- /fragments/shared/validation/success_if_result_empty.ks: -------------------------------------------------------------------------------- 1 | # Report success if no errors have been reported to /root/RESULT 2 | if [ ! -f /root/RESULT ] 3 | then 4 | # no result file (no errors) -> success 5 | echo SUCCESS > /root/RESULT 6 | else 7 | # some errors happened 8 | exit 1 9 | fi 10 | -------------------------------------------------------------------------------- /fragments/shared/validation/success_if_result_empty_standalone.ks: -------------------------------------------------------------------------------- 1 | # Report success if no errors have been reported to /root/RESULT 2 | %post 3 | if [ ! -f /root/RESULT ] 4 | then 5 | # no result file (no errors) -> success 6 | echo SUCCESS > /root/RESULT 7 | else 8 | # some errors happened 9 | exit 1 10 | fi 11 | %end 12 | -------------------------------------------------------------------------------- /groups-and-envs-1.ks.in: -------------------------------------------------------------------------------- 1 | # 2 | # Check that groups and an environment can both be installed. 3 | 4 | %ksappend repos/default.ks 5 | %ksappend common/common_no_payload.ks 6 | 7 | %packages 8 | @core 9 | @c-development 10 | @^cloud-server-environment 11 | %end 12 | 13 | %post 14 | # We don't have a way of determining if a group/env is installed or not. 15 | # These sentinel packages will have to do. 16 | rpm -q fedora-release-cloud 17 | if [[ $? != 0 ]]; then 18 | echo '*** cloud-server-environment was not installed' > /root/RESULT 19 | else 20 | rpm -q gcc 21 | if [[ $? != 0 ]]; then 22 | echo '*** c-development was not installed' > /root/RESULT 23 | else 24 | echo SUCCESS > /root/RESULT 25 | fi 26 | fi 27 | %end 28 | -------------------------------------------------------------------------------- /groups-and-envs-3.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # Check that default environment is installed correctly. 4 | 5 | %ksappend repos/default.ks 6 | %ksappend common/common_no_payload.ks 7 | 8 | %packages 9 | @container-management 10 | @core 11 | @domain-client 12 | @hardware-support 13 | @headless-management 14 | @server-product 15 | @standard 16 | %end 17 | 18 | %post 19 | rpm -q fedora-release-server 20 | if [ $? -eq 0 ]; then 21 | echo SUCCESS > /root/RESULT 22 | else 23 | echo '*** Fedora Server default environment was not installed' > /root/RESULT 24 | fi 25 | %end 26 | -------------------------------------------------------------------------------- /groups-ignoremissing.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # what we are testing there: 4 | # - that missing groups are ignored if --ignoremissing is used 5 | # - that such an installation finishes successfully 6 | 7 | %ksappend repos/default.ks 8 | %ksappend common/common_no_payload.ks 9 | 10 | %packages --ignoremissing 11 | @fake-group-name 12 | %end 13 | 14 | %post 15 | # If we made it this far, assume it's a success 16 | echo SUCCESS > /root/RESULT 17 | %end 18 | -------------------------------------------------------------------------------- /harddrive-iso-single.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | # This test is for testing the install from an harddrive ks command with ISO 4 | # using single disk (RHEL-35701). 5 | # 6 | # Server dvd is downloaded during the test execution. This test can be resource demanding! 7 | # 8 | %ksappend common/common_no_storage_and_payload.ks 9 | 10 | zerombr 11 | clearpart --all --initlabel --drives=/dev/vda 12 | autopart 13 | 14 | harddrive --partition=/dev/vda1 --dir=/ 15 | 16 | %ksappend payload/default_packages.ks 17 | 18 | %pre 19 | # Include helpful functions. 20 | @KSINCLUDE@ pre-lib-harddrive.sh 21 | 22 | # This will add ISO_LOCATION with link to an ISO 23 | %ksappend section-data/server-dvd-link.ks 24 | 25 | # Where we want to download the ISO? 26 | DISK="/dev/vda" 27 | 28 | # Prepare storage for the source 29 | format_single_partition "${DISK}" 12GiB 30 | 31 | # Download and mount the ISO. 32 | prepare_iso "${ISO_LOCATION}" "${DISK}1" 33 | %end 34 | 35 | %post 36 | %ksappend validation/success_if_result_empty.ks 37 | %end 38 | -------------------------------------------------------------------------------- /hmc.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | # This test is for testing the install method hmc. 4 | # 5 | # This install method can be used only on s390x with SE/HMC, so to be able 6 | # to test it, we use fake scripts, that will mount DVD the usual way instead. 7 | # This test requires a full DVD ISO, so it is marked as a known failure. 8 | 9 | # Enable hmc in a kickstart file or use inst.repo=hmc. 10 | hmc 11 | 12 | network --bootproto=dhcp 13 | 14 | bootloader --timeout=1 15 | zerombr 16 | clearpart --all --initlabel 17 | autopart 18 | 19 | keyboard us 20 | lang en 21 | timezone America/New_York 22 | rootpw qweqwe 23 | shutdown 24 | 25 | %packages 26 | @core 27 | %end 28 | 29 | %pre 30 | 31 | # Create the fake /usr/sbin/lshmc 32 | cat > /usr/sbin/lshmc <<__EOT__ 33 | #!/bin/bash 34 | # This is a fake script for testing HMC. 35 | exit 0 36 | __EOT__ 37 | 38 | chmod +x /usr/sbin/lshmc 39 | 40 | # Create the fake /usr/bin/hmcdrvfs $repodir 41 | cat > /usr/bin/hmcdrvfs <<__EOT__ 42 | #!/bin/bash 43 | # This is a fake script for testing HMC. 44 | mount /dev/cdrom \$1 45 | exit 0 46 | __EOT__ 47 | 48 | chmod +x /usr/bin/hmcdrvfs 49 | 50 | %end 51 | 52 | %post 53 | echo SUCCESS > /root/RESULT 54 | %end 55 | -------------------------------------------------------------------------------- /hostname-bootopts.ks.in: -------------------------------------------------------------------------------- 1 | # rhbz#1441337 2 | %ksappend repos/default.ks 3 | 4 | bootloader --timeout=1 5 | zerombr 6 | clearpart --all 7 | autopart 8 | 9 | keyboard us 10 | lang en 11 | timezone America/New_York 12 | rootpw qweqwe 13 | shutdown 14 | 15 | %packages 16 | %end 17 | 18 | %post 19 | 20 | @KSINCLUDE@ post-lib-network.sh 21 | 22 | check_hostname testhostname.example.com 23 | 24 | # No error was written to /root/RESULT file, everything is OK 25 | if [[ ! -e /root/RESULT ]]; then 26 | echo SUCCESS > /root/RESULT 27 | fi 28 | %end 29 | -------------------------------------------------------------------------------- /hostname.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | network --bootproto=dhcp 3 | # Set hostname for testing 4 | network --hostname=testhostname.example.com 5 | 6 | bootloader --timeout=1 7 | zerombr 8 | clearpart --all 9 | autopart 10 | 11 | keyboard us 12 | lang en 13 | timezone America/New_York 14 | rootpw qweqwe 15 | shutdown 16 | 17 | %packages 18 | %end 19 | 20 | %post 21 | 22 | @KSINCLUDE@ post-lib-network.sh 23 | 24 | check_hostname testhostname.example.com 25 | 26 | # No error was written to /root/RESULT file, everything is OK 27 | if [[ ! -e /root/RESULT ]]; then 28 | echo SUCCESS > /root/RESULT 29 | fi 30 | %end 31 | -------------------------------------------------------------------------------- /hostname.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="network coverage" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /https-repo.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # Test that https:// repositories work as expected. Most tests run with http to 4 | # be able to squid-cache the downloads. 5 | 6 | # Use defaults. 7 | %ksappend repos/default.ks 8 | %ksappend common/common_no_payload.ks 9 | %ksappend payload/default_packages.ks 10 | 11 | %post 12 | # (1) No http:// Fedora repo sources 13 | if out=$(grep -r 'http://.*\.fedoraproject' /etc/yum.repos.d/); then 14 | echo "*** Found Fedora http repo: $out" > /root/RESULT 15 | exit 1 16 | fi 17 | 18 | # (2) Should have at least the default https:// repo source 19 | if ! grep -r 'https://.*\.fedoraproject' /etc/yum.repos.d/; then 20 | echo '*** Did not find https default Fedora repo' > /root/RESULT 21 | exit 1 22 | fi 23 | 24 | %ksappend validation/success_if_result_empty.ks 25 | 26 | %end 27 | -------------------------------------------------------------------------------- /ibft.ks.in: -------------------------------------------------------------------------------- 1 | 2 | %ksappend repos/default.ks 3 | 4 | bootloader --timeout=1 5 | zerombr 6 | clearpart --all 7 | autopart 8 | 9 | keyboard us 10 | lang en 11 | timezone America/New_York 12 | rootpw qweqwe 13 | shutdown 14 | 15 | %packages 16 | %end 17 | 18 | %post 19 | # No error was written to /root/RESULT file, everything is OK 20 | if [[ ! -e /root/RESULT ]]; then 21 | echo SUCCESS > /root/RESULT 22 | fi 23 | %end 24 | -------------------------------------------------------------------------------- /iscsi.ks.in: -------------------------------------------------------------------------------- 1 | 2 | %ksappend repos/default.ks 3 | 4 | iscsiname @KSTEST_ISCSINAME@ 5 | iscsi --ipaddr @KSTEST_ISCSI_IP@ --port @KSTEST_ISCSI_PORT@ --target @KSTEST_ISCSI_TARGET@ 6 | 7 | bootloader --timeout=1 8 | zerombr 9 | clearpart --all 10 | autopart 11 | 12 | # for non-offload iSCSI /boot can be on iSCSI only when using iBFT, 13 | # so put it to local disk 14 | #reqpart 15 | #part /boot --size=500 --ondisk=vda 16 | #part / --size=5000 --ondisk=vdb --grow 17 | #part swap --size=1000 --ondisk=vdb 18 | 19 | keyboard us 20 | lang en 21 | timezone America/New_York 22 | rootpw qweqwe 23 | shutdown 24 | 25 | %packages 26 | %end 27 | 28 | %post --nochroot 29 | 30 | SYSROOT=/mnt/sysroot 31 | 32 | function check_iscsi_session_nochroot() { 33 | local transport="$1" 34 | local target="$2" 35 | 36 | iscsiadm -m session | egrep -q '^'${transport}':.*'${target} 37 | if [[ $? -ne 0 ]]; then 38 | echo "*** Failed check: ${target} session using ${transport} exists" >> $SYSROOT/root/RESULT 39 | fi 40 | } 41 | 42 | check_iscsi_session_nochroot tcp @KSTEST_ISCSI_TARGET@ 43 | 44 | %end 45 | 46 | %post 47 | # No error was written to /root/RESULT file, everything is OK 48 | if [[ ! -e /root/RESULT ]]; then 49 | echo SUCCESS > /root/RESULT 50 | fi 51 | %end 52 | -------------------------------------------------------------------------------- /keyboard-bootopt-only.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # Test setting keyboard from boot options (no kickstart command) 3 | %ksappend repos/default.ks 4 | network --bootproto=dhcp 5 | 6 | bootloader --timeout=1 7 | zerombr 8 | clearpart --all --initlabel 9 | autopart 10 | 11 | lang cs_CZ.UTF-8 12 | timezone America/New_York --utc 13 | rootpw testcase 14 | shutdown 15 | 16 | %packages 17 | @core 18 | %end 19 | 20 | %post --nochroot 21 | 22 | @KSINCLUDE@ post-nochroot-lib-keyboard.sh 23 | 24 | check_current_vc_keymap fr yes 25 | check_current_x11_layouts fr yes 26 | 27 | %end 28 | 29 | %post 30 | 31 | @KSINCLUDE@ post-lib-keyboard.sh 32 | 33 | check_vc_keymap_config fr yes 34 | check_x11_layouts_config fr yes 35 | 36 | # No error was written to /root/RESULT file, everything is OK 37 | if [[ ! -e /root/RESULT ]]; then 38 | echo SUCCESS > /root/RESULT 39 | fi 40 | %end 41 | -------------------------------------------------------------------------------- /keyboard-convert-vc.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # Test that conversion from --vckeymap option to x layouts is performed correctly 3 | %ksappend repos/default.ks 4 | network --bootproto=dhcp 5 | 6 | bootloader --timeout=1 7 | zerombr 8 | clearpart --all --initlabel 9 | autopart 10 | 11 | keyboard --vckeymap=fr 12 | lang cs_CZ.UTF-8 13 | timezone America/New_York --utc 14 | rootpw testcase 15 | shutdown 16 | 17 | %packages 18 | @core 19 | %end 20 | 21 | %post --nochroot 22 | 23 | @KSINCLUDE@ post-nochroot-lib-keyboard.sh 24 | 25 | check_current_vc_keymap fr yes 26 | check_current_x11_layouts fr yes 27 | 28 | %end 29 | 30 | %post 31 | 32 | @KSINCLUDE@ post-lib-keyboard.sh 33 | 34 | check_vc_keymap_config fr yes 35 | check_x11_layouts_config fr yes 36 | 37 | # No error was written to /root/RESULT file, everything is OK 38 | if [[ ! -e /root/RESULT ]]; then 39 | echo SUCCESS > /root/RESULT 40 | fi 41 | %end 42 | -------------------------------------------------------------------------------- /keyboard-convert-x-override-bootopt.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # Test conversion from x layouts to vc keymap and overriding of boot option by 3 | # kickstart command 4 | %ksappend repos/default.ks 5 | network --bootproto=dhcp 6 | 7 | bootloader --timeout=1 8 | zerombr 9 | clearpart --all --initlabel 10 | autopart 11 | 12 | keyboard --xlayouts='cz (qwerty)' --switch=grp:alt_shift_toggle 13 | lang cs_CZ.UTF-8 14 | timezone America/New_York --utc 15 | rootpw testcase 16 | shutdown 17 | 18 | %packages 19 | @core 20 | %end 21 | 22 | %post --nochroot 23 | 24 | @KSINCLUDE@ post-nochroot-lib-keyboard.sh 25 | 26 | check_current_vc_keymap cz-qwerty yes 27 | check_current_x11_layouts cz yes 28 | check_current_x11_variants qwerty yes 29 | check_current_x11_options grp:alt_shift_toggle yes 30 | 31 | %end 32 | 33 | %post 34 | 35 | @KSINCLUDE@ post-lib-keyboard.sh 36 | 37 | check_vc_keymap_config cz-qwerty yes 38 | check_x11_layouts_config cz yes 39 | check_x11_variants_config qwerty yes 40 | check_x11_options_config grp:alt_shift_toggle yes 41 | 42 | # No error was written to /root/RESULT file, everything is OK 43 | if [[ ! -e /root/RESULT ]]; then 44 | echo SUCCESS > /root/RESULT 45 | fi 46 | %end 47 | -------------------------------------------------------------------------------- /keyboard-generic-argument.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # Test handling of keyboard command generid argument (conversion to vc keymap 3 | # and x layouts) 4 | %ksappend repos/default.ks 5 | network --bootproto=dhcp 6 | 7 | bootloader --timeout=1 8 | zerombr 9 | clearpart --all --initlabel 10 | autopart 11 | 12 | keyboard fr 13 | lang cs_CZ.UTF-8 14 | timezone America/New_York --utc 15 | rootpw testcase 16 | shutdown 17 | 18 | %packages 19 | @core 20 | %end 21 | 22 | %post --nochroot 23 | 24 | @KSINCLUDE@ post-nochroot-lib-keyboard.sh 25 | 26 | check_current_vc_keymap fr yes 27 | check_current_x11_layouts fr yes 28 | 29 | %end 30 | 31 | %post 32 | 33 | @KSINCLUDE@ post-lib-keyboard.sh 34 | 35 | check_vc_keymap_config fr yes 36 | check_x11_layouts_config fr yes 37 | 38 | # No error was written to /root/RESULT file, everything is OK 39 | if [[ ! -e /root/RESULT ]]; then 40 | echo SUCCESS > /root/RESULT 41 | fi 42 | %end 43 | -------------------------------------------------------------------------------- /keyboard.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all --initlabel 8 | autopart 9 | 10 | keyboard --xlayouts='cz (qwerty),us (euro)' --vckeymap=us --switch=grp:alt_shift_toggle 11 | lang cs_CZ.UTF-8 12 | timezone America/New_York --utc 13 | rootpw testcase 14 | shutdown 15 | 16 | %packages 17 | @core 18 | %end 19 | 20 | %post --nochroot 21 | 22 | @KSINCLUDE@ post-nochroot-lib-keyboard.sh 23 | 24 | check_current_vc_keymap us yes 25 | check_current_x11_layouts cz,us yes 26 | check_current_x11_variants qwerty,euro yes 27 | check_current_x11_options grp:alt_shift_toggle yes 28 | 29 | %end 30 | 31 | %post 32 | 33 | @KSINCLUDE@ post-lib-keyboard.sh 34 | 35 | check_vc_keymap_config us yes 36 | check_x11_layouts_config cz,us yes 37 | check_x11_variants_config qwerty,euro yes 38 | check_x11_options_config grp:alt_shift_toggle yes 39 | 40 | # No error was written to /root/RESULT file, everything is OK 41 | if [[ ! -e /root/RESULT ]]; then 42 | echo SUCCESS > /root/RESULT 43 | fi 44 | %end 45 | -------------------------------------------------------------------------------- /ks-include-post.ks: -------------------------------------------------------------------------------- 1 | %post 2 | # If this is being run, it's a success 3 | echo SUCCESS > /root/RESULT 4 | %end 5 | -------------------------------------------------------------------------------- /ks-include.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | network --bootproto=dhcp 3 | 4 | bootloader --timeout=1 5 | zerombr 6 | clearpart --all 7 | autopart 8 | 9 | keyboard us 10 | lang en 11 | timezone America/New_York 12 | rootpw qweqwe 13 | shutdown 14 | 15 | %packages 16 | %end 17 | 18 | # Include a kickstart that contains %post 19 | %include KS-TEST-INCLUDE 20 | -------------------------------------------------------------------------------- /lang.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all --initlabel 8 | autopart 9 | 10 | keyboard us 11 | lang cs_CZ.UTF-8 --addsupport=ru_RU 12 | timezone America/New_York --utc 13 | rootpw testcase 14 | shutdown 15 | 16 | %packages 17 | @core 18 | %end 19 | 20 | %post 21 | LANG="cs_CZ.UTF-8" 22 | 23 | INSTLANG=`cat /etc/locale.conf | awk -F\" '{ print $2 }'` 24 | 25 | if [[ "$INSTLANG" != "$LANG" ]]; then 26 | echo '*** specified language was not set' >> /root/RESULT 27 | fi 28 | 29 | # Check that the langpacks metapackages were installed 30 | if ! rpm -q langpacks-cs langpacks-ru ; then 31 | echo '*** langpacks packages were not installed' >> /root/RESULT 32 | fi 33 | 34 | if [[ ! -e /root/RESULT ]]; then 35 | echo SUCCESS > /root/RESULT 36 | fi 37 | %end 38 | -------------------------------------------------------------------------------- /lang.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="language i18n coverage" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /liveimg.ks.in: -------------------------------------------------------------------------------- 1 | liveimg --url=@KSTEST_LIVEIMG_URL@ --checksum=@KSTEST_LIVEIMG_CHECKSUM@ 2 | 3 | network --bootproto=dhcp 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | 8 | clearpart --all --initlabel 9 | autopart 10 | 11 | keyboard us 12 | lang en 13 | timezone America/New_York 14 | 15 | rootpw qweqwe 16 | shutdown 17 | 18 | %post 19 | if [[ ! -e /etc/passwd ]]; then 20 | echo "*** liveimg installation failed ***" > /root/RESULT 21 | fi 22 | 23 | # Final check 24 | if [[ ! -e /root/RESULT ]]; then 25 | echo SUCCESS > /root/RESULT 26 | fi 27 | %end 28 | -------------------------------------------------------------------------------- /log-util-check.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | #test name: efi-log 3 | %ksappend repos/default.ks 4 | 5 | %ksappend common/common_no_payload.ks 6 | 7 | %packages 8 | @core 9 | %end 10 | 11 | %post --nochroot 12 | 13 | @KSINCLUDE@ log-util-tests.sh 14 | 15 | check_log_util_exist 16 | check_log_util_runs 17 | check_log_util_produces_log_archive 18 | 19 | %end 20 | 21 | # No error was written to /root/RESULT file, everything is OK 22 | %ksappend validation/success_if_result_empty_standalone.ks 23 | 24 | -------------------------------------------------------------------------------- /log-util-check.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2024 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Paweł Poławski 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="logs" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /log-util-tests.sh: -------------------------------------------------------------------------------- 1 | SYSROOT=/mnt/sysroot 2 | RESULT_FILE=${SYSROOT}/root/RESULT 3 | 4 | # Check if log util can be called 5 | function check_log_util_exist() { 6 | if [ ! -f /usr/libexec/anaconda/log-capture ]; then 7 | echo "*** log-capture util does not exist" >> ${RESULT_FILE} 8 | fi 9 | } 10 | 11 | # Check if log utils runs without failure 12 | function check_log_util_runs() { 13 | local exit_code=0 14 | local ret_code=0 15 | 16 | # Trigger the log util 17 | /usr/libexec/anaconda/log-capture 18 | ret_code=$? 19 | 20 | if [[ ${ret_code} -ne ${exit_code} ]]; then 21 | echo "*** log-capture util failed with code: ${ret_code}" >> ${RESULT_FILE} 22 | fi 23 | } 24 | 25 | # Check if log utils produces log tarbal 26 | function check_log_util_produces_log_archive() { 27 | # Trigger the log util 28 | /usr/libexec/anaconda/log-capture 29 | 30 | if [ ! -f /tmp/log-capture.tar.bz2 ]; then 31 | echo "*** log-capture util does not produced log archive" >> ${RESULT_FILE} 32 | fi 33 | } 34 | -------------------------------------------------------------------------------- /lvm-1.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="lvm storage coverage" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /lvm-2.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="lvm storage" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /lvm-luks-3.ks.in: -------------------------------------------------------------------------------- 1 | 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all --initlabel 8 | 9 | # Test LUKS 2 with pbkdf2 and the --pbkdf-time option. 10 | 11 | reqpart 12 | part /boot --fstype="ext4" --size=1024 13 | part pv.1 --fstype="lvmpv" --size=8915 14 | 15 | volgroup fedora pv.1 16 | 17 | logvol / --name=root --vgname=fedora --fstype="ext4" --grow --size=1024 --encrypted --passphrase="passphrase" --luks-version=luks2 --pbkdf=pbkdf2 --pbkdf-time=10 18 | logvol swap --name=swap --vgname=fedora --fstype="swap" --size=1023 19 | 20 | keyboard us 21 | lang en 22 | timezone America/New_York 23 | rootpw qweqwe 24 | shutdown 25 | 26 | %packages 27 | %end 28 | 29 | %post 30 | 31 | # Set the crypted device. 32 | crypted="/dev/mapper/fedora-root" 33 | 34 | # Check the PBKDF of the LUKS device. 35 | result="$(cryptsetup luksDump ${crypted} | awk '{ if ($1 == "PBKDF:") print $2; }' )" 36 | 37 | if [[ "$result" != "pbkdf2" ]] ; then 38 | echo "*** unexpected PBKDF for ${crypted}: ${result}" >> /root/RESULT 39 | fi 40 | 41 | # The test was successful. 42 | if [ ! -e /root/RESULT ]; then 43 | echo SUCCESS > /root/RESULT 44 | fi 45 | 46 | %end 47 | -------------------------------------------------------------------------------- /lvm-thinp-2.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="lvm storage" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /module-ignoremissing.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # what we are testing there: 4 | # - that missing modules are ignored if --ignoremissing is used 5 | # - that such an installation finishes successfully 6 | 7 | %ksappend repos/default.ks 8 | %ksappend common/common_no_payload.ks 9 | 10 | %packages --ignoremissing 11 | @fake-module:fakestream/fakeprofile 12 | %end 13 | 14 | %post 15 | # If we made it this far, assume it's a success 16 | echo SUCCESS > /root/RESULT 17 | %end 18 | -------------------------------------------------------------------------------- /network-bootopts-noautodefault.ks.in: -------------------------------------------------------------------------------- 1 | #Test option to disable default autoconnections 2 | 3 | # Use defaults, but no network that could activate the other device 4 | # because of device --link 5 | %ksappend common/common.ks 6 | %ksappend repos/default.ks 7 | %ksappend l10n/default.ks 8 | %ksappend users/default.ks 9 | %ksappend storage/default.ks 10 | %ksappend payload/default_packages.ks 11 | 12 | %post 13 | 14 | @KSINCLUDE@ post-lib-network.sh 15 | 16 | check_device_connected @KSTEST_NETDEV1@ yes 17 | check_device_connected @KSTEST_NETDEV2@ no 18 | 19 | %ksappend validation/success_if_result_empty.ks 20 | %end 21 | 22 | -------------------------------------------------------------------------------- /network-bootopts-static-legacy-httpks.ks.in: -------------------------------------------------------------------------------- 1 | # Testing legacy boot options (rhel6). Works on RHEL 7, doesn't work on Fedora 26 2 | %ksappend repos/default.ks 3 | 4 | # We need a device with dns configured for repo 5 | network --device=@KSTEST_NETDEV2@ --bootproto dhcp 6 | 7 | bootloader --timeout=1 8 | zerombr 9 | clearpart --all 10 | autopart 11 | 12 | keyboard us 13 | lang en 14 | timezone America/New_York 15 | rootpw qweqwe 16 | shutdown 17 | 18 | %packages 19 | %end 20 | 21 | %post --nochroot 22 | 23 | @KSINCLUDE@ post-nochroot-lib-network.sh 24 | 25 | check_gui_configurations @KSTEST_NETDEV1@ @KSTEST_NETDEV2@ 26 | 27 | %end 28 | 29 | %post 30 | 31 | @KSINCLUDE@ post-lib-network.sh 32 | 33 | check_device_connected @KSTEST_NETDEV1@ yes 34 | check_device_config_value @KSTEST_NETDEV1@ IPADDR @KSTEST_STATIC_IP@ ipv4 address1 @KSTEST_STATIC_IP@/24,@KSTEST_STATIC_GATEWAY@ 35 | check_device_ipv4_address @KSTEST_NETDEV1@ @KSTEST_STATIC_IP@ 36 | check_device_connected @KSTEST_NETDEV2@ yes 37 | 38 | # No error was written to /root/RESULT file, everything is OK 39 | if [[ ! -e /root/RESULT ]]; then 40 | echo SUCCESS > /root/RESULT 41 | fi 42 | %end 43 | -------------------------------------------------------------------------------- /network-device-bootif-httpks.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | 3 | network --device=bootif --bootproto=dhcp --ipv6=2001:cafe:cafe::1/64 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all 8 | autopart 9 | 10 | keyboard us 11 | lang en 12 | timezone America/New_York 13 | rootpw qweqwe 14 | shutdown 15 | 16 | %packages 17 | %end 18 | 19 | %post 20 | 21 | @KSINCLUDE@ post-lib-network.sh 22 | 23 | check_device_connected @KSTEST_NETDEV1@ yes 24 | check_device_connected @KSTEST_NETDEV2@ yes 25 | check_device_config_value @KSTEST_NETDEV2@ IPV6ADDR 2001:cafe:cafe::1/64 ipv6 address1 2001:cafe:cafe::1/64 26 | 27 | # No error was written to /root/RESULT file, everything is OK 28 | if [[ ! -e /root/RESULT ]]; then 29 | echo SUCCESS > /root/RESULT 30 | fi 31 | %end 32 | -------------------------------------------------------------------------------- /network-device-default-httpks.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | 3 | network --bootproto=dhcp --ipv6=2001:cafe:cafe::1/64 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all 8 | autopart 9 | 10 | keyboard us 11 | lang en 12 | timezone America/New_York 13 | rootpw qweqwe 14 | shutdown 15 | 16 | %packages 17 | %end 18 | 19 | %post --nochroot 20 | 21 | @KSINCLUDE@ post-nochroot-lib-network.sh 22 | 23 | check_gui_configurations @KSTEST_NETDEV1@ 24 | 25 | %end 26 | 27 | %post 28 | 29 | @KSINCLUDE@ post-lib-network.sh 30 | 31 | check_device_config_value @KSTEST_NETDEV1@ IPV6ADDR 2001:cafe:cafe::1/64 ipv6 address1 2001:cafe:cafe::1/64 32 | 33 | # No error was written to /root/RESULT file, everything is OK 34 | if [[ ! -e /root/RESULT ]]; then 35 | echo SUCCESS > /root/RESULT 36 | fi 37 | %end 38 | -------------------------------------------------------------------------------- /network-device-default-ksdevice-httpks.ks.in: -------------------------------------------------------------------------------- 1 | #NOTE: as this test is a "-httpks" the kickstart should be really applied 2 | # in initrafs (config files created by parse-kickstart). The code actually 3 | # ignores the command without --device specified (and no ksdevice set), 4 | # but it will be applied in anaconda. 5 | %ksappend repos/default.ks 6 | 7 | network --bootproto=dhcp --ipv6=2001:cafe:cafe::1/64 8 | 9 | bootloader --timeout=1 10 | zerombr 11 | clearpart --all 12 | autopart 13 | 14 | keyboard us 15 | lang en 16 | timezone America/New_York 17 | rootpw qweqwe 18 | shutdown 19 | 20 | %packages 21 | %end 22 | 23 | %post --nochroot 24 | 25 | @KSINCLUDE@ post-nochroot-lib-network.sh 26 | 27 | check_gui_configurations @KSTEST_NETDEV1@ @KSTEST_NETDEV2@ 28 | 29 | %end 30 | 31 | %post 32 | 33 | @KSINCLUDE@ post-lib-network.sh 34 | 35 | check_device_config_value @KSTEST_NETDEV2@ IPV6ADDR 2001:cafe:cafe::1/64 ipv6 address1 2001:cafe:cafe::1/64 36 | 37 | # No error was written to /root/RESULT file, everything is OK 38 | if [[ ! -e /root/RESULT ]]; then 39 | echo SUCCESS > /root/RESULT 40 | fi 41 | %end 42 | -------------------------------------------------------------------------------- /network-device-default-ksdevice-pre.ks.in: -------------------------------------------------------------------------------- 1 | #NOTE: as this test is a "-httpks" the kickstart should be really applied 2 | # in initrafs (config files created by parse-kickstart). The code actually 3 | # ignores the command without --device specified (and no ksdevice set), 4 | # but it will be applied in anaconda. 5 | %ksappend repos/default.ks 6 | 7 | %include /tmp/ksinclude 8 | %pre 9 | echo "network --ipv6=2001:cafe:cafe::1/64" >> /tmp/ksinclude 10 | %end 11 | 12 | bootloader --timeout=1 13 | zerombr 14 | clearpart --all 15 | autopart 16 | 17 | keyboard us 18 | lang en 19 | timezone America/New_York 20 | rootpw qweqwe 21 | shutdown 22 | 23 | %packages 24 | %end 25 | 26 | %post --nochroot 27 | 28 | @KSINCLUDE@ post-nochroot-lib-network.sh 29 | 30 | check_gui_configurations @KSTEST_NETDEV1@ @KSTEST_NETDEV2@ 31 | 32 | %end 33 | 34 | %post 35 | 36 | @KSINCLUDE@ post-lib-network.sh 37 | 38 | check_device_config_value @KSTEST_NETDEV2@ IPV6ADDR 2001:cafe:cafe::1/64 ipv6 address1 2001:cafe:cafe::1/64 39 | 40 | # No error was written to /root/RESULT file, everything is OK 41 | if [[ ! -e /root/RESULT ]]; then 42 | echo SUCCESS > /root/RESULT 43 | fi 44 | %end 45 | -------------------------------------------------------------------------------- /network-device-default-pre-hostname.ks.in: -------------------------------------------------------------------------------- 1 | # rhbz#1272274 2 | %ksappend repos/default.ks 3 | 4 | %include /tmp/ksinclude 5 | %pre 6 | echo "network --ipv6=2001:cafe:cafe::1" >> /tmp/ksinclude 7 | # Following command should not reconfigure default --device with defaults for network 8 | # device configuration (--ipv6=auto in this case). It should just configure the hostname. 9 | echo "network --hostname=dont.apply.to.default.device" >> /tmp/ksinclude 10 | %end 11 | 12 | 13 | bootloader --timeout=1 14 | zerombr 15 | clearpart --all 16 | autopart 17 | 18 | keyboard us 19 | lang en 20 | timezone America/New_York 21 | rootpw qweqwe 22 | shutdown 23 | 24 | %packages 25 | %end 26 | 27 | %post --nochroot 28 | 29 | @KSINCLUDE@ post-nochroot-lib-network.sh 30 | 31 | check_gui_configurations @KSTEST_NETDEV1@ 32 | 33 | %end 34 | 35 | %post 36 | 37 | @KSINCLUDE@ post-lib-network.sh 38 | 39 | check_device_config_value @KSTEST_NETDEV1@ IPV6_AUTOCONF no ipv6 method manual 40 | 41 | # No error was written to /root/RESULT file, everything is OK 42 | if [[ ! -e /root/RESULT ]]; then 43 | echo SUCCESS > /root/RESULT 44 | fi 45 | %end 46 | -------------------------------------------------------------------------------- /network-device-default.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | 3 | network --bootproto=dhcp --ipv6=2001:cafe:cafe::1/64 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all 8 | autopart 9 | 10 | keyboard us 11 | lang en 12 | timezone America/New_York 13 | rootpw qweqwe 14 | shutdown 15 | 16 | %packages 17 | %end 18 | 19 | %post --nochroot 20 | 21 | @KSINCLUDE@ post-nochroot-lib-network.sh 22 | 23 | check_gui_configurations @KSTEST_NETDEV1@ 24 | 25 | %end 26 | 27 | %post 28 | 29 | @KSINCLUDE@ post-lib-network.sh 30 | 31 | check_device_config_value @KSTEST_NETDEV1@ IPV6ADDR 2001:cafe:cafe::1/64 ipv6 address1 2001:cafe:cafe::1/64 32 | 33 | # No error was written to /root/RESULT file, everything is OK 34 | if [[ ! -e /root/RESULT ]]; then 35 | echo SUCCESS > /root/RESULT 36 | fi 37 | %end 38 | -------------------------------------------------------------------------------- /network-device-mac-httpks.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | 3 | network --bootproto=dhcp --device=52:54:00:12:34:57 4 | network --bootproto=dhcp --device=52:54:00:12:34:58 --activate 5 | 6 | bootloader --timeout=1 7 | zerombr 8 | clearpart --all 9 | autopart 10 | 11 | keyboard us 12 | lang en 13 | timezone America/New_York 14 | rootpw qweqwe 15 | shutdown 16 | 17 | %packages 18 | %end 19 | 20 | %post 21 | 22 | @KSINCLUDE@ post-lib-network.sh 23 | 24 | # --device= is used to specify the interface, not to bind the 25 | # connection to the MAC address 26 | check_device_config_value @KSTEST_NETDEV1@ HWADDR __NONE ethernet mac-address __NONE 27 | check_config_exists @KSTEST_NETDEV1@-1 no 28 | check_device_connected @KSTEST_NETDEV1@ yes 29 | 30 | check_device_config_value @KSTEST_NETDEV2@ HWADDR __NONE ethernet mac-address __NONE 31 | check_config_exists @KSTEST_NETDEV2@-1 no 32 | check_device_connected @KSTEST_NETDEV2@ yes 33 | 34 | # No error was written to /root/RESULT file, everything is OK 35 | if [[ ! -e /root/RESULT ]]; then 36 | echo SUCCESS > /root/RESULT 37 | fi 38 | %end 39 | -------------------------------------------------------------------------------- /network-device-mac-pre.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | 3 | %include /tmp/ksinclude 4 | %pre 5 | echo "network --bootproto=dhcp --device=52:54:00:12:34:59" >> /tmp/ksinclude 6 | echo "network --bootproto=dhcp --device=52:54:00:12:34:44 --activate" >> /tmp/ksinclude 7 | %end 8 | 9 | bootloader --timeout=1 10 | zerombr 11 | clearpart --all 12 | autopart 13 | 14 | keyboard us 15 | lang en 16 | timezone America/New_York 17 | rootpw qweqwe 18 | shutdown 19 | 20 | %packages 21 | %end 22 | 23 | %post 24 | 25 | @KSINCLUDE@ post-lib-network.sh 26 | 27 | # --device= is used to specify the interface, not to bind the 28 | # connection to the MAC address 29 | check_device_config_value @KSTEST_NETDEV1@ HWADDR __NONE ethernet mac-address __NONE 30 | check_config_exists @KSTEST_NETDEV1@-1 no 31 | check_device_connected @KSTEST_NETDEV1@ yes 32 | 33 | check_device_config_value @KSTEST_NETDEV2@ HWADDR __NONE ethernet mac-address __NONE 34 | check_config_exists @KSTEST_NETDEV2@-1 no 35 | check_device_connected @KSTEST_NETDEV2@ yes 36 | 37 | # No error was written to /root/RESULT file, everything is OK 38 | if [[ ! -e /root/RESULT ]]; then 39 | echo SUCCESS > /root/RESULT 40 | fi 41 | %end 42 | -------------------------------------------------------------------------------- /network-device-names.cfg: -------------------------------------------------------------------------------- 1 | # This file defines the expected network device names. 2 | # The naming scheme used in the testing VM (slot vs path based) can depend on 3 | # what os detects the virt-install based on the volume id of the installer boot 4 | # iso. 5 | 6 | NETDEV_PREFIX="enp" 7 | NETDEV_SUFFIX="s0" 8 | export KSTEST_NETDEV1=${NETDEV_PREFIX}1${NETDEV_SUFFIX} 9 | export KSTEST_NETDEV2=${NETDEV_PREFIX}2${NETDEV_SUFFIX} 10 | export KSTEST_NETDEV3=${NETDEV_PREFIX}3${NETDEV_SUFFIX} 11 | export KSTEST_NETDEV4=${NETDEV_PREFIX}4${NETDEV_SUFFIX} 12 | export KSTEST_NETDEV5=${NETDEV_PREFIX}5${NETDEV_SUFFIX} 13 | export KSTEST_NETDEV6=${NETDEV_PREFIX}6${NETDEV_SUFFIX} 14 | -------------------------------------------------------------------------------- /network-static-httpks.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | network --device=@KSTEST_NETDEV2@ --bootproto static --ip @KSTEST_STATIC_IP@ --netmask @KSTEST_STATIC_NETMASK@ --gateway @KSTEST_STATIC_GATEWAY@ --onboot=no 3 | 4 | bootloader --timeout=1 5 | zerombr 6 | clearpart --all 7 | autopart 8 | 9 | keyboard us 10 | lang en 11 | timezone America/New_York 12 | rootpw qweqwe 13 | shutdown 14 | 15 | %packages 16 | %end 17 | 18 | %post --nochroot 19 | 20 | @KSINCLUDE@ post-nochroot-lib-network.sh 21 | 22 | check_gui_configurations @KSTEST_NETDEV1@ @KSTEST_NETDEV2@ 23 | 24 | %end 25 | 26 | %post 27 | 28 | @KSINCLUDE@ post-lib-network.sh 29 | 30 | check_device_config_value @KSTEST_NETDEV2@ IPADDR @KSTEST_STATIC_IP@ ipv4 address1 @KSTEST_STATIC_IP@/24 31 | check_device_config_value @KSTEST_NETDEV2@ GATEWAY @KSTEST_STATIC_GATEWAY@ ipv4 gateway @KSTEST_STATIC_GATEWAY@ 32 | check_device_config_value @KSTEST_NETDEV2@ ONBOOT no connection autoconnect false 33 | check_device_connected @KSTEST_NETDEV1@ yes 34 | check_device_connected @KSTEST_NETDEV2@ yes 35 | check_device_ipv4_address @KSTEST_NETDEV2@ @KSTEST_STATIC_IP@ 36 | 37 | # No error was written to /root/RESULT file, everything is OK 38 | if [[ ! -e /root/RESULT ]]; then 39 | echo SUCCESS > /root/RESULT 40 | fi 41 | %end 42 | -------------------------------------------------------------------------------- /network-static-to-dhcp-pre-single.ks.in: -------------------------------------------------------------------------------- 1 | # rhbz#1432886 2 | %ksappend repos/default.ks 3 | %include /tmp/ksinclude 4 | %pre 5 | echo "network --device=@KSTEST_NETDEV1@ --bootproto dhcp --activate" >> /tmp/ksinclude 6 | %end 7 | 8 | 9 | bootloader --timeout=1 10 | zerombr 11 | clearpart --all 12 | autopart 13 | 14 | keyboard us 15 | lang en 16 | timezone America/New_York 17 | rootpw qweqwe 18 | shutdown 19 | 20 | %packages 21 | %end 22 | 23 | %post --nochroot 24 | 25 | @KSINCLUDE@ post-nochroot-lib-network.sh 26 | 27 | check_gui_configurations @KSTEST_NETDEV1@ 28 | 29 | %end 30 | 31 | %post 32 | 33 | @KSINCLUDE@ post-lib-network.sh 34 | 35 | check_device_connected @KSTEST_NETDEV1@ yes 36 | check_device_config_value @KSTEST_NETDEV1@ IPADDR __NONE ipv4 method auto 37 | check_device_config_value @KSTEST_NETDEV1@ PREFIX __NONE ipv4 method auto 38 | check_device_config_value @KSTEST_NETDEV1@ NETMASK __NONE ipv4 method auto 39 | check_device_config_value @KSTEST_NETDEV1@ GATEWAY __NONE ipv4 method auto 40 | check_device_connected @KSTEST_NETDEV1@ yes 41 | check_number_of_device_ipv4_addresses @KSTEST_NETDEV1@ 1 42 | 43 | # No error was written to /root/RESULT file, everything is OK 44 | if [[ ! -e /root/RESULT ]]; then 45 | echo SUCCESS > /root/RESULT 46 | fi 47 | %end 48 | -------------------------------------------------------------------------------- /network-static.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | network --device=@KSTEST_NETDEV2@ --bootproto static --ip @KSTEST_STATIC_IP@ --netmask @KSTEST_STATIC_NETMASK@ --gateway @KSTEST_STATIC_GATEWAY@ --onboot=no 3 | 4 | bootloader --timeout=1 5 | zerombr 6 | clearpart --all 7 | autopart 8 | 9 | keyboard us 10 | lang en 11 | timezone America/New_York 12 | rootpw qweqwe 13 | shutdown 14 | 15 | %packages 16 | %end 17 | 18 | %post --nochroot 19 | 20 | @KSINCLUDE@ post-nochroot-lib-network.sh 21 | 22 | check_gui_configurations @KSTEST_NETDEV1@ @KSTEST_NETDEV2@ 23 | 24 | %end 25 | 26 | %post 27 | 28 | @KSINCLUDE@ post-lib-network.sh 29 | 30 | check_device_config_value @KSTEST_NETDEV2@ IPADDR @KSTEST_STATIC_IP@ ipv4 address1 @KSTEST_STATIC_IP@/24 31 | check_device_config_value @KSTEST_NETDEV2@ GATEWAY @KSTEST_STATIC_GATEWAY@ ipv4 gateway @KSTEST_STATIC_GATEWAY@ 32 | check_device_config_value @KSTEST_NETDEV2@ ONBOOT no connection autoconnect false 33 | check_device_connected @KSTEST_NETDEV1@ yes 34 | check_device_connected @KSTEST_NETDEV2@ yes 35 | check_device_ipv4_address @KSTEST_NETDEV2@ @KSTEST_STATIC_IP@ 36 | 37 | # No error was written to /root/RESULT file, everything is OK 38 | if [[ ! -e /root/RESULT ]]; then 39 | echo SUCCESS > /root/RESULT 40 | fi 41 | %end 42 | -------------------------------------------------------------------------------- /nfs.ks.in: -------------------------------------------------------------------------------- 1 | nfs --server=@KSTEST_NFS_SERVER@ --dir=@KSTEST_NFS_PATH@ 2 | network --bootproto=dhcp 3 | 4 | bootloader --timeout=1 5 | zerombr 6 | clearpart --all 7 | autopart 8 | 9 | keyboard us 10 | lang en 11 | timezone America/New_York 12 | rootpw qweqwe 13 | shutdown 14 | 15 | %packages 16 | %end 17 | 18 | %post 19 | if [[ ! -e /root/RESULT ]]; then 20 | echo SUCCESS > /root/RESULT 21 | fi 22 | %end 23 | -------------------------------------------------------------------------------- /nosave-1.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | network --bootproto=dhcp 3 | 4 | bootloader --timeout=1 5 | zerombr 6 | clearpart --all --initlabel 7 | autopart 8 | 9 | keyboard us 10 | lang en 11 | timezone America/New_York 12 | rootpw qweqwe 13 | shutdown 14 | 15 | %packages 16 | %end 17 | 18 | %post 19 | echo SUCCESS > /root/RESULT 20 | %end 21 | -------------------------------------------------------------------------------- /nosave-2.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | network --bootproto=dhcp 3 | 4 | bootloader --timeout=1 5 | zerombr 6 | clearpart --all --initlabel 7 | autopart 8 | 9 | keyboard us 10 | lang en 11 | timezone America/New_York 12 | rootpw qweqwe 13 | shutdown 14 | 15 | %packages 16 | %end 17 | 18 | %post 19 | echo SUCCESS > /root/RESULT 20 | %end 21 | -------------------------------------------------------------------------------- /nosave-3.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | network --bootproto=dhcp 3 | 4 | bootloader --timeout=1 5 | zerombr 6 | clearpart --all --initlabel 7 | autopart 8 | 9 | keyboard us 10 | lang en 11 | timezone America/New_York 12 | rootpw qweqwe 13 | shutdown 14 | 15 | %packages 16 | %end 17 | 18 | %post 19 | echo SUCCESS > /root/RESULT 20 | %end 21 | -------------------------------------------------------------------------------- /ntp-nontp-without-chrony-gui.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | # test timezone in GUI mode with NTP disabled and no chrony 6 | %ksappend timezone/ntp_disabled.ks 7 | graphical 8 | 9 | bootloader --timeout=1 10 | zerombr 11 | clearpart --all --initlabel 12 | autopart 13 | 14 | keyboard us 15 | lang en_US.UTF-8 16 | rootpw testcase 17 | shutdown 18 | 19 | %packages 20 | -chrony 21 | %end 22 | 23 | %post 24 | if [ -e /usr/bin/chronyc ]; then 25 | echo '*** Chrony should not be installed but it is!' >> /root/RESULT 26 | fi 27 | 28 | if [ -e /etc/chrony.conf ]; then 29 | echo '*** Chrony configuration file is installed!' >> /root/RESULT 30 | fi 31 | 32 | if [ ! -e /root/RESULT ]; then 33 | echo SUCCESS > /root/RESULT 34 | fi 35 | %end 36 | -------------------------------------------------------------------------------- /ntp-nontp-without-chrony.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | # test timezone in text mode with NTP disabled and no chrony 6 | %ksappend timezone/ntp_disabled.ks 7 | text 8 | 9 | bootloader --timeout=1 10 | zerombr 11 | clearpart --all --initlabel 12 | autopart 13 | 14 | keyboard us 15 | lang en_US.UTF-8 16 | rootpw testcase 17 | shutdown 18 | 19 | %packages 20 | -chrony 21 | %end 22 | 23 | %post 24 | if [ -e /usr/bin/chronyc ]; then 25 | echo '*** Chrony should not be installed but it is!' >> /root/RESULT 26 | fi 27 | 28 | if [ -e /etc/chrony.conf ]; then 29 | echo '*** Chrony configuration file is installed!' >> /root/RESULT 30 | fi 31 | 32 | if [ ! -e /root/RESULT ]; then 33 | echo SUCCESS > /root/RESULT 34 | fi 35 | %end 36 | -------------------------------------------------------------------------------- /ntp-nontp-without-chrony.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="time" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /ntp-with-nontp-gui.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | # test timezone in GUI mode with NTP disabled 6 | %ksappend timezone/ntp_disabled.ks 7 | graphical 8 | 9 | bootloader --timeout=1 10 | zerombr 11 | clearpart --all --initlabel 12 | autopart 13 | 14 | keyboard us 15 | lang en_US.UTF-8 16 | rootpw testcase 17 | shutdown 18 | 19 | %ksappend payload/default_packages.ks 20 | 21 | %post 22 | if [ -e /usr/bin/chronyc ]; then 23 | echo '*** Chrony should not be installed but it is!' >> /root/RESULT 24 | fi 25 | 26 | if [ -e /etc/chrony.conf ]; then 27 | echo '*** Chrony configuration file is installed!' >> /root/RESULT 28 | fi 29 | 30 | if [ ! -e /root/RESULT ]; then 31 | echo SUCCESS > /root/RESULT 32 | fi 33 | %end 34 | -------------------------------------------------------------------------------- /ntp-with-nontp-gui.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="time" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /ntp-with-nontp.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | # test timezone in text mode with NTP disabled 6 | %ksappend timezone/ntp_disabled.ks 7 | text 8 | 9 | bootloader --timeout=1 10 | zerombr 11 | clearpart --all --initlabel 12 | autopart 13 | 14 | keyboard us 15 | lang en_US.UTF-8 16 | rootpw testcase 17 | shutdown 18 | 19 | %ksappend payload/default_packages.ks 20 | 21 | %post 22 | if [ -e /usr/bin/chronyc ]; then 23 | echo '*** Chrony should not be installed but it is!' >> /root/RESULT 24 | fi 25 | 26 | if [ -e /etc/chrony.conf ]; then 27 | echo '*** Chrony configuration file is installed!' >> /root/RESULT 28 | fi 29 | 30 | if [ ! -e /root/RESULT ]; then 31 | echo SUCCESS > /root/RESULT 32 | fi 33 | %end 34 | -------------------------------------------------------------------------------- /ntp-with-nontp.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="time" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /ntp-without-chrony-gui.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | # test timezone in GUI mode without chrony 6 | %ksappend timezone/ntp_enabled.ks 7 | graphical 8 | 9 | bootloader --timeout=1 10 | zerombr 11 | clearpart --all --initlabel 12 | autopart 13 | 14 | keyboard us 15 | lang en_US.UTF-8 16 | rootpw testcase 17 | shutdown 18 | 19 | %packages 20 | -chrony 21 | %end 22 | 23 | %post 24 | if [ -e /usr/bin/chronyc ]; then 25 | echo '*** Chrony should not be installed but it is!' >> /root/RESULT 26 | fi 27 | 28 | if [ ! -e /etc/chrony.conf ]; then 29 | echo '*** Chrony configuration file was not installed!' >> /root/RESULT 30 | fi 31 | 32 | if [ ! -e /root/RESULT ]; then 33 | echo SUCCESS > /root/RESULT 34 | fi 35 | %end 36 | -------------------------------------------------------------------------------- /ntp-without-chrony-gui.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="time" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /ntp-without-chrony.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | # test timezone in TUI mode without chrony 6 | %ksappend timezone/ntp_enabled.ks 7 | text 8 | 9 | bootloader --timeout=1 10 | zerombr 11 | clearpart --all --initlabel 12 | autopart 13 | 14 | keyboard us 15 | lang en_US.UTF-8 16 | rootpw testcase 17 | shutdown 18 | 19 | %packages 20 | -chrony 21 | %end 22 | 23 | %post 24 | if [ -e /usr/bin/chronyc ]; then 25 | echo '*** Chrony should not be installed but it is!' >> /root/RESULT 26 | fi 27 | 28 | if [ ! -e /etc/chrony.conf ]; then 29 | echo '*** Chrony configuration file was not installed!' >> /root/RESULT 30 | fi 31 | 32 | if [ ! -e /root/RESULT ]; then 33 | echo SUCCESS > /root/RESULT 34 | fi 35 | %end 36 | -------------------------------------------------------------------------------- /ntp-without-chrony.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="time" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /onboot-bootopts-pre.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | 3 | %include /tmp/ksinclude 4 | %pre 5 | echo "network --device=@KSTEST_NETDEV2@ --bootproto dhcp --onboot=no" >> /tmp/ksinclude 6 | %end 7 | 8 | bootloader --timeout=1 9 | zerombr 10 | clearpart --all 11 | autopart 12 | 13 | keyboard us 14 | lang en 15 | timezone America/New_York 16 | rootpw qweqwe 17 | shutdown 18 | 19 | %packages 20 | %end 21 | 22 | %post --nochroot 23 | 24 | @KSINCLUDE@ post-nochroot-lib-network.sh 25 | 26 | check_gui_configurations @KSTEST_NETDEV1@ @KSTEST_NETDEV2@ 27 | 28 | %end 29 | 30 | %post 31 | 32 | @KSINCLUDE@ post-lib-network.sh 33 | 34 | check_device_config_value @KSTEST_NETDEV1@ ONBOOT yes connection autoconnect __NONE 35 | check_device_config_value @KSTEST_NETDEV2@ ONBOOT no connection autoconnect false 36 | check_device_connected @KSTEST_NETDEV1@ yes 37 | check_device_connected @KSTEST_NETDEV2@ yes 38 | 39 | # No error was written to /root/RESULT file, everything is OK 40 | if [[ ! -e /root/RESULT ]]; then 41 | echo SUCCESS > /root/RESULT 42 | fi 43 | %end 44 | -------------------------------------------------------------------------------- /packages-and-groups-ignoremissing.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # what we are testing there: 4 | # - that multiple missing packages & groups (at the same time) are ignored 5 | # if --ignoremissing is used 6 | # - that regular packages and groups requested at the same time 7 | # are installed correctly 8 | # - that such an installation finishes successfully 9 | 10 | %ksappend repos/default.ks 11 | %ksappend common/common_no_payload.ks 12 | 13 | %packages --ignoremissing 14 | fake-package-name-1 15 | fake-package-name-2 16 | @fake-group-name-1 17 | @fake-group-name-2 18 | vim 19 | 20 | # Another group that is common for Fedora and RHEL could be @anaconda-tools 21 | # (checking eg presence of cryptsetup package). The number of packages would 22 | # grow from 432 to 702 though. 23 | @dial-up 24 | %end 25 | 26 | %post 27 | rpm -q vim-minimal 28 | if [[ $? != 0 ]]; then 29 | echo '*** vim package was not installed' >> /root/RESULT 30 | fi 31 | 32 | rpm -q ppp 33 | if [[ $? != 0 ]]; then 34 | echo '*** ppp should have been installed via the dial-up package group' >> /root/RESULT 35 | fi 36 | 37 | %ksappend validation/success_if_result_empty.ks 38 | 39 | %end 40 | -------------------------------------------------------------------------------- /packages-default.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # Check the %packages --default flag works. 4 | 5 | %ksappend repos/default.ks 6 | %ksappend common/common_no_payload.ks 7 | 8 | %packages --default 9 | %end 10 | 11 | %post 12 | 13 | # Check that there is any environment installed 14 | dnf group list --installed | egrep -q "Installed Environment Groups" 15 | if [ $? -eq 0 ]; then 16 | echo SUCCESS > /root/RESULT 17 | else 18 | echo '*** Failed check: there is any environment installed.' > /root/RESULT 19 | fi 20 | %end 21 | -------------------------------------------------------------------------------- /packages-ignoremissing.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # what we are testing there: 4 | # - that missing packages are ignored if --ignoremissing is used 5 | # - that such an installation finishes 6 | 7 | %ksappend repos/default.ks 8 | %ksappend common/common_no_payload.ks 9 | 10 | %packages --ignoremissing 11 | fake-package-name 12 | %end 13 | 14 | %post 15 | # If we made it this far, assume it's a success 16 | echo SUCCESS > /root/RESULT 17 | %end 18 | -------------------------------------------------------------------------------- /packages-instlangs-1.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # Check that only english locales are installed for 4 | # %packages --instlangs=en_US. 5 | 6 | %ksappend repos/default.ks 7 | %ksappend common/common_no_payload.ks 8 | 9 | %ksappend payload/packages_instlangs_1.ks 10 | 11 | %post 12 | # Make sure no non-english .mo files were installed 13 | molist="$(find /usr/share/locale \( -name 'en' -type d -prune \) -o \( -name 'en[@_]*' -type d -prune \) -o \( -name '*.mo' -print \) )" 14 | if [ -n "$molist" ]; then 15 | echo "*** non-en .mo files were installed: $molist" >> /root/RESULT 16 | fi 17 | 18 | # Check that the en_US locale was installed 19 | locale -a | grep -a -q '^en_US$' 20 | if [ $? != 0 ]; then 21 | echo "*** en_US was not installed" >> /root/RESULT 22 | fi 23 | 24 | # Check that the only locales available are the en_ ones, along with C (and 25 | # C.UTF-8) and POSIX. 26 | # Use grep -a to force text mode, since sometimes a character will end up in the 27 | # output that makes grep think it's binary 28 | other_locales="$(locale -a | egrep -a -v '^(POSIX|C(.*)?|en_.*)$')" 29 | if [ -n "$other_locales" ]; then 30 | echo "*** non-en locales were installed" >> /root/RESULT 31 | fi 32 | 33 | %ksappend validation/success_if_result_empty.ks 34 | 35 | %end 36 | -------------------------------------------------------------------------------- /packages-instlangs-2.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # Check that no locales get installed for 4 | # %packages --instlangs=. 5 | 6 | %ksappend repos/default.ks 7 | %ksappend common/common_no_payload.ks 8 | 9 | %ksappend payload/packages_instlangs_2.ks 10 | 11 | %post 12 | # Make sure no .mo files were installed 13 | molist="$(find /usr/share/locale -name '*.mo')" 14 | if [ -n "$molist" ]; then 15 | echo "*** .mo files were installed: $molist" >> /root/RESULT 16 | fi 17 | 18 | %ksappend validation/success_if_result_empty.ks 19 | 20 | %end 21 | -------------------------------------------------------------------------------- /packages-multilib.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # Run a multilib installation. 4 | 5 | %ksappend repos/default.ks 6 | %ksappend common/common_no_payload.ks 7 | 8 | %packages --multilib 9 | %end 10 | 11 | %post 12 | # Check the installed glibc packages. 13 | if [[ ! -e /usr/lib/libc.so.6 ]]; then 14 | echo "*** No 32-bit glibc package installed!" >> /root/RESULT 15 | rpm -q glibc >> /root/RESULT 16 | fi 17 | 18 | if [[ ! -e /usr/lib64/libc.so.6 ]]; then 19 | echo "*** No 64-bit glibc package installed!" >> /root/RESULT 20 | rpm -q glibc >> /root/RESULT 21 | fi 22 | 23 | # Check the DNF configuration. 24 | cat /etc/dnf/dnf.conf | grep -q multilib_policy=all 25 | 26 | if [[ $? != 0 ]]; then 27 | echo "*** multilib_policy=all is not set in /etc/dnf/dnf.conf: " >> /root/RESULT 28 | cat /etc/dnf/dnf.conf >> /root/RESULT 29 | fi 30 | 31 | %ksappend validation/success_if_result_empty.ks 32 | %end 33 | -------------------------------------------------------------------------------- /packages-weakdeps.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # 3 | # Check the --excludeWeakdeps flag works correctly. 4 | # Using this flag should effectively turn off weak 5 | # depondencies during the RPM installation transaction. 6 | 7 | %ksappend repos/default.ks 8 | %ksappend common/common_no_payload.ks 9 | 10 | %ksappend payload/packages_weakdeps.ks 11 | 12 | %post 13 | # Make sure the --recommends packages from gnupg2 are not installed 14 | if rpm -q pinentry ; then 15 | echo "pinentry was installed" >> /root/RESULT 16 | fi 17 | 18 | # Check that gnupg2's --recommends did not change unexpectedly 19 | if ! ( rpm -q --recommends gnupg2 | grep -q pinentry ) ; then 20 | echo "gnupg2 --recommends has changed, test needs to be updated" >> /root/RESULT 21 | fi 22 | 23 | %ksappend validation/success_if_result_empty.ks 24 | 25 | %end 26 | -------------------------------------------------------------------------------- /part-luks-3.ks.in: -------------------------------------------------------------------------------- 1 | 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all --initlabel 8 | 9 | # Test LUKS 2 with pbkdf2 and the --pbkdf-time option. 10 | 11 | reqpart 12 | part / --fstype="ext4" --size=7891 --encrypted --passphrase="passphrase" --luks-version=luks2 --pbkdf=pbkdf2 --pbkdf-time=10 13 | part /boot --fstype="ext4" --size=1024 14 | part swap --fstype="swap" --size=1024 15 | 16 | keyboard us 17 | lang en 18 | timezone America/New_York 19 | rootpw qweqwe 20 | shutdown 21 | 22 | %packages 23 | %end 24 | 25 | %post 26 | 27 | # Find the LUKS device. 28 | crypted="$(blkid --match-token TYPE="crypto_LUKS" --output device)" 29 | 30 | if [[ $? != 0 ]] ; then 31 | echo "*** couldn't find a LUKS device" > /root/RESULT 32 | exit 1 33 | fi 34 | 35 | # Check the PBKDF of the LUKS device. 36 | result="$(cryptsetup luksDump ${crypted} | awk '{ if ($1 == "PBKDF:") print $2; }' )" 37 | 38 | if [[ "$result" != "pbkdf2" ]] ; then 39 | echo "*** unexpected PBKDF for ${crypted}: ${result}" >> /root/RESULT 40 | fi 41 | 42 | # The test was successful. 43 | if [ ! -e /root/RESULT ]; then 44 | echo SUCCESS > /root/RESULT 45 | fi 46 | 47 | %end 48 | -------------------------------------------------------------------------------- /post-nochroot-lib-ui.sh: -------------------------------------------------------------------------------- 1 | # The library for nochroot post scripts of the UI kickstart tests. 2 | 3 | # Specify the result file. 4 | SYSROOT=/mnt/sysroot 5 | RESULT_FILE=${SYSROOT}/root/RESULT 6 | 7 | # Check that the current display mode is set to the expected value. 8 | function check_display_mode() { 9 | local expected_mode="$1" 10 | local display_mode 11 | 12 | display_mode="$(grep 'Display mode is set to ' /tmp/anaconda.log | cut -d \' -f2)" 13 | 14 | if [ "$display_mode" != "$expected_mode" ]; then 15 | echo "*** incorrect display mode (got $display_mode; expected $expected_mode)" >> ${RESULT_FILE} 16 | fi 17 | } 18 | 19 | # Check that the VNC server is running. 20 | function check_vnc_server_is_running() { 21 | grep -q "The VNC server is now running." /tmp/anaconda.log 22 | 23 | if [[ $? -ne 0 ]]; then 24 | echo "*** the VNC server is not running" >> ${RESULT_FILE} 25 | fi 26 | } 27 | 28 | # Check that the RDP server is running. 29 | function check_rdp_server_is_running() { 30 | grep -q "GNOME remote desktop is now running." /tmp/anaconda.log 31 | 32 | if [[ $? -ne 0 ]]; then 33 | echo "*** the RDP server is not running" >> ${RESULT_FILE} 34 | fi 35 | } 36 | -------------------------------------------------------------------------------- /pre-install.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="kickstart" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /preexisting-btrfs.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | # Use defaults. 4 | %ksappend repos/default.ks 5 | %ksappend common/common_no_payload.ks 6 | %ksappend payload/default_packages.ks 7 | 8 | # Report success if no errors have been reported to /root/RESULT 9 | %ksappend validation/success_if_result_empty_standalone.ks 10 | -------------------------------------------------------------------------------- /preexisting-btrfs.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhinstaller/kickstart-tests/5fa2d9562954de1dcf332f6cd0cfff1e4cdf045d/preexisting-btrfs.tar.xz -------------------------------------------------------------------------------- /proxy-cmdline.ks.in: -------------------------------------------------------------------------------- 1 | %ksappend repos/default.ks 2 | network --bootproto=dhcp 3 | 4 | bootloader --timeout=1 5 | zerombr 6 | clearpart --all 7 | autopart 8 | 9 | keyboard us 10 | lang en 11 | timezone America/New_York 12 | rootpw qweqwe 13 | shutdown 14 | 15 | # Just install @core 16 | %packages 17 | %end 18 | 19 | %post 20 | echo 'SUCCESS' > /root/RESULT 21 | %end 22 | -------------------------------------------------------------------------------- /raid-ddf.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhinstaller/kickstart-tests/5fa2d9562954de1dcf332f6cd0cfff1e4cdf045d/raid-ddf.tar.xz -------------------------------------------------------------------------------- /raid-luks-3.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | %ksappend repos/default.ks 4 | network --bootproto=dhcp 5 | 6 | bootloader --timeout=1 7 | clearpart --all --initlabel 8 | 9 | # Test LUKS 2 with pbkdf2 and the --pbkdf-time option. 10 | 11 | reqpart 12 | part /boot --fstype="ext4" --size=1024 13 | part swap --fstype="swap" --size=2048 14 | part raid.1 --fstype="mdmember" --ondisk=vda --size=6867 15 | part raid.2 --fstype="mdmember" --ondisk=vdb --size=6867 16 | 17 | 18 | raid / --device=root --fstype="ext4" --level=RAID1 --encrypted --passphrase="passphrase" --luks-version=luks2 --pbkdf=pbkdf2 --pbkdf-time=10 raid.1 raid.2 19 | 20 | keyboard us 21 | lang en_US.UTF-8 22 | timezone America/New_York --utc 23 | rootpw testcase 24 | shutdown 25 | 26 | %packages 27 | %end 28 | 29 | %post 30 | 31 | # Set the crypted device. 32 | crypted="/dev/md/root" 33 | 34 | # Check the PBKDF of the root device. 35 | result="$(cryptsetup luksDump ${crypted} | awk '{ if ($1 == "PBKDF:") print $2; }' )" 36 | 37 | if [[ "$result" != "pbkdf2" ]] ; then 38 | echo "*** unexpected PBKDF for ${crypted}: ${result}" >> /root/RESULT 39 | fi 40 | 41 | # The test was successful. 42 | if [ ! -e /root/RESULT ]; then 43 | echo SUCCESS > /root/RESULT 44 | fi 45 | 46 | %end 47 | -------------------------------------------------------------------------------- /reboot-initial-setup-tui.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | # Make sure that there is nothing else to configure. 4 | %ksappend users/user.ks 5 | %ksappend repos/default.ks 6 | %ksappend common/common_no_payload.ks 7 | 8 | # Reboot the installed system. 9 | reboot 10 | 11 | # Enable the initial setup. 12 | firstboot --enable 13 | 14 | %packages 15 | 16 | # Install the initial setup. 17 | initial-setup 18 | 19 | %end 20 | 21 | # Validate on the first boot. 22 | %ksappend validation/success_on_first_boot.ks 23 | 24 | %post 25 | 26 | # Remove EULA if any. 27 | rm /usr/share/redhat-release/EULA 28 | 29 | # Disable EULA for the initial setup. 30 | # FIXME: This is a temporary workaround for RHEL 9. 31 | cat > /etc/initial-setup/conf.d/90-no-eula.conf << EOF 32 | [License] 33 | eula = 34 | EOF 35 | 36 | # Create a script with the first boot test. 37 | # Print errors to stdout. 38 | cat > /usr/libexec/kickstart-test.sh << EOF 39 | 40 | journalctl | grep -q "Starting Initial Setup TUI" \ 41 | || echo "Failed to start Initial Setup TUI." 42 | 43 | journalctl | grep -q "Initial Setup finished successfully" \ 44 | || echo "Initial Setup has failed." 45 | 46 | journalctl -u initial-setup -g "Traceback" --quiet 47 | 48 | EOF 49 | 50 | %end 51 | -------------------------------------------------------------------------------- /reboot-uefi.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | # Use defaults. 4 | %ksappend repos/default.ks 5 | %ksappend common/common_no_payload.ks 6 | %ksappend payload/default_packages.ks 7 | 8 | # Reboot the installed system. 9 | reboot 10 | 11 | # Validate on the first boot. 12 | %ksappend validation/success_on_first_boot.ks 13 | 14 | # Set up the actual test. 15 | %post 16 | 17 | efibootmgr 18 | rc=$? 19 | 20 | if [ $rc -ne 0 ]; then 21 | echo "*** efibootmgr call failed." | tee -a /root/RESULT 22 | fi 23 | 24 | %end 25 | -------------------------------------------------------------------------------- /reboot.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | # Use defaults. 4 | %ksappend repos/default.ks 5 | %ksappend common/common_no_payload.ks 6 | %ksappend payload/default_packages.ks 7 | 8 | # Reboot the installed system. 9 | reboot 10 | 11 | # Validate on the first boot. 12 | %ksappend validation/success_on_first_boot.ks 13 | -------------------------------------------------------------------------------- /repo-addrepo.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | # This test will check the installation with addrepo kernel parameter functionality. 4 | # The inst.addrepo boot option will add additional software repository, 5 | # which will be used for the installation. 6 | # 7 | 8 | %ksappend common/common_no_payload.ks 9 | %ksappend repos/default.ks 10 | 11 | %packages 12 | mandatory-package-from-addon 13 | package-1 14 | %end 15 | 16 | %post 17 | 18 | rpm -q mandatory-package-from-addon 19 | if [[ $? != 0 ]]; then 20 | echo '*** mandatory-package-from-addon was not installed' >> /root/RESULT 21 | fi 22 | 23 | rpm -q package-1 24 | if [[ $? != 0 ]]; then 25 | echo '*** package-1 was not installed' >> /root/RESULT 26 | fi 27 | 28 | if [[ -e /etc/ADDON.repo ]]; then 29 | echo '*** ADDON.repo should not be installed to the system' >> /root/RESULT 30 | fi 31 | 32 | %ksappend validation/success_if_result_empty.ks 33 | %end 34 | -------------------------------------------------------------------------------- /repo-baseurl.ks.in: -------------------------------------------------------------------------------- 1 | 2 | ## Simple test for repo --baseurl. 3 | 4 | %ksappend common/common_no_payload.ks 5 | %ksappend payload/default_packages.ks 6 | 7 | # Specify the mandatory base repo, but keep it empty. 8 | url --url=EMPTY_REPO_URL 9 | 10 | # Everything should be provided by the additional repos. 11 | repo --name=test01 --baseurl=@KSTEST_URL@ 12 | 13 | %post 14 | %ksappend validation/success_if_result_empty.ks 15 | %end 16 | -------------------------------------------------------------------------------- /repo-metalink.ks.in: -------------------------------------------------------------------------------- 1 | 2 | ## Simple test for repo --metalink. 3 | 4 | %ksappend common/common_no_payload.ks 5 | %ksappend payload/default_packages.ks 6 | 7 | # Specify the mandatory base repo, but keep it empty. 8 | url --url=EMPTY_REPO_URL 9 | 10 | # Everything should be provided by the additional repos. 11 | repo --name=test01 --metalink=@KSTEST_METALINK@ 12 | 13 | %post 14 | %ksappend validation/success_if_result_empty.ks 15 | %end 16 | -------------------------------------------------------------------------------- /repo-mirrorlist.ks.in: -------------------------------------------------------------------------------- 1 | 2 | ## Simple test for repo --mirrorlist. 3 | 4 | %ksappend common/common_no_payload.ks 5 | %ksappend payload/default_packages.ks 6 | 7 | # Specify the mandatory base repo, but keep it empty. 8 | url --url=EMPTY_REPO_URL 9 | 10 | # Everything should be provided by the additional repos. 11 | repo --name=test01 --mirrorlist=@KSTEST_MIRRORLIST@ 12 | 13 | %post 14 | %ksappend validation/success_if_result_empty.ks 15 | %end 16 | -------------------------------------------------------------------------------- /reqpart.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="storage coverage" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /rootpw-basic.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="users coverage" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /rootpw-crypted.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2019 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Martin Kolman 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="users" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /rootpw-lock-no-password.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="users" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /rootpw-lock.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="users coverage" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /rpm-ostree-container-leavebootorder.ks.in: -------------------------------------------------------------------------------- 1 | # https://github.com/rhinstaller/anaconda/pull/5399 2 | # 3 | # Test that ostree container installation works with leavebootorder. 4 | # In this test bootupd should be able to do dualboot. For sanity 5 | # of this test just check if bootupd is invoked with the correct 6 | # arguments. 7 | # 8 | 9 | # Use the default settings. 10 | %ksappend common/common.ks 11 | 12 | # network 13 | network --bootproto=dhcp 14 | # l10n 15 | keyboard us 16 | lang en 17 | timezone America/New_York 18 | # user confguration 19 | rootpw testcase 20 | 21 | # On Fedora enforce lvm scheme (overriding btrfs default) 22 | %ksappend storage/ostreecontainer_autopart.ks 23 | 24 | # Test if UEFI entry is not created! 25 | bootloader --leavebootorder --timeout 1 26 | 27 | ostreecontainer --no-signature-verification --remote=test-remote --stateroot=test-stateroot --url=@KSTEST_OSTREECONTAINER_URL@ 28 | 29 | 30 | %post 31 | # check if efibootmgr don't have entry to boot from a disk 32 | efibootmgr | grep "HD(" 33 | if [ $? -eq 0 ]; then 34 | echo "EFI boot entry was created with leavebootorder: $(efibootmgr)" >> /root/RESULT 35 | fi 36 | 37 | %ksappend validation/success_if_result_empty.ks 38 | 39 | %end 40 | -------------------------------------------------------------------------------- /rpm-ostree-container-silverblue.ks.in: -------------------------------------------------------------------------------- 1 | # https://github.com/rhinstaller/anaconda/pull/4617 2 | 3 | # Test that ostreecontainer ks command works on Silverblue. 4 | # Tests only installation of the palyload. 5 | # Does not test that the installation is bootable. 6 | 7 | # Use the default settings. 8 | %ksappend common/common_no_payload.ks 9 | 10 | # Set up the RPM OSTree source. 11 | ostreecontainer --no-signature-verification --transport=registry --stateroot=fedora-silverblue --remote=fedora-silverblue --url=quay.io/fedora/fedora-silverblue:rawhide 12 | 13 | %post 14 | 15 | if ! ostree remote list | grep -q "fedora-silverblue"; then 16 | echo "Unexpected name fedora-silverblue in \"$(ostree remote list)\"" >> /root/RESULT 17 | fi 18 | 19 | # Check the url of the remote. 20 | url="$(ostree remote show-url fedora-silverblue)" 21 | 22 | if [ "${url}" != "quay.io/fedora/fedora-silverblue:rawhide" ]; then 23 | echo "Unexpected URL: ${url}" >> /root/RESULT 24 | fi 25 | 26 | if [ ! -e /root/RESULT ]; then 27 | echo SUCCESS > /root/RESULT 28 | fi 29 | 30 | # Write the result into logs. 31 | cat /root/RESULT 32 | %end 33 | -------------------------------------------------------------------------------- /rpm-ostree.ks.in: -------------------------------------------------------------------------------- 1 | 2 | # Use the default settings. 3 | %ksappend common/common_no_payload.ks 4 | 5 | # Set up the RPM OSTree source. 6 | ostreesetup --nogpg --osname=fedora-iot --remote=fedora-iot --url=https://kojipkgs.fedoraproject.org/compose/iot/repo/ --ref=fedora/rawhide/${basearch}/iot 7 | 8 | # Disable the bootloader (gh#667). 9 | bootloader --location=none 10 | 11 | %post 12 | # Check the name of the remote. 13 | name="$(ostree remote list)" 14 | 15 | if [ "${name}" != "fedora-iot" ]; then 16 | echo "Unexpected name: ${name}" >> /root/RESULT 17 | fi 18 | 19 | # Check the url of the remote. 20 | url="$(ostree remote show-url fedora-iot)" 21 | 22 | if [ "${url}" != "https://kojipkgs.fedoraproject.org/compose/iot/repo/" ]; then 23 | echo "Unexpected URL: ${url}" >> /root/RESULT 24 | fi 25 | 26 | if [ ! -e /root/RESULT ]; then 27 | echo SUCCESS > /root/RESULT 28 | fi 29 | 30 | # Write the result into logs. 31 | cat /root/RESULT 32 | %end 33 | -------------------------------------------------------------------------------- /script-post.ks.in: -------------------------------------------------------------------------------- 1 | # Test name: post_install_with_logging_test 2 | %ksappend repos/default.ks 3 | %ksappend common/common_no_payload.ks 4 | %ksappend payload/default_packages.ks 5 | 6 | # System configuration for automatic installation 7 | text 8 | 9 | # Post-install script (nochroot) 10 | %post --nochroot --log=/mnt/sysroot/root/post-nochroot.log 11 | # Log to the nochroot log file 12 | echo "Post-install (nochroot) script started" 13 | # Write 'SUCCESS' to the RESULT file 14 | echo "SUCCESS" > /mnt/sysroot/root/RESULT 15 | # Log completion 16 | echo "Post-install (nochroot) script finished" 17 | %end 18 | 19 | # Post-install script (chroot) 20 | %post --log=/root/post-chroot.log 21 | # Log to the chroot log file 22 | echo "Post-install (chroot) script started" 23 | # Check if the RESULT file contains 'SUCCESS' 24 | if grep -q "SUCCESS" /root/RESULT; then 25 | echo "SUCCESS found in /root/RESULT, everything is good!" 26 | else 27 | echo "ERROR: SUCCESS not found in /root/RESULT" > /root/RESULT 28 | echo "ERROR: SUCCESS not found in /root/RESULT" 29 | fi 30 | # Log completion 31 | echo "Post-install (chroot) script finished" 32 | %end 33 | -------------------------------------------------------------------------------- /script-pre-install.ks.in: -------------------------------------------------------------------------------- 1 | # Test name: pre_install_interpreter_and_error_test 2 | 3 | %ksappend repos/default.ks 4 | %ksappend common/common_no_payload.ks 5 | %ksappend payload/default_packages.ks 6 | 7 | # First pre-install script using Python interpreter 8 | %pre-install --interpreter=/usr/bin/python3 --log=/mnt/sysroot/root/preinstall_python.log 9 | print("SUCCESS") 10 | with open("/mnt/sysroot/root/preinstall_python.log", "a") as log_file: 11 | log_file.write("Pre-install script running with Python\n") 12 | %end 13 | 14 | # Second pre-install script with intentional error 15 | %pre-install --log=/mnt/sysroot/root/preinstall_error.log 16 | echo "SUCCESS" 17 | echo "Logging from bash pre-install script" >> /mnt/sysroot/root/preinstall_error.log 18 | exit 1 19 | %end 20 | 21 | text 22 | -------------------------------------------------------------------------------- /script-pre.ks.in: -------------------------------------------------------------------------------- 1 | 2 | %ksappend repos/default.ks 3 | 4 | # Pre-install script using Bash interpreter 5 | %pre --interpreter=/bin/bash 6 | echo "SUCCESS from Bash" 7 | %end 8 | 9 | # Pre-install script using Python interpreter 10 | %pre --interpreter=/usr/bin/python3 11 | print("SUCCESS from Python") 12 | %end 13 | 14 | # Pre script just for confirmation 15 | %pre 16 | echo "SUCCESS Pre" 17 | poweroff 18 | %end 19 | -------------------------------------------------------------------------------- /scripts-lib.sh: -------------------------------------------------------------------------------- 1 | # Common functions for %post or %pre kickstart section 2 | 3 | # get_platform KSTEST_OS_NAME KSTEST_OS_VERSION 4 | # Get the platform (fragments platform / --platform launch script option). 5 | # For fedora return only "fedora" prefix (only fedora_rawhide platform is supported currently). 6 | function get_platform { 7 | local os_name=$1 8 | local os_version=$2 9 | local platform="" 10 | 11 | if [ ${os_name} == "rhel" ] || [ ${os_name} == "centos" ] ; then 12 | platform=rhel 13 | os_major=$(echo "${os_version}" | grep -oE "^[[:digit:]]+") 14 | if [ -n "${os_major}" ] ; then 15 | platform="rhel${os_major}" 16 | fi 17 | fi 18 | if [ ${os_name} == "fedora" ] ; then 19 | platform=fedora 20 | fi 21 | 22 | echo ${platform} 23 | } 24 | -------------------------------------------------------------------------------- /scripts/Makefile.prereqs: -------------------------------------------------------------------------------- 1 | # Use this Makefile and the prereqs() function to define any objects that need 2 | # to be built for a particular kickstart test that could be shared by multiple 3 | # tests. The Makefile is run with PWD = .../scripts. The following environment 4 | # variables are available: 5 | # 6 | # IMAGE - the boot.iso 7 | # KSTESTDIR - the absolute path to the kickstart-tests directory, sans scripts/ 8 | # 9 | # This is a regular Makefile without any automake weirdness, so just keep it 10 | # friendly. 11 | 12 | install.img: ${IMAGE} 13 | @# Extract the install.img from a boot.iso 14 | isoinfo -i $${IMAGE} -R -x /images/install.img > $@ 15 | -------------------------------------------------------------------------------- /scripts/defaults-fedora_rawhide.sh: -------------------------------------------------------------------------------- 1 | defaults.sh -------------------------------------------------------------------------------- /scripts/defaults-rhel10.sh: -------------------------------------------------------------------------------- 1 | # Default settings for testing RHEL 10. This requires being inside the Red Hat VPN. 2 | 3 | # This is a reasonable default used until the new release is detected by osinfo library. 4 | export KSTEST_OSINFO_NAME=fedora-eln 5 | source ./network-device-names.cfg 6 | export KSTEST_URL='http://download.devel.redhat.com/rhel-10/nightly/RHEL-10/latest-RHEL-10.1/compose/BaseOS/x86_64/os/' 7 | export KSTEST_MODULAR_URL='http://download.devel.redhat.com/rhel-10/nightly/RHEL-10/latest-RHEL-10.1/compose/AppStream/x86_64/os/' 8 | export KSTEST_FTP_URL='ftp://download.devel.redhat.com/mnt/redhat/rhel-10/nightly/RHEL-10/latest-RHEL-10.1/compose/BaseOS/x86_64/os/' 9 | export KSTEST_OSTREECONTAINER_URL='quay.io/centos-bootc/centos-bootc:stream10' 10 | -------------------------------------------------------------------------------- /scripts/defaults-rhel8.sh: -------------------------------------------------------------------------------- 1 | # Default settings for testing RHEL 8. This requires being inside the Red Hat VPN. 2 | 3 | source ./network-device-names.cfg 4 | export KSTEST_URL='http://download.devel.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.10.0/compose/BaseOS/x86_64/os/' 5 | export KSTEST_MODULAR_URL='http://download.devel.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.10.0/compose/AppStream/x86_64/os/' 6 | export KSTEST_FTP_URL='ftp://download.devel.redhat.com/mnt/redhat/rhel-8/nightly/RHEL-8/latest-RHEL-8.10.0/compose/BaseOS/x86_64/os/' 7 | -------------------------------------------------------------------------------- /scripts/defaults-rhel9.sh: -------------------------------------------------------------------------------- 1 | # Default settings for testing RHEL 9. This requires being inside the Red Hat VPN. 2 | 3 | source ./network-device-names.cfg 4 | export KSTEST_URL='http://download.devel.redhat.com/rhel-9/nightly/RHEL-9/latest-RHEL-9.7.0/compose/BaseOS/x86_64/os/' 5 | export KSTEST_MODULAR_URL='http://download.devel.redhat.com/rhel-9/nightly/RHEL-9/latest-RHEL-9.7.0/compose/AppStream/x86_64/os/' 6 | export KSTEST_FTP_URL='ftp://download.devel.redhat.com/mnt/redhat/rhel-9/nightly/RHEL-9/latest-RHEL-9.7.0/compose/BaseOS/x86_64/os/' 7 | export KSTEST_OSTREECONTAINER_URL='quay.io/centos-bootc/centos-bootc:stream9' 8 | -------------------------------------------------------------------------------- /scripts/defaults.sh: -------------------------------------------------------------------------------- 1 | # Default settings that work for everyone, but may not be optimal. 2 | 3 | # Where's the package repo for tests that don't care about testing the package 4 | # source. This may be slow (especially for large numbers of tests) and you may 5 | # want to define your own. 6 | # 7 | # CAUTION: the sed expression we currently use does not like white-space in the strings 8 | 9 | source ./network-device-names.cfg 10 | export KSTEST_URL='http://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/' 11 | export KSTEST_METALINK='https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=x86_64' 12 | export KSTEST_MIRRORLIST='https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=x86_64' 13 | export KSTEST_MODULAR_URL='http://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Modular/x86_64/os/' 14 | export KSTEST_FTP_URL='ftp://ftp.halifax.rwth-aachen.de/fedora/linux/development/rawhide/Everything/x86_64/os/' 15 | export KSTEST_OSTREECONTAINER_URL='quay.io/fedora/fedora-bootc:rawhide' 16 | -------------------------------------------------------------------------------- /scripts/launcher/lib/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhinstaller/kickstart-tests/5fa2d9562954de1dcf332f6cd0cfff1e4cdf045d/scripts/launcher/lib/__init__.py -------------------------------------------------------------------------------- /scripts/launcher/lib/conf/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhinstaller/kickstart-tests/5fa2d9562954de1dcf332f6cd0cfff1e4cdf045d/scripts/launcher/lib/conf/__init__.py -------------------------------------------------------------------------------- /scripts/udev_escape.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | 3 | import sys 4 | from pylorax.treebuilder import udev_escape 5 | 6 | if len(sys.argv) != 2: 7 | print("Usage: %s " % sys.argv[0], file=sys.stderr) 8 | sys.exit(1) 9 | 10 | print(udev_escape(sys.argv[1])) 11 | -------------------------------------------------------------------------------- /selinux-contexts.ks.in: -------------------------------------------------------------------------------- 1 | 2 | %ksappend repos/default.ks 3 | %ksappend common/common_no_payload.ks 4 | %ksappend payload/default_packages.ks 5 | 6 | # Reboot the installed system. 7 | reboot 8 | 9 | # Validate on the first boot. 10 | %ksappend validation/success_on_first_boot.ks 11 | 12 | # Set up the actual test. 13 | %post 14 | 15 | # Make sure something doesn't fix the labels before we can check them. 16 | systemctl disable selinux-autorelabel.service 17 | 18 | # Write the code to run after reboot. It lists files with wrong SELinux contexts. 19 | cat > /usr/libexec/kickstart-test.sh << 'EOF' 20 | 21 | restorecon -rvn / -e /dev -e /mnt -e /proc -e /run -e /sys 22 | 23 | EOF 24 | 25 | %end 26 | -------------------------------------------------------------------------------- /selinux-disabled.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all --initlabel 8 | autopart 9 | 10 | keyboard --vckeymap cz --xlayouts=cz 11 | lang cs_CZ.UTF-8 12 | timezone America/New_York --utc 13 | rootpw testcase 14 | 15 | # SeLinux test 16 | selinux --disabled 17 | 18 | shutdown 19 | 20 | %packages 21 | %end 22 | 23 | %post 24 | 25 | # Test disabled 26 | cat /etc/selinux/config | grep SELINUX=disabled 27 | if [[ $? -ne 0 ]]; then 28 | echo "*** SELinux not disabled" >> /root/RESULT 29 | fi 30 | 31 | if [[ ! -e /root/RESULT ]]; then 32 | echo SUCCESS > /root/RESULT 33 | fi 34 | %end 35 | -------------------------------------------------------------------------------- /selinux-disabled.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="selinux" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /selinux-enforcing.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all --initlabel 8 | autopart 9 | 10 | keyboard --vckeymap cz --xlayouts=cz 11 | lang cs_CZ.UTF-8 12 | timezone America/New_York --utc 13 | rootpw testcase 14 | 15 | # SeLinux test 16 | selinux --enforcing 17 | 18 | shutdown 19 | 20 | %packages 21 | %end 22 | 23 | %post 24 | 25 | # Test enforcing 26 | cat /etc/selinux/config | grep SELINUX=enforcing 27 | if [[ $? -ne 0 ]]; then 28 | echo "*** SELinux not in enforcing mode" >> /root/RESULT 29 | fi 30 | 31 | if [[ ! -e /root/RESULT ]]; then 32 | echo SUCCESS > /root/RESULT 33 | fi 34 | %end 35 | -------------------------------------------------------------------------------- /selinux-permissive.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all --initlabel 8 | autopart 9 | 10 | keyboard --vckeymap cz --xlayouts=cz 11 | lang cs_CZ.UTF-8 12 | timezone America/New_York --utc 13 | rootpw testcase 14 | 15 | # SeLinux test 16 | selinux --permissive 17 | 18 | shutdown 19 | 20 | %packages 21 | %end 22 | 23 | %post 24 | 25 | # Test permissive 26 | cat /etc/selinux/config | grep SELINUX=permissive 27 | if [[ $? -ne 0 ]]; then 28 | echo "*** SELinux not in permissive mode" >> /root/RESULT 29 | fi 30 | 31 | if [[ ! -e /root/RESULT ]]; then 32 | echo SUCCESS > /root/RESULT 33 | fi 34 | %end 35 | -------------------------------------------------------------------------------- /selinux-permissive.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="selinux" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /services.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all --initlabel 8 | autopart 9 | 10 | keyboard us 11 | lang en 12 | timezone America/New_York --utc 13 | rootpw testcase 14 | 15 | # Test services 16 | services --disabled=sshd --enabled=radvd 17 | 18 | # Test SELinux 19 | selinux --enforcing 20 | 21 | shutdown 22 | 23 | %packages 24 | radvd 25 | %end 26 | 27 | %post 28 | 29 | # Test enabled 30 | systemctl is-enabled radvd 31 | if [[ $? -ne 0 ]]; then 32 | echo "*** radvd is disabled, not enabled" >> /root/RESULT 33 | fi 34 | 35 | # Test disabled 36 | systemctl is-enabled sshd 37 | if [[ $? -eq 0 ]]; then 38 | echo "*** sshd is enabled, not disabled" >> /root/RESULT 39 | fi 40 | 41 | # Test disabled - W/out change 42 | systemctl is-enabled rdisc 43 | if [[ $? -eq 0 ]]; then 44 | echo "*** rdisc is enabled, should be disabled" >> /root/RESULT 45 | fi 46 | 47 | # SELinux test 48 | grep 'SELINUX=enforcing' /etc/selinux/config 49 | if [[ $? -ne 0 ]]; then 50 | echo "*** SELinux not in enforcing mode" >> /root/RESULT 51 | fi 52 | 53 | if [[ ! -e /root/RESULT ]]; then 54 | echo SUCCESS > /root/RESULT 55 | fi 56 | %end 57 | -------------------------------------------------------------------------------- /services.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="services coverage" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /stage2-from-ks.ks.in: -------------------------------------------------------------------------------- 1 | # 2 | # Test configuration of stage2 location via kickstart url command 3 | # and activation of network in initramfs from kickstart configuration. 4 | # rhbz#2153361 5 | 6 | %ksappend repos/default.ks 7 | %ksappend common/common_no_payload.ks 8 | %ksappend payload/default_packages.ks 9 | 10 | %post 11 | %ksappend validation/success_if_result_empty.ks 12 | %end 13 | -------------------------------------------------------------------------------- /testlib/test_cases/README.md: -------------------------------------------------------------------------------- 1 | This directory should contain test cases generated from kickstart test repository using scripts/generate-testcases.py script. 2 | -------------------------------------------------------------------------------- /testlib/test_cases/kstest-template.tc.yaml.j2: -------------------------------------------------------------------------------- 1 | name: {{ kstest.name }} 2 | description: See the source 3 | author: rvykydal@redhat.com 4 | execution: 5 | type: kickstart-test 6 | automation_data: 7 | test: {{ kstest.name }} 8 | tags: 9 | {% for tag in kstest.tags %} 10 | - {{ tag }} 11 | {% endfor %} 12 | priority: 1 13 | instructions: 14 | setup: 15 | - Download iso 16 | - Check out repo 17 | steps: 18 | - Run test 19 | teardown: 20 | - Clean up 21 | -------------------------------------------------------------------------------- /testlib/test_plans/daily-daily-iso.plan.yaml.j2: -------------------------------------------------------------------------------- 1 | name: daily daily-iso 2 | description: Daily run on current rawhide with anaconda dnf and python-blivet daily builds 3 | point_person: rvykydal@redhat.com 4 | artifact_type: github.scheduled.daily.kstest.daily-iso 5 | verified_by: 6 | test_cases: 7 | query: ' 8 | {% for tag in skiptags %} 9 | "{{ tag }}" not in tc.tags and 10 | {% endfor %} 11 | True' 12 | configurations: 13 | - architecture: x86_64 14 | reporting: 15 | - type: xunit 16 | -------------------------------------------------------------------------------- /testlib/test_plans/daily-rhel10.plan.yaml.j2: -------------------------------------------------------------------------------- 1 | name: daily rhel10 2 | description: Daily run on a RHEL 10 compose 3 | point_person: rvykydal@redhat.com 4 | artifact_type: github.scheduled.daily.kstest.rhel10 5 | verified_by: 6 | test_cases: 7 | query: ' 8 | {% for tag in skiptags %} 9 | "{{ tag }}" not in tc.tags and 10 | {% endfor %} 11 | True' 12 | configurations: 13 | - architecture: x86_64 14 | reporting: 15 | - type: xunit 16 | -------------------------------------------------------------------------------- /testlib/test_plans/daily-rhel9.plan.yaml.j2: -------------------------------------------------------------------------------- 1 | name: daily rhel9 2 | description: Daily run on a RHEL 9 compose 3 | point_person: rvykydal@redhat.com 4 | artifact_type: github.scheduled.daily.kstest.rhel9 5 | verified_by: 6 | test_cases: 7 | query: ' 8 | {% for tag in skiptags %} 9 | "{{ tag }}" not in tc.tags and 10 | {% endfor %} 11 | True' 12 | configurations: 13 | - architecture: x86_64 14 | reporting: 15 | - type: xunit 16 | -------------------------------------------------------------------------------- /testlib/test_plans/minimal.plan.yaml: -------------------------------------------------------------------------------- 1 | name: minimal 2 | description: Run minimal plan with single fast test 3 | point_person: rvykydal@redhat.com 4 | artifact_type: github.scheduled.daily.kstest.minimal 5 | verified_by: 6 | test_cases: 7 | direct_list: 8 | - container 9 | configurations: 10 | - architecture: x86_64 11 | reporting: 12 | - type: xunit 13 | -------------------------------------------------------------------------------- /testlib/test_plans/pull-request-permian-gating.plan.yaml: -------------------------------------------------------------------------------- 1 | name: pull request permian 2 | description: Kickstart tests run on GitHub Permian pull requests 3 | point_person: rvykydal@redhat.com 4 | artifact_type: github.pr.permian 5 | verified_by: 6 | test_cases: 7 | # Smoke tests on Fedora 8 | query: '"smoke" in tc.tags and "knownfailure" not in tc.tags and "skip-on-fedora" not in tc.tags' 9 | configurations: 10 | - architecture: x86_64 11 | reporting: 12 | - type: github-pr 13 | data: 14 | pr-check-name: "Kickstart tests" 15 | pr-check-summary: "Kickstart tests run on a pull request comment" 16 | -------------------------------------------------------------------------------- /timezone-noncommon.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | # Test that timezones that are in pytz.all_timezones but not in 3 | # pytz.common_timezones can be used in kickstart 4 | # (jira#RHEL-13150, jira#RHEL-13151, rhbz#1452873) 5 | %ksappend repos/default.ks 6 | network --bootproto=dhcp 7 | 8 | bootloader --timeout=1 9 | zerombr 10 | clearpart --all --initlabel 11 | autopart 12 | 13 | keyboard us 14 | lang en 15 | timezone Japan 16 | rootpw testcase 17 | 18 | shutdown 19 | 20 | %packages 21 | %end 22 | 23 | %post 24 | 25 | link=$(readlink /etc/localtime) 26 | if [[ ${link#*zoneinfo/} != "Japan" ]]; then 27 | echo "*** /etc/localtime does not point to the configured timezone" >> /root/RESULT 28 | fi 29 | 30 | # everything passes 31 | if [[ ! -e /root/RESULT ]]; then 32 | echo SUCCESS > /root/RESULT 33 | fi 34 | %end 35 | -------------------------------------------------------------------------------- /timezone-noncommon.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2023 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Radek Vykydal 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="time" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /timezoneLOCAL.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all --initlabel 8 | autopart 9 | 10 | keyboard us 11 | lang en 12 | timezone Europe/Prague 13 | rootpw testcase 14 | 15 | shutdown 16 | 17 | %packages 18 | %end 19 | 20 | %post 21 | ## UTC ZONE TEST 22 | # hwclock LOCAL test 23 | # check with both old and new (exclusive) cmdline options 24 | hwclock -D | grep "Assuming hardware clock is kept in local time." 25 | old_hwclock_rc=$? 26 | hwclock --verbose | grep "Assuming hardware clock is kept in local time." 27 | hwclock_rc=$? 28 | if [[ $old_hwclock_rc -ne 0 && $hwclock_rc -ne 0 ]]; then 29 | echo "*** hwclock not set to LOCAL time." >> /root/RESULT 30 | fi 31 | 32 | # cat adjtime LOCAL test 33 | cat /etc/adjtime | grep LOCAL 34 | if [[ $? -ne 0 ]]; then 35 | echo "*** Time in /etc/adjtime is not set to LOCAL." >> /root/RESULT 36 | fi 37 | 38 | # everything passes 39 | if [[ ! -e /root/RESULT ]]; then 40 | echo SUCCESS > /root/RESULT 41 | fi 42 | %end 43 | -------------------------------------------------------------------------------- /timezoneLOCAL.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="time" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /timezoneUTC.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | %ksappend repos/default.ks 3 | network --bootproto=dhcp 4 | 5 | bootloader --timeout=1 6 | zerombr 7 | clearpart --all --initlabel 8 | autopart 9 | 10 | keyboard us 11 | lang en 12 | timezone Europe/Prague --utc 13 | rootpw testcase 14 | 15 | shutdown 16 | 17 | %packages 18 | %end 19 | 20 | %post 21 | ## UTC ZONE TEST 22 | # hwclock UTC test 23 | # check with both old and new (exclusive) cmdline options 24 | hwclock -D | grep "Assuming hardware clock is kept in UTC time." 25 | old_hwclock_rc=$? 26 | hwclock --verbose | grep "Assuming hardware clock is kept in UTC time." 27 | hwclock_rc=$? 28 | if [[ $old_hwclock_rc -ne 0 && $hwclock_rc -ne 0 ]]; then 29 | echo "*** hwclock not set to UTC.." >> /root/RESULT 30 | fi 31 | 32 | # cat adjtime UTC test 33 | cat /etc/adjtime | grep UTC 34 | if [[ $? -ne 0 ]]; then 35 | echo "*** Time in /etc/adjtime not set to UTC." >> /root/RESULT 36 | fi 37 | 38 | # everything passes 39 | if [[ ! -e /root/RESULT ]]; then 40 | echo SUCCESS > /root/RESULT 41 | fi 42 | %end 43 | -------------------------------------------------------------------------------- /timezoneUTC.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="time" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /ui_cmdline.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | # Use defaults. 4 | %ksappend repos/default.ks 5 | %ksappend common/common_no_payload.ks 6 | %ksappend payload/default_packages.ks 7 | 8 | # Run the installation in the cmdline mode. 9 | cmdline 10 | 11 | %post --nochroot 12 | @KSINCLUDE@ post-nochroot-lib-ui.sh 13 | 14 | # Check the installation mode. 15 | check_display_mode "noninteractive text mode" 16 | %end 17 | 18 | %ksappend validation/success_if_result_empty_standalone.ks 19 | -------------------------------------------------------------------------------- /ui_cmdline.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2021 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 19 | # shellcheck disable=SC2034 20 | TESTTYPE="ui" 21 | 22 | . ${KSTESTDIR}/functions.sh 23 | -------------------------------------------------------------------------------- /ui_graphical_interactive.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | # Use defaults. 4 | %ksappend repos/default.ks 5 | %ksappend common/common_no_payload.ks 6 | %ksappend payload/default_packages.ks 7 | 8 | # Run the installation in the graphical mode. 9 | graphical 10 | 11 | %post --nochroot 12 | @KSINCLUDE@ post-nochroot-lib-ui.sh 13 | 14 | # Check the installation mode. 15 | check_display_mode "interactive graphical mode" 16 | %end 17 | 18 | %ksappend validation/success_if_result_empty_standalone.ks 19 | -------------------------------------------------------------------------------- /ui_graphical_interactive.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2021 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 19 | # shellcheck disable=SC2034 20 | TESTTYPE="ui smoke" 21 | 22 | . ${KSTESTDIR}/functions.sh 23 | -------------------------------------------------------------------------------- /ui_graphical_noninteractive.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | # Use defaults. 4 | %ksappend repos/default.ks 5 | %ksappend common/common_no_payload.ks 6 | %ksappend payload/default_packages.ks 7 | 8 | # Run the installation in the graphical mode. 9 | graphical --non-interactive 10 | 11 | %post --nochroot 12 | @KSINCLUDE@ post-nochroot-lib-ui.sh 13 | 14 | # Check the installation mode. 15 | check_display_mode "noninteractive graphical mode" 16 | %end 17 | 18 | %ksappend validation/success_if_result_empty_standalone.ks 19 | -------------------------------------------------------------------------------- /ui_rdp.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | # Use defaults. 4 | %ksappend repos/default.ks 5 | %ksappend common/common_no_payload.ks 6 | %ksappend payload/default_packages.ks 7 | 8 | %post --nochroot 9 | 10 | # the support script should run the installation in RDP mode via boot options 11 | cat /proc/cmdline | grep inst.rdp 12 | if [[ $? != 0 ]]; then 13 | echo "*** inst.rdp not used to enable remote desktop mode" >> /mnt/sysroot/root/RESULT 14 | echo "*** /proc/cmdline:" >> /mnt/sysroot/root/RESULT 15 | cat /proc/cmdline >> /mnt/sysroot/root/RESULT 16 | fi 17 | 18 | @KSINCLUDE@ post-nochroot-lib-ui.sh 19 | 20 | # Check the installation mode. 21 | check_display_mode "interactive graphical mode" 22 | 23 | # Check the RDP server. 24 | check_rdp_server_is_running 25 | 26 | %end 27 | 28 | # this needs to be separate so that checking /root/RESULT works as 29 | # expected due to the main %post section using --nochroot 30 | %ksappend validation/success_if_result_empty_standalone.ks 31 | 32 | -------------------------------------------------------------------------------- /ui_text_interactive.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | # Use defaults. 4 | %ksappend repos/default.ks 5 | %ksappend common/common_no_payload.ks 6 | %ksappend payload/default_packages.ks 7 | 8 | # Run the installation in the text mode. 9 | text 10 | 11 | %post --nochroot 12 | @KSINCLUDE@ post-nochroot-lib-ui.sh 13 | 14 | # Check the installation mode. 15 | check_display_mode "interactive text mode" 16 | %end 17 | 18 | %ksappend validation/success_if_result_empty_standalone.ks 19 | -------------------------------------------------------------------------------- /ui_text_interactive.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2021 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 19 | # shellcheck disable=SC2034 20 | TESTTYPE="ui smoke" 21 | 22 | . ${KSTESTDIR}/functions.sh 23 | -------------------------------------------------------------------------------- /ui_text_noninteractive.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | # Use defaults. 4 | %ksappend repos/default.ks 5 | %ksappend common/common_no_payload.ks 6 | %ksappend payload/default_packages.ks 7 | 8 | # Run the installation in the text mode. 9 | text --non-interactive 10 | 11 | %post --nochroot 12 | @KSINCLUDE@ post-nochroot-lib-ui.sh 13 | 14 | # Check the installation mode. 15 | check_display_mode "noninteractive text mode" 16 | %end 17 | 18 | %ksappend validation/success_if_result_empty_standalone.ks 19 | -------------------------------------------------------------------------------- /ui_text_noninteractive.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2021 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 19 | # shellcheck disable=SC2034 20 | TESTTYPE="ui" 21 | 22 | . ${KSTESTDIR}/functions.sh 23 | -------------------------------------------------------------------------------- /ui_vnc.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | # Use defaults. 4 | %ksappend repos/default.ks 5 | %ksappend common/common_no_payload.ks 6 | %ksappend payload/default_packages.ks 7 | 8 | # Run the installation in the VNC mode. 9 | vnc --password anaconda 10 | 11 | %post --nochroot 12 | @KSINCLUDE@ post-nochroot-lib-ui.sh 13 | 14 | # Check the installation mode. 15 | check_display_mode "interactive graphical mode" 16 | 17 | # Check the VNC server. 18 | check_vnc_server_is_running 19 | %end 20 | 21 | %ksappend validation/success_if_result_empty_standalone.ks 22 | -------------------------------------------------------------------------------- /ui_vnc.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2021 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 19 | # shellcheck disable=SC2034 20 | TESTTYPE="ui gh1060 skip-on-rhel-10" 21 | 22 | . ${KSTESTDIR}/functions.sh 23 | -------------------------------------------------------------------------------- /unified-cdrom.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | # This test is for testing the install from an unified repository. 4 | # 5 | # You have to have unified ISO as a source mounted on the HTTP server. 6 | # To create unified ISO for Fedora you can use this tool: 7 | # https://github.com/rhinstaller/devel-tools/tree/main/modify_install_iso 8 | # 9 | 10 | # 11 | # This installation has to be booted by the unified ISO instead of boot ISO. 12 | # 13 | 14 | %ksappend common/common_no_payload.ks 15 | 16 | cdrom 17 | 18 | %ksappend payload/unified_packages.ks 19 | 20 | %post 21 | %ksappend validation/unified.ks 22 | 23 | %ksappend validation/success_if_result_empty.ks 24 | %end 25 | -------------------------------------------------------------------------------- /unified-cmdline.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | # This test is for testing the install from an unified repository. 4 | # 5 | # You have to have unified ISO as a source mounted on the HTTP server. 6 | # To create unified ISO for Fedora you can use this tool: 7 | # https://github.com/rhinstaller/devel-tools/tree/main/modify_install_iso 8 | # 9 | 10 | %ksappend common/common_no_payload.ks 11 | 12 | %ksappend payload/unified_packages.ks 13 | 14 | %post 15 | %ksappend validation/unified.ks 16 | 17 | %ksappend validation/success_if_result_empty.ks 18 | %end 19 | -------------------------------------------------------------------------------- /unified-nfs.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | # This test is for testing the install from an unified repository. 4 | # 5 | # You have to have unified ISO as a source mounted on the NFS server. 6 | # To create unified ISO for Fedora you can use this tool: 7 | # https://github.com/rhinstaller/devel-tools/tree/main/modify_install_iso 8 | # 9 | # This test has to have access to the NFS server. However NFS won't mount 10 | # if the VM is behind a NAT (NFS problem). So this test won't work on our setup 11 | # right now. 12 | # 13 | 14 | %ksappend common/common_no_payload.ks 15 | 16 | %ksappend repos/unified-nfs.ks 17 | 18 | %ksappend payload/unified_packages.ks 19 | 20 | %post 21 | %ksappend validation/unified.ks 22 | 23 | %ksappend validation/success_if_result_empty.ks 24 | %end 25 | -------------------------------------------------------------------------------- /unified.ks.in: -------------------------------------------------------------------------------- 1 | #version=DEVEL 2 | 3 | # This test is for testing the install from an unified repository. 4 | # 5 | # You have to have unified ISO as a source mounted on the HTTP server. 6 | # To create unified ISO for Fedora you can use this tool: 7 | # https://github.com/rhinstaller/devel-tools/tree/main/modify_install_iso 8 | # 9 | 10 | %ksappend common/common_no_payload.ks 11 | 12 | %ksappend repos/unified.ks 13 | 14 | %ksappend payload/unified_packages.ks 15 | 16 | %post 17 | %ksappend validation/unified.ks 18 | 19 | %ksappend validation/success_if_result_empty.ks 20 | %end 21 | -------------------------------------------------------------------------------- /url-baseurl.ks.in: -------------------------------------------------------------------------------- 1 | 2 | ## Simple test for url --url. 3 | 4 | %ksappend common/common_no_payload.ks 5 | %ksappend payload/default_packages.ks 6 | 7 | url --url=@KSTEST_URL@ 8 | 9 | %post 10 | %ksappend validation/success_if_result_empty.ks 11 | %end 12 | -------------------------------------------------------------------------------- /url-baseurl.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2022 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | 19 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 20 | # shellcheck disable=SC2034 21 | TESTTYPE="packaging payload url" 22 | 23 | . ${KSTESTDIR}/functions.sh 24 | -------------------------------------------------------------------------------- /url-metalink.ks.in: -------------------------------------------------------------------------------- 1 | 2 | ## Simple test for url --metalink. 3 | 4 | %ksappend common/common_no_payload.ks 5 | %ksappend payload/default_packages.ks 6 | 7 | url --metalink=@KSTEST_METALINK@ 8 | 9 | %post 10 | %ksappend validation/success_if_result_empty.ks 11 | %end 12 | -------------------------------------------------------------------------------- /url-metalink.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2022 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | 19 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 20 | # shellcheck disable=SC2034 21 | TESTTYPE="packaging payload url skip-on-rhel" 22 | 23 | . ${KSTESTDIR}/functions.sh 24 | -------------------------------------------------------------------------------- /url-mirrorlist.ks.in: -------------------------------------------------------------------------------- 1 | 2 | ## Simple test for url --mirrorlist. 3 | 4 | %ksappend common/common_no_payload.ks 5 | %ksappend payload/default_packages.ks 6 | 7 | url --mirrorlist=@KSTEST_MIRRORLIST@ 8 | 9 | %post 10 | %ksappend validation/success_if_result_empty.ks 11 | %end 12 | -------------------------------------------------------------------------------- /url-mirrorlist.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2022 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | 19 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 20 | # shellcheck disable=SC2034 21 | TESTTYPE="packaging payload url skip-on-rhel" 22 | 23 | . ${KSTESTDIR}/functions.sh 24 | -------------------------------------------------------------------------------- /user-single.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2015 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Chris Lumens 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="users" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | -------------------------------------------------------------------------------- /user-wheel-no-root.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2019 Red Hat, Inc. 3 | # 4 | # This copyrighted material is made available to anyone wishing to use, 5 | # modify, copy, or redistribute it subject to the terms and conditions of 6 | # the GNU General Public License v.2, or (at your option) any later version. 7 | # This program is distributed in the hope that it will be useful, but WITHOUT 8 | # ANY WARRANTY expressed or implied, including the implied warranties of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10 | # Public License for more details. You should have received a copy of the 11 | # GNU General Public License along with this program; if not, write to the 12 | # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 13 | # 02110-1301, USA. Any Red Hat trademarks that are incorporated in the 14 | # source code or documentation are not subject to the GNU General Public 15 | # License and may only be used or replicated with the express permission of 16 | # Red Hat, Inc. 17 | # 18 | # Red Hat Author(s): Martin Kolman 19 | 20 | # Ignore unused variable parsed out by tooling scripts as test tags metadata 21 | # shellcheck disable=SC2034 22 | TESTTYPE="users" 23 | 24 | . ${KSTESTDIR}/functions.sh 25 | --------------------------------------------------------------------------------