mirror of
https://github.com/containers/podman.git
synced 2025-06-23 02:18:13 +08:00
tests: use existing CRIU version check
Do not re-implement the CRIU version check in the test suite, use it from libpod/pkg/criu. Signed-off-by: Adrian Reber <areber@redhat.com>
This commit is contained in:

committed by
Adrian Reber

parent
8f6fb79ba8
commit
a14155917b
@ -4,6 +4,7 @@ import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/containers/libpod/pkg/criu"
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
)
|
||||
@ -22,10 +23,8 @@ var _ = Describe("Podman checkpoint", func() {
|
||||
}
|
||||
podmanTest = PodmanCreate(tempdir)
|
||||
podmanTest.RestoreAllArtifacts()
|
||||
// At least CRIU 3.11 is needed
|
||||
skip, err := podmanTest.isCriuAtLeast(31100)
|
||||
if err != nil || skip {
|
||||
Skip("CRIU missing or too old.")
|
||||
if !criu.CheckForCriu() {
|
||||
Skip("CRIU is missing or too old.")
|
||||
}
|
||||
})
|
||||
|
||||
|
@ -2,7 +2,6 @@ package integration
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
@ -65,7 +64,6 @@ type PodmanTest struct {
|
||||
TempDir string
|
||||
CgroupManager string
|
||||
Host HostOS
|
||||
CriuBinary string
|
||||
}
|
||||
|
||||
// HostOS is a simple struct for the test os
|
||||
@ -166,7 +164,6 @@ func PodmanCreate(tempDir string) PodmanTest {
|
||||
runCBinary = "/usr/bin/runc"
|
||||
}
|
||||
|
||||
criuBinary := "/usr/sbin/criu"
|
||||
CNIConfigDir := "/etc/cni/net.d"
|
||||
|
||||
p := PodmanTest{
|
||||
@ -182,7 +179,6 @@ func PodmanCreate(tempDir string) PodmanTest {
|
||||
TempDir: tempDir,
|
||||
CgroupManager: cgroupManager,
|
||||
Host: host,
|
||||
CriuBinary: criuBinary,
|
||||
}
|
||||
|
||||
// Setup registries.conf ENV variable
|
||||
@ -682,39 +678,6 @@ 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", "")
|
||||
}
|
||||
|
Reference in New Issue
Block a user