summaryrefslogtreecommitdiff
path: root/test/e2e/libpod_suite_test.go
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2018-10-04 12:34:49 -0700
committerGitHub <noreply@github.com>2018-10-04 12:34:49 -0700
commit06a959f74ab4f23d5a789d03de4b2b73a3d53dc6 (patch)
tree42e0437cd91aae4b53cd769401d7becd2309feb6 /test/e2e/libpod_suite_test.go
parent3c31e176c7dfce3c86a45ff4750f740a5f8f9321 (diff)
parentdc987af0b0146ec5fd2026ca8db403806c3425df (diff)
downloadpodman-06a959f74ab4f23d5a789d03de4b2b73a3d53dc6.tar.gz
podman-06a959f74ab4f23d5a789d03de4b2b73a3d53dc6.tar.bz2
podman-06a959f74ab4f23d5a789d03de4b2b73a3d53dc6.zip
Merge pull request #469 from adrianreber/master
Add support to checkpoint/restore containers
Diffstat (limited to 'test/e2e/libpod_suite_test.go')
-rw-r--r--test/e2e/libpod_suite_test.go37
1 files changed, 37 insertions, 0 deletions
diff --git a/test/e2e/libpod_suite_test.go b/test/e2e/libpod_suite_test.go
index d521632d7..a032b0e88 100644
--- a/test/e2e/libpod_suite_test.go
+++ b/test/e2e/libpod_suite_test.go
@@ -2,6 +2,7 @@ package integration
import (
"bufio"
+ "bytes"
"context"
"encoding/json"
"fmt"
@@ -64,6 +65,7 @@ type PodmanTest struct {
TempDir string
CgroupManager string
Host HostOS
+ CriuBinary string
}
// HostOS is a simple struct for the test os
@@ -164,6 +166,7 @@ func PodmanCreate(tempDir string) PodmanTest {
runCBinary = "/usr/bin/runc"
}
+ criuBinary := "/usr/sbin/criu"
CNIConfigDir := "/etc/cni/net.d"
p := PodmanTest{
@@ -179,6 +182,7 @@ func PodmanCreate(tempDir string) PodmanTest {
TempDir: tempDir,
CgroupManager: cgroupManager,
Host: host,
+ CriuBinary: criuBinary,
}
// Setup registries.conf ENV variable
@@ -678,6 +682,39 @@ func (p *PodmanTest) setRegistriesConfigEnv(b []byte) {
ioutil.WriteFile(outfile, b, 0644)
}
+func (p *PodmanTest) isCriuAtLeast(version int) (bool, error) {
+ cmd := exec.Command(p.CriuBinary, "-V")
+ var out bytes.Buffer
+ cmd.Stdout = &out
+ err := cmd.Run()
+ if err != nil {
+ return false, err
+ }
+
+ var x int
+ var y int
+ var z int
+
+ fmt.Sscanf(out.String(), "Version: %d.%d.%d", &x, &y, &z)
+
+ if strings.Contains(out.String(), "GitID") {
+ // If CRIU is built from git it contains a git ID.
+ // If that is the case, increase minor by one as this
+ // could mean we are running a development version.
+ y = y + 1
+ }
+
+ parsed_version := x*10000 + y*100 + z
+
+ fmt.Println(parsed_version)
+
+ if parsed_version >= version {
+ return false, nil
+ } else {
+ return true, nil
+ }
+}
+
func resetRegistriesConfigEnv() {
os.Setenv("REGISTRIES_CONFIG_PATH", "")
}