github.com/hanks177/podman/v4@v4.1.3-0.20220613032544-16d90015bc83/pkg/machine/e2e/set_test.go (about)

     1  package e2e
     2  
     3  import (
     4  	. "github.com/onsi/ginkgo"
     5  	. "github.com/onsi/gomega"
     6  	. "github.com/onsi/gomega/gexec"
     7  )
     8  
     9  var _ = Describe("podman machine set", func() {
    10  	var (
    11  		mb      *machineTestBuilder
    12  		testDir string
    13  	)
    14  
    15  	BeforeEach(func() {
    16  		testDir, mb = setup()
    17  	})
    18  	AfterEach(func() {
    19  		teardown(originalHomeDir, testDir, mb)
    20  	})
    21  
    22  	It("set machine cpus, disk, memory", func() {
    23  		name := randomString(12)
    24  		i := new(initMachine)
    25  		session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath)).run()
    26  		Expect(err).To(BeNil())
    27  		Expect(session).To(Exit(0))
    28  
    29  		set := setMachine{}
    30  		setSession, err := mb.setName(name).setCmd(set.withCPUs(2).withDiskSize(102).withMemory(4000)).run()
    31  		Expect(err).To(BeNil())
    32  		Expect(setSession).To(Exit(0))
    33  
    34  		// shrinking disk size is verboten
    35  		shrink, err := mb.setName(name).setCmd(set.withDiskSize(5)).run()
    36  		Expect(err).To(BeNil())
    37  		Expect(shrink).To(Exit(125))
    38  
    39  		s := new(startMachine)
    40  		startSession, err := mb.setCmd(s).run()
    41  		Expect(err).To(BeNil())
    42  		Expect(startSession).To(Exit(0))
    43  
    44  		sshCPU := sshMachine{}
    45  		CPUsession, err := mb.setName(name).setCmd(sshCPU.withSSHComand([]string{"lscpu", "|", "grep", "\"CPU(s):\"", "|", "head", "-1"})).run()
    46  		Expect(err).To(BeNil())
    47  		Expect(CPUsession).To(Exit(0))
    48  		Expect(CPUsession.outputToString()).To(ContainSubstring("2"))
    49  
    50  		sshDisk := sshMachine{}
    51  		diskSession, err := mb.setName(name).setCmd(sshDisk.withSSHComand([]string{"sudo", "fdisk", "-l", "|", "grep", "Disk"})).run()
    52  		Expect(err).To(BeNil())
    53  		Expect(diskSession).To(Exit(0))
    54  		Expect(diskSession.outputToString()).To(ContainSubstring("102 GiB"))
    55  
    56  		sshMemory := sshMachine{}
    57  		memorySession, err := mb.setName(name).setCmd(sshMemory.withSSHComand([]string{"cat", "/proc/meminfo", "|", "numfmt", "--field", "2", "--from-unit=Ki", "--to-unit=Mi", "|", "sed", "'s/ kB/M/g'", "|", "grep", "MemTotal"})).run()
    58  		Expect(err).To(BeNil())
    59  		Expect(memorySession).To(Exit(0))
    60  		Expect(memorySession.outputToString()).To(ContainSubstring("3824"))
    61  
    62  		// Setting a running machine results in 125
    63  		runner, err := mb.setName(name).setCmd(set.withCPUs(4)).run()
    64  		Expect(err).To(BeNil())
    65  		Expect(runner).To(Exit(125))
    66  	})
    67  
    68  	It("no settings should change if no flags", func() {
    69  		name := randomString(12)
    70  		i := new(initMachine)
    71  		session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath)).run()
    72  		Expect(err).To(BeNil())
    73  		Expect(session).To(Exit(0))
    74  
    75  		set := setMachine{}
    76  		setSession, err := mb.setName(name).setCmd(&set).run()
    77  		Expect(err).To(BeNil())
    78  		Expect(setSession).To(Exit(0))
    79  
    80  		s := new(startMachine)
    81  		startSession, err := mb.setCmd(s).run()
    82  		Expect(err).To(BeNil())
    83  		Expect(startSession).To(Exit(0))
    84  
    85  		ssh2 := sshMachine{}
    86  		sshSession2, err := mb.setName(name).setCmd(ssh2.withSSHComand([]string{"lscpu", "|", "grep", "\"CPU(s):\"", "|", "head", "-1"})).run()
    87  		Expect(err).To(BeNil())
    88  		Expect(sshSession2).To(Exit(0))
    89  		Expect(sshSession2.outputToString()).To(ContainSubstring("1"))
    90  
    91  		ssh3 := sshMachine{}
    92  		sshSession3, err := mb.setName(name).setCmd(ssh3.withSSHComand([]string{"sudo", "fdisk", "-l", "|", "grep", "Disk"})).run()
    93  		Expect(err).To(BeNil())
    94  		Expect(sshSession3).To(Exit(0))
    95  		Expect(sshSession3.outputToString()).To(ContainSubstring("100 GiB"))
    96  	})
    97  
    98  })