package main
import (
- "flag"
"os"
"os/exec"
- "path/filepath"
"testing"
"gopkg.in/check.v1"
func init() {
os.Args = append(os.Args, "-test.timeout=30m") // kludge
-
- // This enables a hack to speed up repeated tests: hit "docker
- // commit --pause {containername} checkpointtag" after the
- // test container has downloaded/compiled some stuff, then run
- // tests with "-test.buildimage=checkpointtag" next time to
- // retry/resume/update from that point.
- flag.StringVar(&buildimage, "test.buildimage", "debian:10", "docker image to use when running buildpackage")
}
type BuildSuite struct{}
}
tmpdir := c.MkDir()
defer os.RemoveAll(tmpdir)
-
- err := os.Mkdir(tmpdir+"/pkg", 0755)
- c.Assert(err, check.IsNil)
- err = os.Mkdir(tmpdir+"/bin", 0755)
+ err := os.Chmod(tmpdir, 0755)
c.Assert(err, check.IsNil)
- cmd := exec.Command("go", "install")
- cmd.Env = append(append([]string(nil), os.Environ()...), "GOPATH="+tmpdir)
- cmd.Stdout = os.Stdout
+ cmd := exec.Command("go", "run", ".",
+ "build",
+ "-package-dir", tmpdir,
+ "-package-version", "1.2.3~rc4",
+ "-source", "../..",
+ )
+ cmd.Stdout = os.Stderr
cmd.Stderr = os.Stderr
err = cmd.Run()
- c.Assert(err, check.IsNil)
+ c.Check(err, check.IsNil)
- srctree, err := filepath.Abs("../..")
+ fi, err := os.Stat(tmpdir + "/arvados-server-easy_1.2.3~rc4_amd64.deb")
c.Assert(err, check.IsNil)
+ c.Logf("%#v", fi)
- cmd = exec.Command("docker", "run", "--rm",
- "-v", tmpdir+"/pkg:/pkg",
- "-v", tmpdir+"/bin/arvados-package:/arvados-package:ro",
- "-v", srctree+":/usr/local/src/arvados:ro",
- buildimage,
- "/arvados-package", "build",
- "-package-version", "0.9.99",
- "-source", "/usr/local/src/arvados",
- "-output-directory", "/pkg")
- cmd.Stdout = os.Stdout
+ buf, _ := exec.Command("ls", "-l", tmpdir).CombinedOutput()
+ c.Logf("%s", buf)
+
+ cmd = exec.Command("go", "run", ".",
+ "testinstall",
+ "-package-dir", tmpdir,
+ "-package-version", "1.2.3~rc4",
+ )
+ cmd.Stdout = os.Stderr
cmd.Stderr = os.Stderr
err = cmd.Run()
- c.Assert(err, check.IsNil)
+ c.Check(err, check.IsNil)
- fi, err := os.Stat(tmpdir + "/pkg/arvados-server-easy_0.9.99_amd64.deb")
- c.Assert(err, check.IsNil)
- c.Logf("%#v", fi)
+ err = os.RemoveAll(tmpdir)
+ c.Check(err, check.IsNil)
}