pkg/machine/e2e: switch to GinkgoWriter

Directly writing to stdout/err is not safe when run in parallel.
Ginkgo v2 fixed this buffering the output and syncing the output so it
is not mangled between tests.

This is the same as for the podman integration tests.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
This commit is contained in:
Paul Holzinger 2023-05-02 12:05:56 +02:00
parent c4b9f4b34e
commit 5af4339237
No known key found for this signature in database
GPG Key ID: EB145DD938A3CAF2
2 changed files with 4 additions and 10 deletions

View File

@ -50,8 +50,6 @@ type machineTestBuilder struct {
// number of seconds // number of seconds
func (ms *machineSession) waitWithTimeout(timeout time.Duration) { func (ms *machineSession) waitWithTimeout(timeout time.Duration) {
Eventually(ms, timeout).Should(Exit()) Eventually(ms, timeout).Should(Exit())
os.Stdout.Sync()
os.Stderr.Sync()
} }
func (ms *machineSession) Bytes() []byte { func (ms *machineSession) Bytes() []byte {
@ -154,7 +152,7 @@ func runWrapper(podmanBinary string, cmdArgs []string, timeout time.Duration, wa
if len(os.Getenv("DEBUG")) > 0 { if len(os.Getenv("DEBUG")) > 0 {
cmdArgs = append([]string{"--log-level=debug"}, cmdArgs...) cmdArgs = append([]string{"--log-level=debug"}, cmdArgs...)
} }
fmt.Println(podmanBinary + " " + strings.Join(cmdArgs, " ")) GinkgoWriter.Println(podmanBinary + " " + strings.Join(cmdArgs, " "))
c := exec.Command(podmanBinary, cmdArgs...) c := exec.Command(podmanBinary, cmdArgs...)
session, err := Start(c, GinkgoWriter, GinkgoWriter) session, err := Start(c, GinkgoWriter, GinkgoWriter)
if err != nil { if err != nil {
@ -164,7 +162,6 @@ func runWrapper(podmanBinary string, cmdArgs []string, timeout time.Duration, wa
ms := machineSession{session} ms := machineSession{session}
if wait { if wait {
ms.waitWithTimeout(timeout) ms.waitWithTimeout(timeout)
fmt.Println("output:", ms.outputToString())
} }
return &ms, nil return &ms, nil
} }

View File

@ -61,7 +61,7 @@ var _ = BeforeSuite(func() {
if err := machine.DownloadVMImage(getMe, suiteImageName, fqImageName+".xz"); err != nil { if err := machine.DownloadVMImage(getMe, suiteImageName, fqImageName+".xz"); err != nil {
Fail(fmt.Sprintf("unable to download machine image: %q", err)) Fail(fmt.Sprintf("unable to download machine image: %q", err))
} }
fmt.Println("Download took: ", time.Since(now).String()) GinkgoWriter.Println("Download took: ", time.Since(now).String())
if err := machine.Decompress(fqImageName+".xz", fqImageName); err != nil { if err := machine.Decompress(fqImageName+".xz", fqImageName); err != nil {
Fail(fmt.Sprintf("unable to decompress image file: %q", err)) Fail(fmt.Sprintf("unable to decompress image file: %q", err))
} }
@ -71,10 +71,7 @@ var _ = BeforeSuite(func() {
} }
}) })
var _ = SynchronizedAfterSuite(func() {}, var _ = SynchronizedAfterSuite(func() {}, func() {})
func() {
fmt.Println("After")
})
func setup() (string, *machineTestBuilder) { func setup() (string, *machineTestBuilder) {
// Set TMPDIR if this needs a new directory // Set TMPDIR if this needs a new directory
@ -127,7 +124,7 @@ func teardown(origHomeDir string, testDir string, mb *machineTestBuilder) {
r := new(rmMachine) r := new(rmMachine)
for _, name := range mb.names { for _, name := range mb.names {
if _, err := mb.setName(name).setCmd(r.withForce()).run(); err != nil { if _, err := mb.setName(name).setCmd(r.withForce()).run(); err != nil {
fmt.Printf("error occurred rm'ing machine: %q\n", err) GinkgoWriter.Printf("error occurred rm'ing machine: %q\n", err)
} }
} }
if err := machine.GuardedRemoveAll(testDir); err != nil { if err := machine.GuardedRemoveAll(testDir); err != nil {