~wwitzel3/juju-core/009-ha-rsyslog-api

« back to all changes in this revision

Viewing changes to container/lxc/lxc_test.go

  • Committer: Wayne Witzel III
  • Date: 2014-05-22 13:23:37 UTC
  • mfrom: (2743.1.10 ha-rsyslog-api)
  • Revision ID: wayne.witzel@canonical.com-20140522132337-m9py79a81mjdm9su
merge mfoord

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
        containertesting "launchpad.net/juju-core/container/testing"
27
27
        instancetest "launchpad.net/juju-core/instance/testing"
28
28
        "launchpad.net/juju-core/juju/osenv"
29
 
        "launchpad.net/juju-core/testing/testbase"
 
29
        coretesting "launchpad.net/juju-core/testing"
30
30
)
31
31
 
32
32
func Test(t *stdtesting.T) {
58
58
        s.TestSuite.TearDownTest(c)
59
59
}
60
60
 
 
61
func (t *LxcSuite) TestPreferFastLXC(c *gc.C) {
 
62
        for i, test := range []struct {
 
63
                message        string
 
64
                releaseVersion string
 
65
                expected       bool
 
66
        }{{
 
67
                message: "missing release file",
 
68
        }, {
 
69
                message:        "precise release",
 
70
                releaseVersion: "12.04",
 
71
        }, {
 
72
                message:        "trusty release",
 
73
                releaseVersion: "14.04",
 
74
                expected:       true,
 
75
        }, {
 
76
                message:        "unstable unicorn",
 
77
                releaseVersion: "14.10",
 
78
                expected:       true,
 
79
        }, {
 
80
                message:        "lucid",
 
81
                releaseVersion: "10.04",
 
82
        }} {
 
83
                c.Logf("%v: %v", i, test.message)
 
84
                value := lxc.PreferFastLXC(test.releaseVersion)
 
85
                c.Assert(value, gc.Equals, test.expected)
 
86
        }
 
87
}
 
88
 
 
89
func (s *LxcSuite) TestContainerManagerLXCClone(c *gc.C) {
 
90
        type test struct {
 
91
                releaseVersion string
 
92
                useClone       string
 
93
                expectClone    bool
 
94
        }
 
95
        tests := []test{{
 
96
                releaseVersion: "12.04",
 
97
                useClone:       "true",
 
98
                expectClone:    true,
 
99
        }, {
 
100
                releaseVersion: "14.04",
 
101
                expectClone:    true,
 
102
        }, {
 
103
                releaseVersion: "12.04",
 
104
                useClone:       "false",
 
105
        }, {
 
106
                releaseVersion: "14.04",
 
107
                useClone:       "false",
 
108
        }}
 
109
 
 
110
        for i, test := range tests {
 
111
                c.Logf("test %d: %v", i, test)
 
112
                s.PatchValue(lxc.ReleaseVersion, func() string { return test.releaseVersion })
 
113
 
 
114
                mgr, err := lxc.NewContainerManager(container.ManagerConfig{
 
115
                        container.ConfigName: "juju",
 
116
                        "use-clone":          test.useClone,
 
117
                })
 
118
                c.Assert(err, gc.IsNil)
 
119
                c.Check(lxc.GetCreateWithCloneValue(mgr), gc.Equals, test.expectClone)
 
120
        }
 
121
}
 
122
 
61
123
func (s *LxcSuite) TestContainerDirFilesystem(c *gc.C) {
62
124
        for i, test := range []struct {
63
125
                message    string
93
155
        params := container.ManagerConfig{
94
156
                container.ConfigName: name,
95
157
        }
96
 
        if s.useClone {
97
 
                params["use-clone"] = "true"
98
 
        }
 
158
        // Need to ensure use-clone is explicitly set to avoid it
 
159
        // being set based on the OS version.
 
160
        params["use-clone"] = fmt.Sprintf("%v", s.useClone)
99
161
        if s.useAUFS {
100
162
                params["use-aufs"] = "true"
101
163
        }
385
447
}
386
448
 
387
449
type NetworkSuite struct {
388
 
        testbase.LoggingSuite
 
450
        coretesting.BaseSuite
389
451
}
390
452
 
391
453
var _ = gc.Suite(&NetworkSuite{})