Skip to content

Commit

Permalink
Add Integration test to ckeck the presence of the custom kernel insta…
Browse files Browse the repository at this point in the history
…lled
  • Loading branch information
kokesak committed Jun 23, 2022
1 parent 7e45e34 commit d0c70c8
Show file tree
Hide file tree
Showing 4 changed files with 79 additions and 0 deletions.
14 changes: 14 additions & 0 deletions plans/tier0.fmf
Original file line number Diff line number Diff line change
Expand Up @@ -67,3 +67,17 @@ discover+:
- name: install subscription manager
how: ansible
playbook: tests/ansible_collections/roles/install-submgr/main.yml

/custom_kernel:
adjust:
enabled: false
when: >
distro != oraclelinux-7 and
distro != centos-7 and
distro != centos-8.4
discover+:
test: custom-kernel
prepare+:
- name: install custom kernel
how: ansible
playbook: tests/integration/tier0/custom-kernel/install_custom_kernel.py
41 changes: 41 additions & 0 deletions tests/integration/tier0/custom-kernel/install_custom_kernel.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import platform

from envparse import env


def test_install_custom_kernel(shell):
# We install CentOS kernel on Oracle Linux and vice versa to mimic the custom kernel
# that is not signed by the running OS official vendor
system_version = platform.platform()

if "centos-7" in system_version:
# Install dependency for kernel-uek
assert (
shell(
"yum install https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/linux-firmware-20200124-999.4.git1eb2408c.el7.noarch.rpm -y"
).returncode
== 0
)
assert (
shell(
"yum install https://yum.oracle.com/repo/OracleLinux/OL7/UEKR6/x86_64/getPackage/kernel-uek-5.4.17-2011.0.7.el7uek.x86_64.rpm -y"
).returncode
== 0
)
shell("grub2-set-default 'CentOS Linux (5.4.17-2011.0.7.el7uek.x86_64) 7 (Core)'")
elif "oracle-7" in system_version:
assert (
shell(
"yum install http://mirror.centos.org/centos/7/os/x86_64/Packages/kernel-3.10.0-1160.el7.x86_64.rpm -y"
).returncode
== 0
)
shell("grub2-set-default 'Oracle Linux Server 7.9, with Linux 3.10.0-1160.el7.x86_64'")
elif "centos-8.4" in system_version:
assert (
shell(
"yum install https://yum.oracle.com/repo/OracleLinux/OL8/4/baseos/base/x86_64/getPackage/kernel-core-4.18.0-305.el8.x86_64.rpm -y"
).returncode
== 0
)
shell("grub2-set-default 'Oracle Linux Server (4.18.0-305.el8.x86_64) 8.4'")
6 changes: 6 additions & 0 deletions tests/integration/tier0/custom-kernel/main.fmf
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
summary: custom kernel inhibitor

tier: 0

test: |
pytest -svv
18 changes: 18 additions & 0 deletions tests/integration/tier0/custom-kernel/test_cutsom_kernel.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import platform

from envparse import env


def test_custom_kernel(convert2rhel):
# Run c2r with --variant option
system_version = platform.platform()

if "centos-7" in system_version:
string = "CentOS"
elif "oracle-7" in system_version:
string = "Oracle"

with convert2rhel(("--no-rpm-va --debug")) as c2r:
c2r.expect("WARNING - Custom kernel detected. The booted kernel needs to be signed by")
c2r.expect("CRITICAL - The booted kernel version is incompatible with the standard RHEL kernel.")
assert c2r.exitstatus != 0

0 comments on commit d0c70c8

Please sign in to comment.