Merge lp:~niemeyer/juju-core/fix-jujud-tests into lp:~juju/juju-core/trunk

Proposed by Gustavo Niemeyer
Status: Merged
Merged at revision: 583
Proposed branch: lp:~niemeyer/juju-core/fix-jujud-tests
Merge into: lp:~juju/juju-core/trunk
Diff against target: 196 lines (+27/-29)
3 files modified
cmd/jujud/provisioning_test.go (+10/-5)
cmd/jujud/unit_test.go (+3/-0)
cmd/jujud/upgrade_test.go (+14/-24)
To merge this branch: bzr merge lp:~niemeyer/juju-core/fix-jujud-tests
Reviewer Review Type Date Requested Status
The Go Language Gophers Pending
Review via email: mp+126536@code.launchpad.net

Description of the change

To post a comment you must log in.
Revision history for this message
Gustavo Niemeyer (niemeyer) wrote :
Download full text (7.1 KiB)

Reviewers: mp+126536_code.launchpad.net,

Message:
Please take a look.

Description:
cmd/jujud: fix all tests

https://code.launchpad.net/~niemeyer/juju-core/fix-jujud-tests/+merge/126536

(do not edit description out of merge proposal)

Please review this at https://codereview.appspot.com/6565052/

Affected files:
   A [revision details]
   M cmd/jujud/provisioning_test.go
   M cmd/jujud/unit_test.go
   M cmd/jujud/upgrade_test.go

Index: [revision details]
=== added file '[revision details]'
--- [revision details] 2012-01-01 00:00:00 +0000
+++ [revision details] 2012-01-01 00:00:00 +0000
@@ -0,0 +1,2 @@
+Old revision: <email address hidden>
+New revision: <email address hidden>

Index: cmd/jujud/provisioning_test.go
=== modified file 'cmd/jujud/provisioning_test.go'
--- cmd/jujud/provisioning_test.go 2012-09-25 23:40:11 +0000
+++ cmd/jujud/provisioning_test.go 2012-09-26 20:11:21 +0000
@@ -5,6 +5,7 @@
   "launchpad.net/juju-core/cmd"
   "launchpad.net/juju-core/environs/dummy"
   "launchpad.net/juju-core/juju/testing"
+ "launchpad.net/juju-core/state"
   "reflect"
   "time"
  )
@@ -56,7 +57,7 @@
   c.Assert(err, IsNil)
   units, err := s.Conn.AddUnits(svc, 1)
   c.Assert(err, IsNil)
- c.Check(opRecvTimeout(c, op, dummy.OpStartInstance{}), NotNil)
+ c.Check(s.opRecvTimeout(c, op, dummy.OpStartInstance{}), NotNil)

   // Wait for the instance id to show up in the state.
   id, err := units[0].AssignedMachineId()
@@ -64,7 +65,10 @@
   m, err := s.State.Machine(id)
   c.Assert(err, IsNil)
   w := m.Watch()
+ defer w.Stop()
   for _ = range w.Changes() {
+ err = m.Refresh()
+ c.Assert(err, IsNil)
    _, err := m.InstanceId()
    if state.IsNotFound(err) {
     continue
@@ -75,7 +79,7 @@
   err = units[0].OpenPort("tcp", 999)
   c.Assert(err, IsNil)

- c.Check(opRecvTimeout(c, op, dummy.OpOpenPorts{}), NotNil)
+ c.Check(s.opRecvTimeout(c, op, dummy.OpOpenPorts{}), NotNil)

   err = a.Stop()
   c.Assert(err, IsNil)
@@ -83,14 +87,15 @@
   select {
   case err := <-done:
    c.Assert(err, IsNil)
- case <-time.After(2 * time.Second):
+ case <-time.After(5 * time.Second):
    c.Fatalf("timed out waiting for agent to terminate")
   }
  }

  // opRecvTimeout waits for any of the given kinds of operation to
  // be received from ops, and times out if not.
-func opRecvTimeout(c *C, opc <-chan dummy.Operation,
kinds ...dummy.Operation) dummy.Operation {
+func (s *ProvisioningSuite) opRecvTimeout(c *C, opc <-chan
dummy.Operation, kinds ...dummy.Operation) dummy.Operation {
+ s.State.StartSync()
   for {
    select {
    case op := <-opc:
@@ -100,7 +105,7 @@
      }
     }
     c.Logf("discarding unknown event %#v", op)
- case <-time.After(2 * time.Second):
+ case <-time.After(5 * time.Second):
     c.Fatalf("time out wating for operation")
    }
   }

Index: cmd/jujud/unit_test.go
=== modified file 'cmd/jujud/unit_test.go'
--- cmd/jujud/unit_test.go 2012-09-13 20:32:50 +0000
+++ cmd/jujud/unit_test.go 2012-09-26 19:39:30 +0000
@@ -96,6 +96,9 @@
      continue
     case state.UnitStarted:
      c.Logf("started!")
+ case state.UnitDown:
+ s.State.StartSync()
+ c.Logf("unit i...

Read more...

Revision history for this message
William Reade (fwereade) wrote :
Revision history for this message
Gustavo Niemeyer (niemeyer) wrote :

*** Submitted:

cmd/jujud: fix all tests

R=fwereade
CC=
https://codereview.appspot.com/6565052

https://codereview.appspot.com/6565052/

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'cmd/jujud/provisioning_test.go'
2--- cmd/jujud/provisioning_test.go 2012-09-25 23:40:11 +0000
3+++ cmd/jujud/provisioning_test.go 2012-09-26 20:13:27 +0000
4@@ -5,6 +5,7 @@
5 "launchpad.net/juju-core/cmd"
6 "launchpad.net/juju-core/environs/dummy"
7 "launchpad.net/juju-core/juju/testing"
8+ "launchpad.net/juju-core/state"
9 "reflect"
10 "time"
11 )
12@@ -56,7 +57,7 @@
13 c.Assert(err, IsNil)
14 units, err := s.Conn.AddUnits(svc, 1)
15 c.Assert(err, IsNil)
16- c.Check(opRecvTimeout(c, op, dummy.OpStartInstance{}), NotNil)
17+ c.Check(s.opRecvTimeout(c, op, dummy.OpStartInstance{}), NotNil)
18
19 // Wait for the instance id to show up in the state.
20 id, err := units[0].AssignedMachineId()
21@@ -64,7 +65,10 @@
22 m, err := s.State.Machine(id)
23 c.Assert(err, IsNil)
24 w := m.Watch()
25+ defer w.Stop()
26 for _ = range w.Changes() {
27+ err = m.Refresh()
28+ c.Assert(err, IsNil)
29 _, err := m.InstanceId()
30 if state.IsNotFound(err) {
31 continue
32@@ -75,7 +79,7 @@
33 err = units[0].OpenPort("tcp", 999)
34 c.Assert(err, IsNil)
35
36- c.Check(opRecvTimeout(c, op, dummy.OpOpenPorts{}), NotNil)
37+ c.Check(s.opRecvTimeout(c, op, dummy.OpOpenPorts{}), NotNil)
38
39 err = a.Stop()
40 c.Assert(err, IsNil)
41@@ -83,14 +87,15 @@
42 select {
43 case err := <-done:
44 c.Assert(err, IsNil)
45- case <-time.After(2 * time.Second):
46+ case <-time.After(5 * time.Second):
47 c.Fatalf("timed out waiting for agent to terminate")
48 }
49 }
50
51 // opRecvTimeout waits for any of the given kinds of operation to
52 // be received from ops, and times out if not.
53-func opRecvTimeout(c *C, opc <-chan dummy.Operation, kinds ...dummy.Operation) dummy.Operation {
54+func (s *ProvisioningSuite) opRecvTimeout(c *C, opc <-chan dummy.Operation, kinds ...dummy.Operation) dummy.Operation {
55+ s.State.StartSync()
56 for {
57 select {
58 case op := <-opc:
59@@ -100,7 +105,7 @@
60 }
61 }
62 c.Logf("discarding unknown event %#v", op)
63- case <-time.After(2 * time.Second):
64+ case <-time.After(5 * time.Second):
65 c.Fatalf("time out wating for operation")
66 }
67 }
68
69=== modified file 'cmd/jujud/unit_test.go'
70--- cmd/jujud/unit_test.go 2012-09-13 20:32:50 +0000
71+++ cmd/jujud/unit_test.go 2012-09-26 20:13:27 +0000
72@@ -96,6 +96,9 @@
73 continue
74 case state.UnitStarted:
75 c.Logf("started!")
76+ case state.UnitDown:
77+ s.State.StartSync()
78+ c.Logf("unit is still down")
79 default:
80 c.Fatalf("unexpected status %s %s", st, info)
81 }
82
83=== modified file 'cmd/jujud/upgrade_test.go'
84--- cmd/jujud/upgrade_test.go 2012-09-17 11:21:13 +0000
85+++ cmd/jujud/upgrade_test.go 2012-09-26 20:13:27 +0000
86@@ -17,42 +17,30 @@
87 "time"
88 )
89
90-var _ = Suite(&upgraderSuite{})
91+var _ = Suite(&UpgraderSuite{})
92
93-type upgraderSuite struct {
94+type UpgraderSuite struct {
95 oldVersion version.Binary
96 testing.JujuConnSuite
97 }
98
99-func (s *upgraderSuite) SetUpTest(c *C) {
100+func (s *UpgraderSuite) SetUpTest(c *C) {
101 s.JujuConnSuite.SetUpTest(c)
102 s.oldVersion = version.Current
103 }
104
105-func (s *upgraderSuite) TearDownTest(c *C) {
106+func (s *UpgraderSuite) TearDownTest(c *C) {
107 version.Current = s.oldVersion
108 s.JujuConnSuite.TearDownTest(c)
109 }
110
111-func (s *upgraderSuite) TestUpgraderError(c *C) {
112- st, err := state.Open(s.StateInfo(c))
113- c.Assert(err, IsNil)
114- // We have no installed tools, so the logic should set the agent
115- // tools anyway, but with no URL.
116- u := startUpgrader(c, st, c.MkDir(), &state.Tools{Binary: version.Current})
117-
118- // Close the state under the watcher and check that the upgrader dies.
119- st.Close()
120- waitDeath(c, u, nil, "watcher: cannot get content of node.*")
121-}
122-
123-func (s *upgraderSuite) TestUpgraderStop(c *C) {
124+func (s *UpgraderSuite) TestUpgraderStop(c *C) {
125 u := startUpgrader(c, s.State, c.MkDir(), &state.Tools{Binary: version.Current})
126 err := u.Stop()
127 c.Assert(err, IsNil)
128 }
129
130-func (s *upgraderSuite) proposeVersion(c *C, vers version.Number, development bool) {
131+func (s *UpgraderSuite) proposeVersion(c *C, vers version.Number, development bool) {
132 cfg, err := s.State.EnvironConfig()
133 c.Assert(err, IsNil)
134 attrs := cfg.AllAttrs()
135@@ -64,7 +52,7 @@
136 c.Assert(err, IsNil)
137 }
138
139-func (s *upgraderSuite) uploadTools(c *C, vers version.Binary) *state.Tools {
140+func (s *UpgraderSuite) uploadTools(c *C, vers version.Binary) *state.Tools {
141 tgz := coretesting.TarGz(
142 coretesting.NewTarFile("juju", 0777, "juju contents "+vers.String()),
143 coretesting.NewTarFile("jujuc", 0777, "jujuc contents "+vers.String()),
144@@ -131,7 +119,7 @@
145 },
146 }
147
148-func (s *upgraderSuite) TestUpgrader(c *C) {
149+func (s *UpgraderSuite) TestUpgrader(c *C) {
150 dataDir, currentTools := s.primeTools(c, version.MustParseBinary("2.0.0-foo-bar"))
151 // Remove the tools from the storage so that we're sure that the
152 // uploader isn't trying to fetch them.
153@@ -171,8 +159,10 @@
154 }
155 if test.propose != "" {
156 s.proposeVersion(c, version.MustParse(test.propose), test.devVersion)
157+ s.State.StartSync()
158 }
159 if test.upgradeTo == "" {
160+ s.State.StartSync()
161 assertNothingHappens(c, upgraderDone)
162 } else {
163 tools := uploaded[version.MustParse(test.upgradeTo)]
164@@ -229,7 +219,7 @@
165 },
166 }
167
168-func (s *upgraderSuite) TestDelayedStop(c *C) {
169+func (s *UpgraderSuite) TestDelayedStop(c *C) {
170 defer dummy.SetStorageDelay(0)
171 dataDir, tools := s.primeTools(c, version.MustParseBinary("2.0.3-foo-bar"))
172 s.uploadTools(c, version.MustParseBinary("2.0.5-foo-bar"))
173@@ -259,12 +249,12 @@
174 }
175 }
176
177-func (s *upgraderSuite) poisonVersion(vers version.Binary) {
178+func (s *UpgraderSuite) poisonVersion(vers version.Binary) {
179 path := environs.ToolsStoragePath(vers)
180 dummy.Poison(s.Conn.Environ.Storage(), path, fmt.Errorf("poisoned file"))
181 }
182
183-func (s *upgraderSuite) removeVersion(c *C, vers version.Binary) {
184+func (s *UpgraderSuite) removeVersion(c *C, vers version.Binary) {
185 path := environs.ToolsStoragePath(vers)
186 err := s.Conn.Environ.Storage().Remove(path)
187 c.Assert(err, IsNil)
188@@ -272,7 +262,7 @@
189
190 // primeTools sets up the current version of the tools to vers and
191 // makes sure that they're available in the returned dataDir.
192-func (s *upgraderSuite) primeTools(c *C, vers version.Binary) (dataDir string, tools *state.Tools) {
193+func (s *UpgraderSuite) primeTools(c *C, vers version.Binary) (dataDir string, tools *state.Tools) {
194 dataDir = c.MkDir()
195 // Set up the current version and tools.
196 version.Current = vers

Subscribers

People subscribed via source and target branches