Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(675)

Side by Side Diff: server/logdog/storage/bigtable/storage_test.go

Issue 1909943003: LogDog: Add project support to Storage. (Closed) Base URL: https://github.com/luci/luci-go@logdog-project-coordinator-services
Patch Set: Rebase? Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « server/logdog/storage/bigtable/storage.go ('k') | server/logdog/storage/memory/memory.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 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package bigtable 5 package bigtable
6 6
7 import ( 7 import (
8 "bytes" 8 "bytes"
9 "fmt" 9 "fmt"
10 "testing" 10 "testing"
11 "time" 11 "time"
12 12
13 "github.com/luci/gkvlite" 13 "github.com/luci/gkvlite"
14 "github.com/luci/luci-go/common/config"
14 "github.com/luci/luci-go/common/logdog/types" 15 "github.com/luci/luci-go/common/logdog/types"
15 "github.com/luci/luci-go/common/recordio" 16 "github.com/luci/luci-go/common/recordio"
16 "github.com/luci/luci-go/server/logdog/storage" 17 "github.com/luci/luci-go/server/logdog/storage"
17 "golang.org/x/net/context" 18 "golang.org/x/net/context"
18 19
19 . "github.com/luci/luci-go/common/testing/assertions" 20 . "github.com/luci/luci-go/common/testing/assertions"
20 . "github.com/smartystreets/goconvey/convey" 21 . "github.com/smartystreets/goconvey/convey"
21 ) 22 )
22 23
23 // btTableTest is an in-memory implementation of btTable interface for testing. 24 // btTableTest is an in-memory implementation of btTable interface for testing.
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 s := newBTStorage(context.Background(), Options{ 169 s := newBTStorage(context.Background(), Options{
169 Project: "test-project", 170 Project: "test-project",
170 Zone: "test-zone", 171 Zone: "test-zone",
171 Cluster: "test-cluster", 172 Cluster: "test-cluster",
172 LogTable: "test-log-table", 173 LogTable: "test-log-table",
173 }, nil, nil) 174 }, nil, nil)
174 175
175 s.raw = &bt 176 s.raw = &bt
176 defer s.Close() 177 defer s.Close()
177 178
179 project := config.ProjectName("test-project")
178 get := func(path string, index int, limit int) ([]string, error) { 180 get := func(path string, index int, limit int) ([]string, error) {
179 req := storage.GetRequest{ 181 req := storage.GetRequest{
180 » » » » Path: types.StreamPath(path), 182 » » » » Project: project,
181 » » » » Index: types.MessageIndex(index), 183 » » » » Path: types.StreamPath(path),
182 » » » » Limit: limit, 184 » » » » Index: types.MessageIndex(index),
185 » » » » Limit: limit,
183 } 186 }
184 got := []string{} 187 got := []string{}
185 err := s.Get(req, func(idx types.MessageIndex, d []byte) bool { 188 err := s.Get(req, func(idx types.MessageIndex, d []byte) bool {
186 got = append(got, string(d)) 189 got = append(got, string(d))
187 return true 190 return true
188 }) 191 })
189 return got, err 192 return got, err
190 } 193 }
191 194
192 put := func(path string, index int, d ...string) error { 195 put := func(path string, index int, d ...string) error {
193 data := make([][]byte, len(d)) 196 data := make([][]byte, len(d))
194 for i, v := range d { 197 for i, v := range d {
195 data[i] = []byte(v) 198 data[i] = []byte(v)
196 } 199 }
197 200
198 return s.Put(storage.PutRequest{ 201 return s.Put(storage.PutRequest{
199 » » » » Path: types.StreamPath(path), 202 » » » » Project: project,
200 » » » » Index: types.MessageIndex(index), 203 » » » » Path: types.StreamPath(path),
201 » » » » Values: data, 204 » » » » Index: types.MessageIndex(index),
205 » » » » Values: data,
202 }) 206 })
203 } 207 }
204 208
205 » » ekey := func(p string, v, c int64) string { 209 » » ekey := func(path string, v, c int64) string {
206 » » » return newRowKey(p, v, c).encode() 210 » » » return newRowKey(string(project), path, v, c).encode()
207 } 211 }
208 records := func(s ...string) []byte { 212 records := func(s ...string) []byte {
209 buf := bytes.Buffer{} 213 buf := bytes.Buffer{}
210 w := recordio.NewWriter(&buf) 214 w := recordio.NewWriter(&buf)
211 215
212 for _, v := range s { 216 for _, v := range s {
213 if _, err := w.Write([]byte(v)); err != nil { 217 if _, err := w.Write([]byte(v)); err != nil {
214 panic(err) 218 panic(err)
215 } 219 }
216 if err := w.Flush(); err != nil { 220 if err := w.Flush(); err != nil {
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 294
291 Convey(`Will fetch {} for INVALID.`, func() { 295 Convey(`Will fetch {} for INVALID.`, func() {
292 got, err := get("INVALID", 0, 0) 296 got, err := get("INVALID", 0, 0)
293 So(err, ShouldBeNil) 297 So(err, ShouldBeNil)
294 So(got, ShouldResemble, []string{}) 298 So(got, ShouldResemble, []string{})
295 }) 299 })
296 }) 300 })
297 301
298 Convey(`Testing "Tail"...`, func() { 302 Convey(`Testing "Tail"...`, func() {
299 tail := func(path string) (string, error) { 303 tail := func(path string) (string, error) {
300 » » » » » got, _, err := s.Tail(types.StreamPath(p ath)) 304 » » » » » got, _, err := s.Tail(project, types.Str eamPath(path))
301 return string(got), err 305 return string(got), err
302 } 306 }
303 307
304 Convey(`A tail request for "A" returns A{4}.`, f unc() { 308 Convey(`A tail request for "A" returns A{4}.`, f unc() {
305 got, err := tail("A") 309 got, err := tail("A")
306 So(err, ShouldBeNil) 310 So(err, ShouldBeNil)
307 So(got, ShouldEqual, "4") 311 So(got, ShouldEqual, "4")
308 }) 312 })
309 313
310 Convey(`A tail request for "B" returns B{13}.`, func() { 314 Convey(`A tail request for "B" returns B{13}.`, func() {
(...skipping 11 matching lines...) Expand all
322 }) 326 })
323 } 327 }
324 328
325 func TestStorage(t *testing.T) { 329 func TestStorage(t *testing.T) {
326 testStorageImpl(t, false) 330 testStorageImpl(t, false)
327 } 331 }
328 332
329 func TestStorageLegacy(t *testing.T) { 333 func TestStorageLegacy(t *testing.T) {
330 testStorageImpl(t, true) 334 testStorageImpl(t, true)
331 } 335 }
OLDNEW
« no previous file with comments | « server/logdog/storage/bigtable/storage.go ('k') | server/logdog/storage/memory/memory.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698