Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(3704)

Side by Side Diff: retry_test.go

Issue 5699093: zookeeper: make Conn.Close safe to call concurrently with other operations.
Patch Set: zookeeper: make Conn.Close safe to call concurrently with other operations. Created 12 years ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « close_test.go ('k') | suite_test.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 package zookeeper_test 1 package zookeeper_test
2 2
3 import ( 3 import (
4 "errors" 4 "errors"
5 . "launchpad.net/gocheck" 5 . "launchpad.net/gocheck"
6 zk "launchpad.net/gozk/zookeeper" 6 zk "launchpad.net/gozk/zookeeper"
7 ) 7 )
8 8
9 func (s *S) TestRetryChangeCreating(c *C) { 9 func (s *S) TestRetryChangeCreating(c *C) {
10 conn, _ := s.init(c) 10 conn, _ := s.init(c)
11 11
12 err := conn.RetryChange("/test", zk.EPHEMERAL, zk.WorldACL(zk.PERM_ALL), 12 err := conn.RetryChange("/test", zk.EPHEMERAL, zk.WorldACL(zk.PERM_ALL),
13 func(data string, stat *zk.Stat) (string, error) { 13 func(data string, stat *zk.Stat) (string, error) {
14 c.Assert(data, Equals, "") 14 c.Assert(data, Equals, "")
15 c.Assert(stat, IsNil) 15 c.Assert(stat, IsNil)
16 return "new", nil 16 return "new", nil
17 }) 17 })
18 c.Assert(err, IsNil) 18 c.Assert(err, IsNil)
19 19
20 data, stat, err := conn.Get("/test") 20 data, stat, err := conn.Get("/test")
21 c.Assert(err, IsNil) 21 c.Assert(err, IsNil)
22 c.Assert(stat, NotNil) 22 c.Assert(stat, NotNil)
23 c.Assert(stat.Version(), Equals, 0) 23 c.Assert(stat.Version(), Equals, 0)
24 c.Assert(data, Equals, "new") 24 c.Assert(data, Equals, "new")
25 25
26 acl, _, err := conn.ACL("/test") 26 acl, _, err := conn.ACL("/test")
27 c.Assert(err, IsNil) 27 c.Assert(err, IsNil)
28 » c.Assert(acl, Equals, zk.WorldACL(zk.PERM_ALL)) 28 » c.Assert(acl, DeepEquals, zk.WorldACL(zk.PERM_ALL))
29 } 29 }
30 30
31 func (s *S) TestRetryChangeSetting(c *C) { 31 func (s *S) TestRetryChangeSetting(c *C) {
32 conn, _ := s.init(c) 32 conn, _ := s.init(c)
33 33
34 _, err := conn.Create("/test", "old", zk.EPHEMERAL, zk.WorldACL(zk.PERM_ ALL)) 34 _, err := conn.Create("/test", "old", zk.EPHEMERAL, zk.WorldACL(zk.PERM_ ALL))
35 c.Assert(err, IsNil) 35 c.Assert(err, IsNil)
36 36
37 err = conn.RetryChange("/test", zk.EPHEMERAL, []zk.ACL{}, 37 err = conn.RetryChange("/test", zk.EPHEMERAL, []zk.ACL{},
38 func(data string, stat *zk.Stat) (string, error) { 38 func(data string, stat *zk.Stat) (string, error) {
39 c.Assert(data, Equals, "old") 39 c.Assert(data, Equals, "old")
40 c.Assert(stat, NotNil) 40 c.Assert(stat, NotNil)
41 c.Assert(stat.Version(), Equals, 0) 41 c.Assert(stat.Version(), Equals, 0)
42 return "brand new", nil 42 return "brand new", nil
43 }) 43 })
44 c.Assert(err, IsNil) 44 c.Assert(err, IsNil)
45 45
46 data, stat, err := conn.Get("/test") 46 data, stat, err := conn.Get("/test")
47 c.Assert(err, IsNil) 47 c.Assert(err, IsNil)
48 c.Assert(stat, NotNil) 48 c.Assert(stat, NotNil)
49 c.Assert(stat.Version(), Equals, 1) 49 c.Assert(stat.Version(), Equals, 1)
50 c.Assert(data, Equals, "brand new") 50 c.Assert(data, Equals, "brand new")
51 51
52 // ACL was unchanged by RetryChange(). 52 // ACL was unchanged by RetryChange().
53 acl, _, err := conn.ACL("/test") 53 acl, _, err := conn.ACL("/test")
54 c.Assert(err, IsNil) 54 c.Assert(err, IsNil)
55 » c.Assert(acl, Equals, zk.WorldACL(zk.PERM_ALL)) 55 » c.Assert(acl, DeepEquals, zk.WorldACL(zk.PERM_ALL))
56 } 56 }
57 57
58 func (s *S) TestRetryChangeUnchangedValueDoesNothing(c *C) { 58 func (s *S) TestRetryChangeUnchangedValueDoesNothing(c *C) {
59 conn, _ := s.init(c) 59 conn, _ := s.init(c)
60 60
61 _, err := conn.Create("/test", "old", zk.EPHEMERAL, zk.WorldACL(zk.PERM_ ALL)) 61 _, err := conn.Create("/test", "old", zk.EPHEMERAL, zk.WorldACL(zk.PERM_ ALL))
62 c.Assert(err, IsNil) 62 c.Assert(err, IsNil)
63 63
64 err = conn.RetryChange("/test", zk.EPHEMERAL, []zk.ACL{}, 64 err = conn.RetryChange("/test", zk.EPHEMERAL, []zk.ACL{},
65 func(data string, stat *zk.Stat) (string, error) { 65 func(data string, stat *zk.Stat) (string, error) {
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 170
171 data, stat, err := conn.Get("/test") 171 data, stat, err := conn.Get("/test")
172 c.Assert(err, IsNil) 172 c.Assert(err, IsNil)
173 c.Assert(data, Equals, "<deleted> => new") 173 c.Assert(data, Equals, "<deleted> => new")
174 c.Assert(stat, NotNil) 174 c.Assert(stat, NotNil)
175 c.Assert(stat.Version(), Equals, 0) 175 c.Assert(stat.Version(), Equals, 0)
176 176
177 // Should be the new ACL. 177 // Should be the new ACL.
178 acl, _, err := conn.ACL("/test") 178 acl, _, err := conn.ACL("/test")
179 c.Assert(err, IsNil) 179 c.Assert(err, IsNil)
180 » c.Assert(acl, Equals, zk.WorldACL(zk.PERM_READ)) 180 » c.Assert(acl, DeepEquals, zk.WorldACL(zk.PERM_READ))
181 } 181 }
182 182
183 func (s *S) TestRetryChangeErrorInCallback(c *C) { 183 func (s *S) TestRetryChangeErrorInCallback(c *C) {
184 conn, _ := s.init(c) 184 conn, _ := s.init(c)
185 185
186 err := conn.RetryChange("/test", zk.EPHEMERAL, zk.WorldACL(zk.PERM_ALL), 186 err := conn.RetryChange("/test", zk.EPHEMERAL, zk.WorldACL(zk.PERM_ALL),
187 func(data string, stat *zk.Stat) (string, error) { 187 func(data string, stat *zk.Stat) (string, error) {
188 return "don't use this", errors.New("BOOM!") 188 return "don't use this", errors.New("BOOM!")
189 }) 189 })
190 c.Assert(err, NotNil) 190 c.Assert(err, NotNil)
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 }) 257 })
258 c.Assert(err, NotNil) 258 c.Assert(err, NotNil)
259 c.Assert(err, Equals, zk.ZNOAUTH) 259 c.Assert(err, Equals, zk.ZNOAUTH)
260 260
261 stat, err := conn.Exists("/test/sub") 261 stat, err := conn.Exists("/test/sub")
262 c.Assert(err, IsNil) 262 c.Assert(err, IsNil)
263 c.Assert(stat, IsNil) 263 c.Assert(stat, IsNil)
264 264
265 c.Assert(called, Equals, true) 265 c.Assert(called, Equals, true)
266 } 266 }
OLDNEW
« no previous file with comments | « close_test.go ('k') | suite_test.go » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b