72 lines
1.9 KiB
Go
72 lines
1.9 KiB
Go
package rhel86
|
|
|
|
import (
|
|
"math/rand"
|
|
"testing"
|
|
|
|
"github.com/osbuild/osbuild-composer/internal/blueprint"
|
|
"github.com/osbuild/osbuild-composer/internal/distro"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
var testBasicImageType = imageType{
|
|
name: "test",
|
|
basePartitionTables: defaultBasePartitionTables,
|
|
}
|
|
|
|
var testEc2ImageType = imageType{
|
|
name: "test_ec2",
|
|
basePartitionTables: ec2BasePartitionTables,
|
|
}
|
|
|
|
var mountpoints = []blueprint.FilesystemCustomization{
|
|
{
|
|
MinSize: 1024,
|
|
Mountpoint: "/usr",
|
|
},
|
|
}
|
|
|
|
// math/rand is good enough in this case
|
|
/* #nosec G404 */
|
|
var rng = rand.New(rand.NewSource(0))
|
|
|
|
func TestDistro_UnsupportedArch(t *testing.T) {
|
|
testBasicImageType.arch = &architecture{
|
|
name: "unsupported_arch",
|
|
}
|
|
_, err := testBasicImageType.getPartitionTable(mountpoints, distro.ImageOptions{}, rng)
|
|
require.EqualError(t, err, "unknown arch: "+testBasicImageType.arch.name)
|
|
}
|
|
|
|
func TestDistro_DefaultPartitionTables(t *testing.T) {
|
|
rhel8distro := New()
|
|
for _, archName := range rhel8distro.ListArches() {
|
|
testBasicImageType.arch = &architecture{
|
|
name: archName,
|
|
}
|
|
pt, err := testBasicImageType.getPartitionTable(mountpoints, distro.ImageOptions{}, rng)
|
|
require.Nil(t, err)
|
|
for _, m := range mountpoints {
|
|
assert.True(t, pt.ContainsMountpoint(m.Mountpoint))
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestDistro_Ec2PartitionTables(t *testing.T) {
|
|
rhel8distro := New()
|
|
for _, archName := range rhel8distro.ListArches() {
|
|
testEc2ImageType.arch = &architecture{
|
|
name: archName,
|
|
}
|
|
pt, err := testEc2ImageType.getPartitionTable(mountpoints, distro.ImageOptions{}, rng)
|
|
if _, exists := testEc2ImageType.basePartitionTables[archName]; exists {
|
|
require.Nil(t, err)
|
|
for _, m := range mountpoints {
|
|
assert.True(t, pt.ContainsMountpoint(m.Mountpoint))
|
|
}
|
|
} else {
|
|
require.EqualError(t, err, "unknown arch: "+testEc2ImageType.arch.name)
|
|
}
|
|
}
|
|
}
|