enable linter for pkg/machine/e2e

Rename all files to _test.go and rename the package to e2e_test. This
makes the linter less strict about things like dot imports.

Add some unused nolint directives to silence some warnings, these can be
used to find untested options so someone could add tests for them.

Fixes #14996

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
This commit is contained in:
Paul Holzinger
2022-07-21 11:36:32 +02:00
parent 04ed519e9d
commit ee35ce86d0
23 changed files with 55 additions and 68 deletions

View File

@ -9,9 +9,9 @@ BUILD_TAGS[abi]="${BUILD_TAGS[default]},systemd"
BUILD_TAGS[tunnel]="${BUILD_TAGS[default]},remote"
declare -A SKIP_DIRS
SKIP_DIRS[abi]="pkg/machine/e2e"
SKIP_DIRS[abi]=""
# TODO: add "remote" build tag to pkg/api
SKIP_DIRS[tunnel]="pkg/api,pkg/machine/e2e"
SKIP_DIRS[tunnel]="pkg/api"
[[ $1 == run ]] && shift

View File

@ -1,4 +1,4 @@
package e2e
package e2e_test
import (
. "github.com/onsi/ginkgo"
@ -20,7 +20,7 @@ var _ = Describe("run basic podman commands", func() {
})
It("Basic ops", func() {
name := randomString(12)
name := randomString()
i := new(initMachine)
session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath).withNow()).run()
Expect(err).To(BeNil())

View File

@ -1,8 +1,7 @@
package e2e
package e2e_test
type basicMachine struct {
args []string
cmd []string
}
func (s basicMachine) buildCmd(m *machineTestBuilder) []string {

View File

@ -1,4 +1,4 @@
package e2e
package e2e_test
type infoMachine struct {
format string

View File

@ -1,4 +1,4 @@
package e2e
package e2e_test
import (
"strconv"
@ -25,7 +25,7 @@ type initMachine struct {
memory *uint
now bool
timezone string
rootful bool
rootful bool //nolint:unused,structcheck
volumes []string
cmd []string
@ -71,7 +71,7 @@ func (i *initMachine) withDiskSize(size uint) *initMachine {
return i
}
func (i *initMachine) withIgnitionPath(path string) *initMachine {
func (i *initMachine) withIgnitionPath(path string) *initMachine { //nolint:unused
i.ignitionPath = path
return i
}

View File

@ -1,4 +1,4 @@
package e2e
package e2e_test
type inspectMachine struct {
/*

View File

@ -1,4 +1,4 @@
package e2e
package e2e_test
type listMachine struct {
/*

View File

@ -1,4 +1,4 @@
package e2e
package e2e_test
type rmMachine struct {
/*
@ -40,17 +40,17 @@ func (i *rmMachine) withForce() *rmMachine {
return i
}
func (i *rmMachine) withSaveIgnition() *rmMachine {
func (i *rmMachine) withSaveIgnition() *rmMachine { //nolint:unused
i.saveIgnition = true
return i
}
func (i *rmMachine) withSaveImage() *rmMachine {
func (i *rmMachine) withSaveImage() *rmMachine { //nolint:unused
i.saveImage = true
return i
}
func (i *rmMachine) withSaveKeys() *rmMachine {
func (i *rmMachine) withSaveKeys() *rmMachine { //nolint:unused
i.saveKeys = true
return i
}

View File

@ -1,4 +1,4 @@
package e2e
package e2e_test
import (
"strconv"

View File

@ -1,14 +1,12 @@
package e2e
package e2e_test
type sshMachine struct {
/*
--username string Username to use when ssh-ing into the VM.
*/
username string
username string //nolint:unused
sshCommand []string
cmd []string
}
func (s sshMachine) buildCmd(m *machineTestBuilder) []string {
@ -22,7 +20,7 @@ func (s sshMachine) buildCmd(m *machineTestBuilder) []string {
return cmd
}
func (s *sshMachine) withUsername(name string) *sshMachine {
func (s *sshMachine) withUsername(name string) *sshMachine { //nolint:unused
s.username = name
return s
}

View File

@ -1,10 +1,9 @@
package e2e
package e2e_test
type startMachine struct {
/*
No command line args other than a machine vm name (also not required)
*/
cmd []string
}
func (s startMachine) buildCmd(m *machineTestBuilder) []string {

View File

@ -1,10 +1,9 @@
package e2e
package e2e_test
type stopMachine struct {
/*
No command line args other than a machine vm name (also not required)
*/
cmd []string
}
func (s stopMachine) buildCmd(m *machineTestBuilder) []string {

View File

@ -1,4 +1,4 @@
package e2e
package e2e_test
import (
"encoding/json"
@ -10,13 +10,11 @@ import (
"time"
"github.com/containers/podman/v4/pkg/machine"
"github.com/containers/podman/v4/pkg/machine/qemu"
"github.com/containers/podman/v4/pkg/util"
"github.com/containers/storage/pkg/stringid"
. "github.com/onsi/ginkgo" //nolint:golint,stylecheck
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/onsi/gomega/gexec"
. "github.com/onsi/gomega/gexec" //nolint:golint,stylecheck
. "github.com/onsi/gomega/gexec"
)
var originalHomeDir = os.Getenv("HOME")
@ -36,7 +34,7 @@ type MachineTestBuilder interface {
run() (*machineSession, error)
}
type machineSession struct {
*gexec.Session
*Session
}
type machineTestBuilder struct {
@ -47,10 +45,6 @@ type machineTestBuilder struct {
podmanBinary string
timeout time.Duration
}
type qemuMachineInspectInfo struct {
State machine.Status
VM qemu.MachineVM
}
// waitWithTimeout waits for a command to complete for a given
// number of seconds
@ -121,7 +115,7 @@ func (m *machineTestBuilder) setCmd(mc machineCommand) *machineTestBuilder {
// If no name for the machine exists, we set a random name.
if !util.StringInSlice(m.name, m.names) {
if len(m.name) < 1 {
m.name = randomString(12)
m.name = randomString()
}
m.names = append(m.names, m.name)
}
@ -136,10 +130,10 @@ func (m *machineTestBuilder) setTimeout(timeout time.Duration) *machineTestBuild
// toQemuInspectInfo is only for inspecting qemu machines. Other providers will need
// to make their own.
func (mb *machineTestBuilder) toQemuInspectInfo() ([]machine.InspectInfo, int, error) {
func (m *machineTestBuilder) toQemuInspectInfo() ([]machine.InspectInfo, int, error) {
args := []string{"machine", "inspect"}
args = append(args, mb.names...)
session, err := runWrapper(mb.podmanBinary, args, defaultTimeout, true)
args = append(args, m.names...)
session, err := runWrapper(m.podmanBinary, args, defaultTimeout, true)
if err != nil {
return nil, -1, err
}
@ -175,9 +169,7 @@ func runWrapper(podmanBinary string, cmdArgs []string, timeout time.Duration, wa
return &ms, nil
}
func (m *machineTestBuilder) init() {}
// randomString returns a string of given length composed of random characters
func randomString(n int) string {
func randomString() string {
return stringid.GenerateRandomID()[0:12]
}

View File

@ -1,4 +1,4 @@
package e2e
package e2e_test
import (
"github.com/containers/podman/v4/cmd/podman/machine"

View File

@ -1,4 +1,4 @@
package e2e
package e2e_test
import (
"io/ioutil"
@ -78,7 +78,7 @@ var _ = Describe("podman machine init", func() {
})
It("machine init with cpus, disk size, memory, timezone", func() {
name := randomString(12)
name := randomString()
i := new(initMachine)
session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath).withCPUs(2).withDiskSize(102).withMemory(4000).withTimezone("Pacific/Honolulu")).run()
Expect(err).To(BeNil())
@ -130,7 +130,7 @@ var _ = Describe("podman machine init", func() {
mount := tmpDir + ":/testmountdir"
defer os.RemoveAll(tmpDir)
name := randomString(12)
name := randomString()
i := new(initMachine)
session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath).withVolume(mount)).run()
Expect(err).To(BeNil())

View File

@ -1,4 +1,4 @@
package e2e
package e2e_test
import (
"strings"
@ -52,15 +52,15 @@ var _ = Describe("podman machine stop", func() {
})
It("inspect with go format", func() {
name := randomString(12)
name := randomString()
i := new(initMachine)
session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath)).run()
Expect(err).To(BeNil())
Expect(session).To(Exit(0))
// regular inspect should
inspectJson := new(inspectMachine)
inspectSession, err := mb.setName(name).setCmd(inspectJson).run()
inspectJSON := new(inspectMachine)
inspectSession, err := mb.setName(name).setCmd(inspectJSON).run()
Expect(err).To(BeNil())
Expect(inspectSession).To(Exit(0))

View File

@ -1,4 +1,4 @@
package e2e
package e2e_test
import (
"strings"
@ -45,8 +45,8 @@ var _ = Describe("podman machine list", func() {
It("list machines with quiet or noheading", func() {
// Random names for machines to test list
name1 := randomString(12)
name2 := randomString(12)
name1 := randomString()
name2 := randomString()
list := new(listMachine)
firstList, err := mb.setCmd(list.withQuiet()).run()
@ -109,7 +109,7 @@ var _ = Describe("podman machine list", func() {
It("list with --format", func() {
// Random names for machines to test list
name1 := randomString(12)
name1 := randomString()
i := new(initMachine)
session, err := mb.setName(name1).setCmd(i.withImagePath(mb.imagePath)).run()

View File

@ -1,4 +1,4 @@
package e2e
package e2e_test
import (
"fmt"

View File

@ -1,4 +1,4 @@
package e2e
package e2e_test
import (
. "github.com/onsi/ginkgo"

View File

@ -1,4 +1,4 @@
package e2e
package e2e_test
import (
"runtime"
@ -22,7 +22,7 @@ var _ = Describe("podman machine set", func() {
})
It("set machine cpus, disk, memory", func() {
name := randomString(12)
name := randomString()
i := new(initMachine)
session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath)).run()
Expect(err).To(BeNil())
@ -75,7 +75,7 @@ var _ = Describe("podman machine set", func() {
})
It("no settings should change if no flags", func() {
name := randomString(12)
name := randomString()
i := new(initMachine)
session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath)).run()
Expect(err).To(BeNil())

View File

@ -1,4 +1,4 @@
package e2e
package e2e_test
import (
. "github.com/onsi/ginkgo"
@ -20,17 +20,17 @@ var _ = Describe("podman machine ssh", func() {
})
It("bad machine name", func() {
name := randomString(12)
name := randomString()
ssh := sshMachine{}
session, err := mb.setName(name).setCmd(ssh).run()
Expect(err).To(BeNil())
Expect(session).To(Exit(125))
// TODO seems like stderr is not being returned; re-enabled when fixed
//Expect(session.outputToString()).To(ContainSubstring("not exist"))
// Expect(session.outputToString()).To(ContainSubstring("not exist"))
})
It("ssh to non-running machine", func() {
name := randomString(12)
name := randomString()
i := new(initMachine)
session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath)).run()
Expect(err).To(BeNil())
@ -40,12 +40,12 @@ var _ = Describe("podman machine ssh", func() {
sshSession, err := mb.setName(name).setCmd(ssh).run()
Expect(err).To(BeNil())
// TODO seems like stderr is not being returned; re-enabled when fixed
//Expect(sshSession.outputToString()).To(ContainSubstring("is not running"))
// Expect(sshSession.outputToString()).To(ContainSubstring("is not running"))
Expect(sshSession).To(Exit(125))
})
It("ssh to running machine and check os-type", func() {
name := randomString(12)
name := randomString()
i := new(initMachine)
session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath).withNow()).run()
Expect(err).To(BeNil())

View File

@ -1,4 +1,4 @@
package e2e
package e2e_test
import (
"github.com/containers/podman/v4/pkg/machine"

View File

@ -1,4 +1,4 @@
package e2e
package e2e_test
import (
. "github.com/onsi/ginkgo"