Skip to content

Commit

Permalink
test: fix data race
Browse files Browse the repository at this point in the history
Signed-off-by: Manan Gupta <manan@planetscale.com>
  • Loading branch information
GuptaManan100 committed Feb 10, 2025
1 parent 4c9de0b commit f298bf7
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions go/vt/vttablet/tabletserver/state_manager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -150,26 +150,35 @@ func TestStateManagerUnservePrimary(t *testing.T) {
}

type testDiskMonitor struct {
mu sync.Mutex
isDiskStalled bool
}

func (t *testDiskMonitor) IsDiskStalled() bool {
t.mu.Lock()
defer t.mu.Unlock()
return t.isDiskStalled
}

// TestIsServingLocked tests isServingLocked() functionality.
func TestIsServingLocked(t *testing.T) {
func (t *testDiskMonitor) setDiskStalled(ds bool) {
t.mu.Lock()
defer t.mu.Unlock()
t.isDiskStalled = ds
}

// TestIsServing tests IsServing() functionality.
func TestIsServing(t *testing.T) {
sm := newTestStateManager()
defer sm.StopService()
tdm := &testDiskMonitor{isDiskStalled: false}
sm.diskHealthMonitor = tdm

err := sm.SetServingType(topodatapb.TabletType_REPLICA, testNow, StateServing, "")
require.NoError(t, err)
require.True(t, sm.isServingLocked())
require.True(t, sm.IsServing())

tdm.isDiskStalled = true
require.False(t, sm.isServingLocked())
tdm.setDiskStalled(true)
require.False(t, sm.IsServing())
}

func TestStateManagerUnserveNonPrimary(t *testing.T) {
Expand Down

0 comments on commit f298bf7

Please sign in to comment.