Merge branch '16306-arvados-easy-install'
[arvados.git] / cmd / arvados-package / build_test.go
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 package main
6
7 import (
8         "os"
9         "os/exec"
10         "testing"
11
12         "gopkg.in/check.v1"
13 )
14
15 var buildimage string
16
17 func init() {
18         os.Args = append(os.Args, "-test.timeout=30m") // kludge
19 }
20
21 type BuildSuite struct{}
22
23 var _ = check.Suite(&BuildSuite{})
24
25 func Test(t *testing.T) { check.TestingT(t) }
26
27 func (s *BuildSuite) TestBuildAndInstall(c *check.C) {
28         if testing.Short() {
29                 c.Skip("skipping docker tests in short mode")
30         } else if _, err := exec.Command("docker", "info").CombinedOutput(); err != nil {
31                 c.Skip("skipping docker tests because docker is not available")
32         }
33         tmpdir := c.MkDir()
34         defer os.RemoveAll(tmpdir)
35         err := os.Chmod(tmpdir, 0755)
36         c.Assert(err, check.IsNil)
37
38         cmd := exec.Command("go", "run", ".",
39                 "build",
40                 "-package-dir", tmpdir,
41                 "-package-version", "1.2.3~rc4",
42                 "-source", "../..",
43         )
44         cmd.Stdout = os.Stderr
45         cmd.Stderr = os.Stderr
46         err = cmd.Run()
47         c.Check(err, check.IsNil)
48
49         fi, err := os.Stat(tmpdir + "/arvados-server-easy_1.2.3~rc4_amd64.deb")
50         c.Assert(err, check.IsNil)
51         c.Logf("%#v", fi)
52
53         buf, _ := exec.Command("ls", "-l", tmpdir).CombinedOutput()
54         c.Logf("%s", buf)
55
56         cmd = exec.Command("go", "run", ".",
57                 "testinstall",
58                 "-package-dir", tmpdir,
59                 "-package-version", "1.2.3~rc4",
60         )
61         cmd.Stdout = os.Stderr
62         cmd.Stderr = os.Stderr
63         err = cmd.Run()
64         c.Check(err, check.IsNil)
65
66         err = os.RemoveAll(tmpdir)
67         c.Check(err, check.IsNil)
68 }