mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-10-22 07:38:08 +00:00
170 lines
6.4 KiB
Perl
170 lines
6.4 KiB
Perl
#!/usr/bin/env perl
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Digest::SHA qw(sha256_hex);
|
|
use FindBin;
|
|
use lib "$FindBin::Bin/../lib";
|
|
use Test::More;
|
|
|
|
use XCAT::Test::File qw(slurp_repo_file);
|
|
|
|
# Fragments specify requested kernel options; they do not prove the built kernel configuration.
|
|
my $yocto_release_key =
|
|
slurp_repo_file('xCAT-genesis-base/oe/keys/yocto-release.asc');
|
|
is( sha256_hex($yocto_release_key),
|
|
'42d49e59f2aa01a1c1417a52d3c915a24a64060c852f33e3bd04fbb738457e70',
|
|
'vendored Yocto release key matches the reviewed key material' );
|
|
|
|
my $ppc64_kernel_config = slurp_repo_file(
|
|
'xCAT-genesis-base/oe/meta-xcat-genesis/recipes-kernel/linux/linux-yocto/xcat-genesis-ppc64.cfg'
|
|
);
|
|
like( $ppc64_kernel_config, qr/^CONFIG_CPU_BIG_ENDIAN=y$/m,
|
|
'ppc64 fragment requests big endian' );
|
|
like( $ppc64_kernel_config, qr/^# CONFIG_CPU_LITTLE_ENDIAN is not set$/m,
|
|
'ppc64 fragment disables little endian' );
|
|
|
|
my $kernel_config = slurp_repo_file(
|
|
'xCAT-genesis-base/oe/meta-xcat-genesis/recipes-kernel/linux/linux-yocto/xcat-genesis-x86-common.cfg'
|
|
);
|
|
for my $symbol (
|
|
qw(
|
|
CONFIG_MODULES CONFIG_MEGARAID_SAS CONFIG_SCSI_MPT3SAS CONFIG_SCSI_HPSA
|
|
CONFIG_BLK_DEV_NVME CONFIG_IXGBE CONFIG_I40E CONFIG_ICE CONFIG_MLX5_CORE
|
|
CONFIG_INFINIBAND CONFIG_MLX5_INFINIBAND CONFIG_IPMI_HANDLER CONFIG_EDAC
|
|
CONFIG_USB_STORAGE CONFIG_BLK_DEV_LOOP CONFIG_OVERLAY_FS CONFIG_SQUASHFS
|
|
CONFIG_SQUASHFS_XATTR CONFIG_SQUASHFS_ZSTD
|
|
)
|
|
)
|
|
{
|
|
like( $kernel_config, qr/^\Q$symbol\E=[ym]$/m,
|
|
"x86_64 fragment requests $symbol" );
|
|
}
|
|
|
|
my $x86_kernel_config = slurp_repo_file(
|
|
'xCAT-genesis-base/oe/meta-xcat-genesis/recipes-kernel/linux/linux-yocto/xcat-genesis-x86.cfg'
|
|
);
|
|
like( $x86_kernel_config, qr/^CONFIG_M686=y$/m,
|
|
'x86 fragment selects the i686 processor family' );
|
|
like( $x86_kernel_config, qr/^# CONFIG_M586 is not set$/m,
|
|
'x86 fragment disables i586' );
|
|
like( $x86_kernel_config, qr/^CONFIG_HIGHMEM4G=y$/m,
|
|
'x86 fragment requests the 32-bit high-memory model' );
|
|
like( $x86_kernel_config, qr/^# CONFIG_X86_MCE is not set$/m,
|
|
'x86 fragment disables machine-check registers' );
|
|
for my $vendor (qw(AMD INTEL)) {
|
|
like( $x86_kernel_config,
|
|
qr/^# CONFIG_X86_MCE_\Q$vendor\E is not set$/m,
|
|
"x86 fragment disables the $vendor machine-check feature" );
|
|
}
|
|
|
|
my $x86_64_kernel_config = slurp_repo_file(
|
|
'xCAT-genesis-base/oe/meta-xcat-genesis/recipes-kernel/linux/linux-yocto/xcat-genesis-x86-64.cfg'
|
|
);
|
|
like( $x86_64_kernel_config, qr/^CONFIG_EDAC_AMD64=m$/m,
|
|
'x86_64 keeps its architecture-specific EDAC driver' );
|
|
|
|
my $armv7hf_kernel_config = slurp_repo_file(
|
|
'xCAT-genesis-base/oe/meta-xcat-genesis/recipes-kernel/linux/linux-yocto/xcat-genesis-armv7hf.cfg'
|
|
);
|
|
for my $symbol (
|
|
qw(
|
|
CONFIG_ARCH_VIRT CONFIG_AEABI CONFIG_VFP CONFIG_SERIAL_AMBA_PL011
|
|
CONFIG_VIRTIO_MMIO CONFIG_VIRTIO_BLK CONFIG_VIRTIO_NET
|
|
CONFIG_SCSI_MPT3SAS CONFIG_MEGARAID_SAS CONFIG_BLK_DEV_NVME
|
|
CONFIG_IXGBE CONFIG_MLX4_CORE CONFIG_INFINIBAND CONFIG_IPMI_HANDLER
|
|
CONFIG_USB_XHCI_HCD CONFIG_USB_STORAGE CONFIG_BLK_DEV_LOOP
|
|
CONFIG_OVERLAY_FS CONFIG_SQUASHFS
|
|
)
|
|
)
|
|
{
|
|
like( $armv7hf_kernel_config, qr/^\Q$symbol\E=[ym]$/m,
|
|
"armv7hf fragment requests $symbol" );
|
|
}
|
|
|
|
my $aarch64_kernel_config = slurp_repo_file(
|
|
'xCAT-genesis-base/oe/meta-xcat-genesis/recipes-kernel/linux/linux-yocto/xcat-genesis-aarch64.cfg'
|
|
);
|
|
for my $symbol (
|
|
qw(
|
|
CONFIG_ARM64 CONFIG_ARCH_VIRT CONFIG_SERIAL_AMBA_PL011
|
|
CONFIG_VIRTIO_PCI CONFIG_VIRTIO_BLK CONFIG_VIRTIO_NET
|
|
CONFIG_SCSI_MPT3SAS CONFIG_SCSI_HPSA CONFIG_MEGARAID_SAS
|
|
CONFIG_BLK_DEV_NVME CONFIG_IXGBE CONFIG_I40E CONFIG_ICE
|
|
CONFIG_MLX5_CORE CONFIG_INFINIBAND CONFIG_MLX5_INFINIBAND
|
|
CONFIG_IPMI_HANDLER CONFIG_EDAC CONFIG_USB_XHCI_HCD
|
|
CONFIG_USB_STORAGE CONFIG_BLK_DEV_LOOP CONFIG_OVERLAY_FS CONFIG_SQUASHFS
|
|
)
|
|
)
|
|
{
|
|
like( $aarch64_kernel_config, qr/^\Q$symbol\E=[ym]$/m,
|
|
"aarch64 fragment requests $symbol" );
|
|
}
|
|
|
|
my $riscv64_kernel_config = slurp_repo_file(
|
|
'xCAT-genesis-base/oe/meta-xcat-genesis/recipes-kernel/linux/linux-yocto/xcat-genesis-riscv64.cfg'
|
|
);
|
|
for my $symbol (
|
|
qw(
|
|
CONFIG_64BIT CONFIG_RISCV CONFIG_RISCV_SBI CONFIG_SERIAL_8250_CONSOLE
|
|
CONFIG_VIRTIO_PCI CONFIG_VIRTIO_BLK CONFIG_VIRTIO_NET
|
|
CONFIG_SCSI_MPT3SAS CONFIG_SCSI_HPSA CONFIG_MEGARAID_SAS
|
|
CONFIG_BLK_DEV_NVME CONFIG_IXGBE CONFIG_I40E CONFIG_ICE
|
|
CONFIG_MLX5_CORE CONFIG_INFINIBAND CONFIG_MLX5_INFINIBAND
|
|
CONFIG_IPMI_HANDLER CONFIG_EDAC CONFIG_USB_XHCI_HCD
|
|
CONFIG_USB_STORAGE CONFIG_BLK_DEV_LOOP CONFIG_OVERLAY_FS CONFIG_SQUASHFS
|
|
)
|
|
)
|
|
{
|
|
like( $riscv64_kernel_config, qr/^\Q$symbol\E=[ym]$/m,
|
|
"riscv64 fragment requests $symbol" );
|
|
}
|
|
|
|
for my $symbol (
|
|
qw(
|
|
CONFIG_ACPI CONFIG_ACPI_APEI CONFIG_ACPI_APEI_GHES
|
|
CONFIG_EFI CONFIG_EFI_STUB
|
|
)
|
|
)
|
|
{
|
|
like( $riscv64_kernel_config, qr/^\Q$symbol\E=[ym]$/m,
|
|
"riscv64 fragment requests $symbol to boot on ACPI firmware" );
|
|
}
|
|
|
|
my $powerpc64_kernel_config = slurp_repo_file(
|
|
'xCAT-genesis-base/oe/meta-xcat-genesis/recipes-kernel/linux/linux-yocto/xcat-genesis-powerpc64.cfg'
|
|
);
|
|
for my $symbol (
|
|
qw(
|
|
CONFIG_PPC_PSERIES CONFIG_PPC_POWERNV CONFIG_PPC_64S_HASH_MMU
|
|
CONFIG_PPC_RADIX_MMU CONFIG_SCSI_IPR CONFIG_SCSI_IBMVSCSI
|
|
CONFIG_SCSI_IBMVFC CONFIG_MEGARAID_SAS CONFIG_BLK_DEV_NVME
|
|
CONFIG_IBMVETH CONFIG_IBMVNIC CONFIG_MLX5_CORE CONFIG_INFINIBAND
|
|
CONFIG_IPMI_HANDLER CONFIG_USB_XHCI_HCD CONFIG_USB_STORAGE
|
|
CONFIG_BLK_DEV_LOOP CONFIG_OVERLAY_FS CONFIG_SQUASHFS
|
|
)
|
|
)
|
|
{
|
|
like( $powerpc64_kernel_config, qr/^\Q$symbol\E=[ym]$/m,
|
|
"64-bit Power fragment requests $symbol" );
|
|
}
|
|
like( $powerpc64_kernel_config, qr/^# CONFIG_PPC_VAS is not set$/m,
|
|
'POWER8 fragment disables VAS facilities' );
|
|
|
|
my $console_service = slurp_repo_file(
|
|
'xCAT-genesis-base/oe/meta-xcat-genesis/recipes-core/xcat-genesis-console/files/xcat-genesis-console@.service'
|
|
);
|
|
like( $console_service, qr/^Environment=TERM=xterm$/m,
|
|
'console service sets the terminal type' );
|
|
like( $console_service, qr/^Environment=COLUMNS=80$/m,
|
|
'status console fixes the serial width' );
|
|
like( $console_service, qr/^Environment=LINES=24$/m,
|
|
'status console fixes the serial height' );
|
|
like( $console_service, qr/^TTYPath=\/dev\/%I$/m,
|
|
'status console binds to the machine console' );
|
|
unlike( $console_service, qr/xcat\.debug-shell|genesis-debug-shell/,
|
|
'status console has no boot-time debug escape' );
|
|
|
|
|
|
done_testing();
|