blob: fa85fd3eb766b500ddcb210e79c9c8cff492ab2c [file] [log] [blame]
// Copyright 2017 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package gcslog
import (
"context"
"testing"
"time"
"golang.org/x/build/maintner/maintpb"
)
func TestGCSLogWakeup_Timeout(t *testing.T) {
testGCSLogWakeup(t, false)
}
func TestGCSLogWakeup_Activity(t *testing.T) {
testGCSLogWakeup(t, true)
}
func testGCSLogWakeup(t *testing.T, activity bool) {
gl := newGCSLogBase()
waitc := make(chan bool, 1)
ctx, cancel := context.WithTimeout(context.Background(), 500*time.Millisecond)
defer cancel()
go func() {
waitc <- gl.waitSizeNot(ctx, 0)
}()
if activity {
if err := gl.Log(new(maintpb.Mutation)); err != nil {
t.Fatal(err)
}
}
select {
case got := <-waitc:
if got != activity {
t.Errorf("changed = %v; want %v", got, activity)
}
case <-time.After(2 * time.Second):
t.Errorf("timeout")
}
}