More Salt installer doc refactoring.
[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         } else if os.Getenv("ENABLE_DOCKER_TESTS") == "" {
33                 c.Skip("docker tests temporarily disabled if ENABLE_DOCKER_TESTS is not set, see https://dev.arvados.org/issues/15370#note-31")
34         }
35
36         tmpdir := c.MkDir()
37         defer os.RemoveAll(tmpdir)
38         err := os.Chmod(tmpdir, 0755)
39         c.Assert(err, check.IsNil)
40
41         cmd := exec.Command("go", "run", ".",
42                 "build",
43                 "-package-dir", tmpdir,
44                 "-package-version", "1.2.3~rc4",
45                 "-source", "../..",
46         )
47         cmd.Stdout = os.Stderr
48         cmd.Stderr = os.Stderr
49         err = cmd.Run()
50         c.Check(err, check.IsNil)
51
52         fi, err := os.Stat(tmpdir + "/arvados-server-easy_1.2.3~rc4_amd64.deb")
53         c.Assert(err, check.IsNil)
54         c.Logf("%#v", fi)
55
56         buf, _ := exec.Command("ls", "-l", tmpdir).CombinedOutput()
57         c.Logf("%s", buf)
58
59         cmd = exec.Command("go", "run", ".",
60                 "testinstall",
61                 "-package-dir", tmpdir,
62                 "-package-version", "1.2.3~rc4",
63         )
64         cmd.Stdout = os.Stderr
65         cmd.Stderr = os.Stderr
66         err = cmd.Run()
67         c.Check(err, check.IsNil)
68
69         err = os.RemoveAll(tmpdir)
70         c.Check(err, check.IsNil)
71 }