Skip to content

Commit

Permalink
bootloader: Add test for isKernelUncompressed
Browse files Browse the repository at this point in the history
This ensures both puipui kernel and fedora/RHEL kernels are detected as
uncompressed when they are.
  • Loading branch information
cfergeau committed Aug 29, 2023
1 parent f23bc98 commit 2caf3a4
Show file tree
Hide file tree
Showing 7 changed files with 53 additions and 0 deletions.
53 changes: 53 additions & 0 deletions pkg/vf/bootloader_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package vf

import (
"path/filepath"
"testing"

"github.com/stretchr/testify/require"
)

type isUncompressedCheckFunc func(t require.TestingT, value bool, msgAndArgs ...interface{})

type uncompressedKernelTest struct {
filename string
isUncompressedCheck isUncompressedCheckFunc
}

var uncompressedKernelTests = map[string]uncompressedKernelTest{
"fedora-amd64-compressed": {
filename: filepath.Join("testdata", "vmlinuz-truncated-6.4.11-200.fc38.x86_64"),
isUncompressedCheck: require.False,
},
"fedora-arm64-compressed": {
// this kernel is wrapped in an EFI binary, I don't know how to produce an uncompressed version
filename: filepath.Join("testdata", "vmlinuz-truncated-6.4.11-200.fc38.aarch64"),
isUncompressedCheck: require.False,
},
"puipui-arm64-uncompressed": {
filename: filepath.Join("testdata", "vmlinux-truncated-0.1.0.puipui.aarch64"),
isUncompressedCheck: require.True,
},
"puipui-am64-compressed": {
filename: filepath.Join("testdata", "vmlinux-truncated-0.1.0.puipui.x86_64"),
isUncompressedCheck: require.False,
},
"rhel-arm64-uncompressed": {
filename: filepath.Join("testdata", "vmlinux-truncated-5.14.0-70.72.1.el9_0.aarch64"),
isUncompressedCheck: require.True,
},
"rhel-arm64-compressed": {
filename: filepath.Join("testdata", "vmlinuz-truncated-5.14.0-70.72.1.el9_0.aarch64"),
isUncompressedCheck: require.False,
},
}

func TestUncompressedKernel(t *testing.T) {
for name, test := range uncompressedKernelTests {
t.Run(name, func(t *testing.T) {
uncompressed, err := isKernelUncompressed(test.filename)
require.NoError(t, err)
test.isUncompressedCheck(t, uncompressed)
})
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 comments on commit 2caf3a4

Please sign in to comment.