diff --git a/scripts/integration-test b/scripts/integration-test index 356e85a7..c001c5cd 100755 --- a/scripts/integration-test +++ b/scripts/integration-test @@ -14,4 +14,4 @@ if [ ! -e ../dist/artifacts/initrd ]; then ../scripts/dev fi -go test -timeout 20m +go test -timeout 30m diff --git a/tests/common_test.go b/tests/common_test.go index 8abfa5e7..f3ee93f4 100644 --- a/tests/common_test.go +++ b/tests/common_test.go @@ -56,7 +56,23 @@ func (s *QemuSuite) RunQemu(additionalArgs ...string) error { } runArgs = append(runArgs, additionalArgs...) - s.qemuCmd = exec.Command(s.runCommand, runArgs...) + return s.runQemu(runArgs...) +} + +func (s *QemuSuite) RunQemuInstalled(additionalArgs ...string) error { + runArgs := []string{ + "--qemu", + "--no-rebuild", + "--no-rm-usr", + "--installed", + } + runArgs = append(runArgs, additionalArgs...) + + return s.runQemu(runArgs...) +} + +func (s *QemuSuite) runQemu(args ...string) error { + s.qemuCmd = exec.Command(s.runCommand, args...) s.qemuCmd.Stdout = os.Stdout s.qemuCmd.Stderr = os.Stderr if err := s.qemuCmd.Start(); err != nil { diff --git a/tests/install_test.go b/tests/install_test.go deleted file mode 100644 index a911a2d3..00000000 --- a/tests/install_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package integration - -import ( - "fmt" - - . "gopkg.in/check.v1" -) - -func (s *QemuSuite) TestInstall(c *C) { - err := s.RunQemu("--no-format") - c.Assert(err, IsNil) - - s.LoadInstallerImage(c) - - s.CheckCall(c, fmt.Sprintf(` -sudo mkfs.ext4 /dev/vda -sudo ros install -f --no-reboot -d /dev/vda -i rancher/os:%s%s`, Version, Suffix)) -} diff --git a/tests/upgrade_test.go b/tests/upgrade_test.go new file mode 100644 index 00000000..d1067c2e --- /dev/null +++ b/tests/upgrade_test.go @@ -0,0 +1,26 @@ +package integration + +import ( + "fmt" + + . "gopkg.in/check.v1" +) + +func (s *QemuSuite) TestUpgrade(c *C) { + err := s.RunQemuInstalled() + c.Assert(err, IsNil) + + s.CheckCall(c, ` +set -ex +sudo ros os upgrade -i rancher/os:v0.5.0 --force --no-reboot`) + + s.Reboot(c) + + s.CheckCall(c, "sudo ros -v | grep v0.5.0") + s.LoadInstallerImage(c) + s.CheckCall(c, fmt.Sprintf("sudo ros os upgrade -i rancher/os:%s%s --force --no-reboot", Version, Suffix)) + + s.Reboot(c) + + s.CheckCall(c, fmt.Sprintf("sudo ros -v | grep %s", Version)) +}