Skip to content

Commit ea1983a

Browse files
committed
Tests for gocb v2
1 parent 9364142 commit ea1983a

2 files changed

Lines changed: 3302 additions & 11 deletions

File tree

Lines changed: 245 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,245 @@
1+
package test
2+
3+
import "github.com/couchbase/gocb/v2"
4+
5+
func test_couchbase_gocb_v2_Cluster(cluster *gocb.Cluster) {
6+
r1, err := cluster.AnalyticsQuery("SELECT * FROM `travel-sample`", nil) // $ source
7+
8+
if err != nil {
9+
return
10+
}
11+
12+
for r1.Next() {
13+
var name1, name2 string
14+
15+
r1.One(&name1)
16+
17+
sink(name1) // $ hasTaintFlow="name1"
18+
19+
r1.Row(&name2)
20+
sink(name2) // $ hasTaintFlow="name2"
21+
22+
b := r1.Raw().NextBytes()
23+
sink(b) // $ hasTaintFlow="b"
24+
}
25+
26+
r2, err := cluster.Query("SELECT * FROM `travel-sample`", nil) // $ source
27+
28+
if err != nil {
29+
return
30+
}
31+
32+
for r2.Next() {
33+
var name1, name2 string
34+
35+
r2.One(&name1)
36+
37+
sink(name1) // $ hasTaintFlow="name1"
38+
39+
r2.Row(&name2)
40+
sink(name2) // $ hasTaintFlow="name2"
41+
42+
b := r2.Raw().NextBytes()
43+
sink(b) // $ hasTaintFlow="b"
44+
}
45+
}
46+
47+
func test_couchbase_gocb_v2_Scope(scope *gocb.Scope) {
48+
r1, err := scope.Query("SELECT * FROM `travel-sample`", nil) // $ source
49+
50+
if err != nil {
51+
return
52+
}
53+
54+
for r1.Next() {
55+
var name1, name2 string
56+
57+
r1.One(&name1)
58+
59+
sink(name1) // $ hasTaintFlow="name1"
60+
61+
r1.Row(&name2)
62+
sink(name2) // $ hasTaintFlow="name2"
63+
64+
b := r1.Raw().NextBytes()
65+
sink(b) // $ hasTaintFlow="b"
66+
}
67+
68+
r2, err := scope.Query("SELECT * FROM `travel-sample`", nil) // $ source
69+
70+
if err != nil {
71+
return
72+
}
73+
74+
for r2.Next() {
75+
var name1, name2 string
76+
77+
r2.One(&name1)
78+
79+
sink(name1) // $ hasTaintFlow="name1"
80+
81+
r2.Row(&name2)
82+
sink(name2) // $ hasTaintFlow="name2"
83+
84+
b := r2.Raw().NextBytes()
85+
sink(b) // $ hasTaintFlow="b"
86+
}
87+
}
88+
89+
func test_couchbase_gocb_v2_Collection(coll *gocb.Collection) {
90+
type User struct {
91+
Name string
92+
}
93+
94+
var user User
95+
96+
r1, err := coll.Get("documentID", nil) // $ source
97+
98+
if err != nil {
99+
return
100+
}
101+
102+
r1.Content(&user)
103+
104+
sink(user) // $ hasTaintFlow="user"
105+
106+
r2, err := coll.GetAndLock("documentID", 30, nil) // $ source
107+
108+
if err != nil {
109+
return
110+
}
111+
112+
sink(r2) // $ hasTaintFlow="r2"
113+
114+
r3, err := coll.GetAndTouch("documentID", 30, nil) // $ source
115+
116+
if err != nil {
117+
return
118+
}
119+
120+
var user3 User
121+
r3.Content(&user3)
122+
sink(user3) // $ hasTaintFlow="user3"
123+
124+
r4, err := coll.GetAnyReplica("documentID", nil) // $ source
125+
126+
if err != nil {
127+
return
128+
}
129+
130+
sink(r4) // $ hasTaintFlow="r4"
131+
132+
r5, err := coll.LookupIn("documentID", []gocb.LookupInSpec{}, nil) // $ source
133+
134+
if err != nil {
135+
return
136+
}
137+
138+
var user5 User
139+
r5.ContentAt(0, &user5)
140+
sink(user5) // $ hasTaintFlow="user5"
141+
142+
r6, err := coll.LookupInAllReplicas("documentID", []gocb.LookupInSpec{}, nil) // $ source
143+
144+
if err != nil {
145+
return
146+
}
147+
148+
var user6 User
149+
r6.Next().ContentAt(0, &user6)
150+
sink(user6) // $ hasTaintFlow="user6"
151+
152+
r7, err := coll.LookupInAnyReplica("documentID", []gocb.LookupInSpec{}, nil) // $ source
153+
154+
if err != nil {
155+
return
156+
}
157+
158+
var user7 User
159+
r7.ContentAt(0, &user7)
160+
sink(user7) // $ hasTaintFlow="user7"
161+
162+
r8, err := coll.Scan(nil, nil) // $ source
163+
164+
if err != nil {
165+
return
166+
}
167+
168+
var user8 User
169+
r8.Next().Content(&user8)
170+
sink(user8) // $ hasTaintFlow="user8"
171+
}
172+
173+
func test_couchbase_gocb_v2_TransactionAttemptContext(tam *gocb.TransactionAttemptContext, coll *gocb.Collection) {
174+
r1, err := tam.Get(coll, "documentID") // $ source
175+
176+
if err != nil {
177+
return
178+
}
179+
180+
var user User
181+
r1.Content(&user)
182+
183+
sink(user) // $ hasTaintFlow="user"
184+
185+
r2, err := tam.GetReplicaFromPreferredServerGroup(coll, "documentID") // $ source
186+
187+
if err != nil {
188+
return
189+
}
190+
191+
var user2 User
192+
r2.Content(&user2)
193+
sink(user2) // $ hasTaintFlow="user2"
194+
195+
var user3 User
196+
197+
r3, err := tam.Insert(coll, "documentID", &user3) // $ source
198+
if err != nil {
199+
return
200+
}
201+
202+
var user4 User
203+
r3.Content(&user4)
204+
sink(user4) // $ hasTaintFlow="user4"
205+
206+
r4, err := tam.Query("SELECT * FROM `travel-sample`", nil) // $ source
207+
if err != nil {
208+
return
209+
}
210+
211+
for r4.Next() {
212+
var user5 User
213+
r4.One(&user5)
214+
sink(user5) // $ hasTaintFlow="user5"
215+
216+
var user6 User
217+
r4.Row(&user6)
218+
sink(user6) // $ hasTaintFlow="user6"
219+
}
220+
221+
r5, err := tam.Replace(r3, user4) // $ source
222+
if err != nil {
223+
return
224+
}
225+
226+
sink(r5) // $ hasTaintFlow="r5"
227+
}
228+
229+
func test_couchbase_gocb_v2_ViewIndexManager(v *gocb.ViewIndexManager) {
230+
doc, err := v.GetDesignDocument("name", 0, nil) // $ source
231+
232+
if err != nil {
233+
return
234+
}
235+
236+
sink(doc) // $ hasTaintFlow="doc"
237+
238+
docs, err := v.GetAllDesignDocuments(0, nil) // $ source
239+
240+
if err != nil {
241+
return
242+
}
243+
244+
sink(docs) // $ hasTaintFlow="docs"
245+
}

0 commit comments

Comments
 (0)