Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions pkg/machine/e2e/config_darwin_test.go
Original file line number Diff line number Diff line change
@@ -1,12 +1,3 @@
package e2e_test

import "os"

const podmanBinary = "../../../bin/darwin/podman"

var fakeImagePath string = os.DevNull

func (i *initMachine) withFakeImage(_ *machineTestBuilder) *initMachine {
i.image = fakeImagePath
return i
}
9 changes: 0 additions & 9 deletions pkg/machine/e2e/config_freebsd_test.go
Original file line number Diff line number Diff line change
@@ -1,12 +1,3 @@
package e2e_test

import "os"

const podmanBinary = "../../../bin/podman-remote"

var fakeImagePath string = os.DevNull

func (i *initMachine) withFakeImage(_ *machineTestBuilder) *initMachine {
i.image = fakeImagePath
return i
}
9 changes: 0 additions & 9 deletions pkg/machine/e2e/config_linux_test.go
Original file line number Diff line number Diff line change
@@ -1,12 +1,3 @@
package e2e_test

import "os"

const podmanBinary = "../../../bin/podman-remote"

var fakeImagePath string = os.DevNull

func (i *initMachine) withFakeImage(_ *machineTestBuilder) *initMachine {
i.image = fakeImagePath
return i
}
14 changes: 14 additions & 0 deletions pkg/machine/e2e/config_unix_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,24 @@
package e2e_test

import (
"os"
"os/exec"
)

var fakeImagePath string = os.DevNull

func pgrep(_ string) (string, error) {
out, err := exec.Command("pgrep", "gvproxy").Output()
return string(out), err
}

func initPlatform() {}
func cleanupPlatform() {}

// withFakeImage should be used in tests where the machine is
// initialized (or not) but never started. It is intended
// to speed up CI by not processing our large machine files.
func (i *initMachine) withFakeImage(_ *machineTestBuilder) *initMachine {
i.image = fakeImagePath
return i
}
43 changes: 41 additions & 2 deletions pkg/machine/e2e/config_windows_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,44 @@ package e2e_test

import (
"fmt"
"os"
"os/exec"
"path/filepath"
"strings"

"github.com/containers/libhvee/pkg/hypervctl"
"github.com/containers/podman/v6/pkg/machine/define"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega/gexec"
)

const podmanBinary = "../../../bin/windows/podman.exe"

var fakeImagePath string = ""

func initPlatform() {
switch testProvider.VMType().String() {
case define.HyperVVirt.String():
vmm := hypervctl.NewVirtualMachineManager()
name := fmt.Sprintf("podman-hyperv-%s.vhdx", randomString())
fullFileName := filepath.Join(tmpDir, name)
if err := vmm.CreateVhdxFile(fullFileName, 15*1024*1024); err != nil {
Fail(fmt.Sprintf("Failed to create file %s %q", fullFileName, err))
}
fakeImagePath = fullFileName
fmt.Println("Created fake disk image: " + fakeImagePath)
case define.WSLVirt.String():
default:
Fail(fmt.Sprintf("unknown Windows provider: %q", testProvider.VMType().String()))
}
}

func cleanupPlatform() {
if err := os.Remove(fakeImagePath); err != nil {
fmt.Printf("Failed to remove %s image: %q\n", fakeImagePath, err)
}
}

// pgrep emulates the pgrep linux command
func pgrep(n string) (string, error) {
// add filter to find the process and do no display a header
Expand Down Expand Up @@ -41,7 +70,17 @@ func runWslCommand(cmdArgs []string) (*machineSession, error) {
return &ms, nil
}

func (i *initMachine) withFakeImage(_ *machineTestBuilder) *initMachine {
i.image = mb.imagePath
// withFakeImage should be used in tests where the machine is
// initialized (or not) but never started. It is intended
// to speed up CI by not processing our large machine files.
func (i *initMachine) withFakeImage(mb *machineTestBuilder) *initMachine {
switch testProvider.VMType() {
case define.HyperVVirt:
i.image = fakeImagePath
case define.WSLVirt:
i.image = mb.imagePath
default:
Fail(fmt.Sprintf("unknown Windows provider: %q", testProvider.VMType().String()))
}
return i
}
5 changes: 5 additions & 0 deletions pkg/machine/e2e/machine_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ var _ = BeforeSuite(func() {
if pullError != nil {
Fail(fmt.Sprintf("failed to pull disk: %q", pullError))
}

fmt.Println("Running platform specific set-up")
initPlatform()
})

type timing struct {
Expand All @@ -96,6 +99,8 @@ var _ = SynchronizedAfterSuite(func() {}, func() {
for _, t := range timings {
GinkgoWriter.Printf("%s\t\t%f seconds\n", t.name, t.length.Seconds())
}
fmt.Println("Running platform specific cleanup")
cleanupPlatform()
})

// The config does not matter to much for our testing, however we
Expand Down