MCPcopy Create free account
hub / github.com/dagger/dagger / TestDBRefCount

Function TestDBRefCount

engine/clientdb/dbs_test.go:10–72  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

8)
9
10func TestDBRefCount(t *testing.T) {
11 root := t.TempDir()
12
13 dbs := NewDBs(root)
14
15 ctx := t.Context()
16
17 c1 := "client1"
18 d1a, err := dbs.Open(ctx, c1)
19 require.NoError(t, err)
20 require.Len(t, dbs.open, 1)
21 require.Equal(t, d1a.refCount, 1)
22
23 d1b, err := dbs.Open(ctx, c1)
24 require.NoError(t, err)
25 require.Len(t, dbs.open, 1)
26 require.Equal(t, d1a.refCount, 2)
27
28 _, err = d1a.SelectSpansSince(ctx, SelectSpansSinceParams{
29 ID: 1,
30 Limit: 1,
31 })
32 require.NoError(t, err)
33
34 require.NoError(t, d1a.Close())
35 require.Len(t, dbs.open, 1)
36 require.NotNil(t, d1a.inner)
37 require.NotNil(t, d1a.Queries)
38 require.Equal(t, d1a.refCount, 1)
39
40 _, err = d1b.SelectSpansSince(ctx, SelectSpansSinceParams{
41 ID: 1,
42 Limit: 1,
43 })
44 require.NoError(t, err)
45
46 c2 := "client2"
47 d2a, err := dbs.Open(ctx, c2)
48 require.NoError(t, err)
49 require.Len(t, dbs.open, 2)
50 require.Equal(t, d2a.refCount, 1)
51
52 require.NoError(t, d1b.Close())
53 require.Len(t, dbs.open, 1)
54 require.Nil(t, d1a.inner)
55 require.Nil(t, d1b.inner)
56 require.Nil(t, d1a.Queries)
57 require.Nil(t, d1b.Queries)
58 require.Equal(t, d1a.refCount, 0)
59 require.Equal(t, d1b.refCount, 0)
60
61 _, err = d2a.SelectSpansSince(ctx, SelectSpansSinceParams{
62 ID: 1,
63 Limit: 1,
64 })
65 require.NoError(t, err)
66
67 require.NoError(t, d2a.Close())

Callers

nothing calls this directly

Calls 7

OpenMethod · 0.95
NewDBsFunction · 0.85
SelectSpansSinceMethod · 0.80
ContextMethod · 0.65
LenMethod · 0.65
EqualMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected