Skip to content

Commit 767ab8d

Browse files
committed
Change tests to use a new entrypoint for creating memdb for testing
This will allow us to centrally register additional datastore validation that only runs at test time
1 parent 2270811 commit 767ab8d

29 files changed

+116
-71
lines changed

internal/caveats/run_test.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"github.com/stretchr/testify/require"
1010

1111
"github.com/authzed/spicedb/internal/caveats"
12+
"github.com/authzed/spicedb/internal/datastore/dsfortesting"
1213
"github.com/authzed/spicedb/internal/datastore/memdb"
1314
"github.com/authzed/spicedb/internal/testfixtures"
1415
"github.com/authzed/spicedb/pkg/datastore"
@@ -448,7 +449,7 @@ func TestRunCaveatExpressions(t *testing.T) {
448449
t.Run(tc.name, func(t *testing.T) {
449450
req := require.New(t)
450451

451-
rawDS, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
452+
rawDS, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
452453
req.NoError(err)
453454

454455
ds, _ := testfixtures.DatastoreFromSchemaAndTestRelationships(rawDS, `
@@ -507,7 +508,7 @@ func TestRunCaveatExpressions(t *testing.T) {
507508
func TestRunCaveatWithMissingMap(t *testing.T) {
508509
req := require.New(t)
509510

510-
rawDS, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
511+
rawDS, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
511512
req.NoError(err)
512513

513514
ds, _ := testfixtures.DatastoreFromSchemaAndTestRelationships(rawDS, `
@@ -536,7 +537,7 @@ func TestRunCaveatWithMissingMap(t *testing.T) {
536537
func TestRunCaveatWithEmptyMap(t *testing.T) {
537538
req := require.New(t)
538539

539-
rawDS, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
540+
rawDS, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
540541
req.NoError(err)
541542

542543
ds, _ := testfixtures.DatastoreFromSchemaAndTestRelationships(rawDS, `
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package dsfortesting
2+
3+
import (
4+
"time"
5+
6+
"github.com/authzed/spicedb/internal/datastore/memdb"
7+
"github.com/authzed/spicedb/pkg/datastore"
8+
)
9+
10+
func NewMemDBDatastoreForTesting(
11+
watchBufferLength uint16,
12+
revisionQuantization,
13+
gcWindow time.Duration,
14+
) (datastore.Datastore, error) {
15+
return memdb.NewMemdbDatastore(watchBufferLength, revisionQuantization, gcWindow)
16+
}

internal/datastore/proxy/observable_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"testing"
55
"time"
66

7+
"github.com/authzed/spicedb/internal/datastore/dsfortesting"
78
"github.com/authzed/spicedb/internal/datastore/memdb"
89
"github.com/authzed/spicedb/pkg/datastore"
910
"github.com/authzed/spicedb/pkg/datastore/test"
@@ -12,7 +13,7 @@ import (
1213
type observableTest struct{}
1314

1415
func (obs observableTest) New(revisionQuantization, _, gcWindow time.Duration, watchBufferLength uint16) (datastore.Datastore, error) {
15-
db, err := memdb.NewMemdbDatastore(watchBufferLength, revisionQuantization, gcWindow)
16+
db, err := dsfortesting.NewMemDBDatastoreForTesting(watchBufferLength, revisionQuantization, gcWindow)
1617
if err != nil {
1718
return nil, err
1819
}

internal/datastore/proxy/relationshipintegrity_test.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"github.com/stretchr/testify/require"
1111
"google.golang.org/protobuf/types/known/timestamppb"
1212

13-
"github.com/authzed/spicedb/internal/datastore/memdb"
13+
"github.com/authzed/spicedb/internal/datastore/dsfortesting"
1414
"github.com/authzed/spicedb/pkg/datastore"
1515
core "github.com/authzed/spicedb/pkg/proto/core/v1"
1616
"github.com/authzed/spicedb/pkg/tuple"
@@ -58,7 +58,7 @@ var expiredKeyForTesting = KeyConfig{
5858
}
5959

6060
func TestWriteWithPredefinedIntegrity(t *testing.T) {
61-
ds, err := memdb.NewMemdbDatastore(0, 5*time.Second, 1*time.Hour)
61+
ds, err := dsfortesting.NewMemDBDatastoreForTesting(0, 5*time.Second, 1*time.Hour)
6262
require.NoError(t, err)
6363

6464
pds, err := NewRelationshipIntegrityProxy(ds, DefaultKeyForTesting, nil)
@@ -76,7 +76,7 @@ func TestWriteWithPredefinedIntegrity(t *testing.T) {
7676
}
7777

7878
func TestReadWithMissingIntegrity(t *testing.T) {
79-
ds, err := memdb.NewMemdbDatastore(0, 5*time.Second, 1*time.Hour)
79+
ds, err := dsfortesting.NewMemDBDatastoreForTesting(0, 5*time.Second, 1*time.Hour)
8080
require.NoError(t, err)
8181

8282
// Write a relationship to the underlying datastore without integrity information.
@@ -108,7 +108,7 @@ func TestReadWithMissingIntegrity(t *testing.T) {
108108
}
109109

110110
func TestBasicIntegrityFailureDueToInvalidHashVersion(t *testing.T) {
111-
ds, err := memdb.NewMemdbDatastore(0, 5*time.Second, 1*time.Hour)
111+
ds, err := dsfortesting.NewMemDBDatastoreForTesting(0, 5*time.Second, 1*time.Hour)
112112
require.NoError(t, err)
113113

114114
pds, err := NewRelationshipIntegrityProxy(ds, DefaultKeyForTesting, nil)
@@ -157,7 +157,7 @@ func TestBasicIntegrityFailureDueToInvalidHashVersion(t *testing.T) {
157157
}
158158

159159
func TestBasicIntegrityFailureDueToInvalidHashSignature(t *testing.T) {
160-
ds, err := memdb.NewMemdbDatastore(0, 5*time.Second, 1*time.Hour)
160+
ds, err := dsfortesting.NewMemDBDatastoreForTesting(0, 5*time.Second, 1*time.Hour)
161161
require.NoError(t, err)
162162

163163
pds, err := NewRelationshipIntegrityProxy(ds, DefaultKeyForTesting, nil)
@@ -206,7 +206,7 @@ func TestBasicIntegrityFailureDueToInvalidHashSignature(t *testing.T) {
206206
}
207207

208208
func TestBasicIntegrityFailureDueToWriteWithExpiredKey(t *testing.T) {
209-
ds, err := memdb.NewMemdbDatastore(0, 5*time.Second, 1*time.Hour)
209+
ds, err := dsfortesting.NewMemDBDatastoreForTesting(0, 5*time.Second, 1*time.Hour)
210210
require.NoError(t, err)
211211

212212
// Create a proxy with the to-be-expired key and write some relationships.
@@ -245,7 +245,7 @@ func TestBasicIntegrityFailureDueToWriteWithExpiredKey(t *testing.T) {
245245
}
246246

247247
func TestWatchIntegrityFailureDueToInvalidHashSignature(t *testing.T) {
248-
ds, err := memdb.NewMemdbDatastore(0, 5*time.Second, 1*time.Hour)
248+
ds, err := dsfortesting.NewMemDBDatastoreForTesting(0, 5*time.Second, 1*time.Hour)
249249
require.NoError(t, err)
250250

251251
headRev, err := ds.HeadRevision(context.Background())
@@ -289,7 +289,7 @@ func TestWatchIntegrityFailureDueToInvalidHashSignature(t *testing.T) {
289289
func BenchmarkQueryRelsWithIntegrity(b *testing.B) {
290290
for _, withIntegrity := range []bool{true, false} {
291291
b.Run(fmt.Sprintf("withIntegrity=%t", withIntegrity), func(b *testing.B) {
292-
ds, err := memdb.NewMemdbDatastore(0, 5*time.Second, 1*time.Hour)
292+
ds, err := dsfortesting.NewMemDBDatastoreForTesting(0, 5*time.Second, 1*time.Hour)
293293
require.NoError(b, err)
294294

295295
pds, err := NewRelationshipIntegrityProxy(ds, DefaultKeyForTesting, nil)

internal/datastore/proxy/schemacaching/estimatedsize_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/ccoveille/go-safecast"
1515
"github.com/stretchr/testify/require"
1616

17+
"github.com/authzed/spicedb/internal/datastore/dsfortesting"
1718
"github.com/authzed/spicedb/internal/datastore/memdb"
1819
core "github.com/authzed/spicedb/pkg/proto/core/v1"
1920
"github.com/authzed/spicedb/pkg/validationfile"
@@ -46,7 +47,7 @@ func TestEstimatedDefinitionSizes(t *testing.T) {
4647
filePath := filePath
4748
t.Run(path.Base(filePath), func(t *testing.T) {
4849
require := require.New(t)
49-
ds, err := memdb.NewMemdbDatastore(0, 1*time.Second, memdb.DisableGC)
50+
ds, err := dsfortesting.NewMemDBDatastoreForTesting(0, 1*time.Second, memdb.DisableGC)
5051
require.NoError(err)
5152

5253
fullyResolved, _, err := validationfile.PopulateFromFiles(context.Background(), ds, []string{filePath})

internal/datastore/proxy/schemacaching/standardcaching_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/stretchr/testify/require"
1212
"golang.org/x/sync/errgroup"
1313

14+
"github.com/authzed/spicedb/internal/datastore/dsfortesting"
1415
"github.com/authzed/spicedb/internal/datastore/memdb"
1516
"github.com/authzed/spicedb/internal/datastore/proxy/proxy_test"
1617
"github.com/authzed/spicedb/internal/datastore/revisions"
@@ -366,7 +367,7 @@ func TestSnapshotCachingRealDatastore(t *testing.T) {
366367
for _, tc := range tcs {
367368
tc := tc
368369
t.Run(tc.name, func(t *testing.T) {
369-
rawDS, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
370+
rawDS, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
370371
require.NoError(t, err)
371372

372373
ctx := context.Background()

internal/dispatch/combined/combined_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66

77
"github.com/stretchr/testify/require"
88

9+
"github.com/authzed/spicedb/internal/datastore/dsfortesting"
910
"github.com/authzed/spicedb/internal/datastore/memdb"
1011
datastoremw "github.com/authzed/spicedb/internal/middleware/datastore"
1112
"github.com/authzed/spicedb/internal/testfixtures"
@@ -22,7 +23,7 @@ func TestCombinedRecursiveCall(t *testing.T) {
2223

2324
ctx := datastoremw.ContextWithHandle(context.Background())
2425

25-
rawDS, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
26+
rawDS, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
2627
require.NoError(t, err)
2728

2829
ds, revision := testfixtures.DatastoreFromSchemaAndTestRelationships(rawDS, `

internal/dispatch/graph/check_test.go

+8-7
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"github.com/stretchr/testify/require"
1010

1111
"github.com/authzed/spicedb/internal/datastore/common"
12+
"github.com/authzed/spicedb/internal/datastore/dsfortesting"
1213
"github.com/authzed/spicedb/internal/datastore/memdb"
1314
"github.com/authzed/spicedb/internal/dispatch"
1415
"github.com/authzed/spicedb/internal/dispatch/caching"
@@ -153,7 +154,7 @@ func TestMaxDepth(t *testing.T) {
153154
t.Parallel()
154155
require := require.New(t)
155156

156-
rawDS, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
157+
rawDS, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
157158
require.NoError(err)
158159

159160
ds, _ := testfixtures.StandardDatastoreWithSchema(rawDS, require)
@@ -1322,7 +1323,7 @@ func TestCheckPermissionOverSchema(t *testing.T) {
13221323

13231324
dispatcher := NewLocalOnlyDispatcher(10, 100)
13241325

1325-
ds, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
1326+
ds, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
13261327
require.NoError(err)
13271328

13281329
ds, revision := testfixtures.DatastoreFromSchemaAndTestRelationships(ds, tc.schema, tc.relationships, require)
@@ -1823,7 +1824,7 @@ func TestCheckWithHints(t *testing.T) {
18231824

18241825
dispatcher := NewLocalOnlyDispatcher(10, 100)
18251826

1826-
ds, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
1827+
ds, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
18271828
require.NoError(err)
18281829

18291830
ds, revision := testfixtures.DatastoreFromSchemaAndTestRelationships(ds, tc.schema, tc.relationships, require)
@@ -1863,7 +1864,7 @@ func TestCheckHintsPartialApplication(t *testing.T) {
18631864

18641865
dispatcher := NewLocalOnlyDispatcher(10, 100)
18651866

1866-
ds, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
1867+
ds, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
18671868
require.NoError(err)
18681869

18691870
ds, revision := testfixtures.DatastoreFromSchemaAndTestRelationships(ds, `
@@ -1909,7 +1910,7 @@ func TestCheckHintsPartialApplicationOverArrow(t *testing.T) {
19091910

19101911
dispatcher := NewLocalOnlyDispatcher(10, 100)
19111912

1912-
ds, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
1913+
ds, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
19131914
require.NoError(err)
19141915

19151916
ds, revision := testfixtures.DatastoreFromSchemaAndTestRelationships(ds, `
@@ -1955,7 +1956,7 @@ func TestCheckHintsPartialApplicationOverArrow(t *testing.T) {
19551956
}
19561957

19571958
func newLocalDispatcherWithConcurrencyLimit(t testing.TB, concurrencyLimit uint16) (context.Context, dispatch.Dispatcher, datastore.Revision) {
1958-
rawDS, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
1959+
rawDS, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
19591960
require.NoError(t, err)
19601961

19611962
ds, revision := testfixtures.StandardDatastoreWithData(rawDS, require.New(t))
@@ -1977,7 +1978,7 @@ func newLocalDispatcher(t testing.TB) (context.Context, dispatch.Dispatcher, dat
19771978
}
19781979

19791980
func newLocalDispatcherWithSchemaAndRels(t testing.TB, schema string, rels []tuple.Relationship) (context.Context, dispatch.Dispatcher, datastore.Revision) {
1980-
rawDS, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
1981+
rawDS, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
19811982
require.NoError(t, err)
19821983

19831984
ds, revision := testfixtures.DatastoreFromSchemaAndTestRelationships(rawDS, schema, rels, require.New(t))

internal/dispatch/graph/expand_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"google.golang.org/protobuf/testing/protocmp"
1616

1717
"github.com/authzed/spicedb/internal/datastore/common"
18+
"github.com/authzed/spicedb/internal/datastore/dsfortesting"
1819
"github.com/authzed/spicedb/internal/datastore/memdb"
1920
expand "github.com/authzed/spicedb/internal/graph"
2021
datastoremw "github.com/authzed/spicedb/internal/middleware/datastore"
@@ -280,7 +281,7 @@ func TestMaxDepthExpand(t *testing.T) {
280281

281282
require := require.New(t)
282283

283-
rawDS, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
284+
rawDS, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
284285
require.NoError(err)
285286

286287
ds, _ := testfixtures.StandardDatastoreWithSchema(rawDS, require)

internal/dispatch/graph/lookupresources2_test.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"go.uber.org/goleak"
1414
"google.golang.org/protobuf/types/known/structpb"
1515

16+
"github.com/authzed/spicedb/internal/datastore/dsfortesting"
1617
"github.com/authzed/spicedb/internal/datastore/memdb"
1718
"github.com/authzed/spicedb/internal/dispatch"
1819
datastoremw "github.com/authzed/spicedb/internal/middleware/datastore"
@@ -310,7 +311,7 @@ func TestMaxDepthLookup2(t *testing.T) {
310311
t.Parallel()
311312
require := require.New(t)
312313

313-
rawDS, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
314+
rawDS, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
314315
require.NoError(err)
315316

316317
ds, revision := testfixtures.StandardDatastoreWithData(rawDS, require)
@@ -754,7 +755,7 @@ func TestLookupResources2OverSchemaWithCursors(t *testing.T) {
754755

755756
dispatcher := NewLocalOnlyDispatcher(10, 100)
756757

757-
ds, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
758+
ds, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
758759
require.NoError(err)
759760

760761
ds, revision := testfixtures.DatastoreFromSchemaAndTestRelationships(ds, tc.schema, tc.relationships, require)
@@ -830,7 +831,7 @@ func TestLookupResources2ImmediateTimeout(t *testing.T) {
830831

831832
require := require.New(t)
832833

833-
rawDS, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
834+
rawDS, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
834835
require.NoError(err)
835836

836837
ds, revision := testfixtures.StandardDatastoreWithData(rawDS, require)
@@ -865,7 +866,7 @@ func TestLookupResources2WithError(t *testing.T) {
865866

866867
require := require.New(t)
867868

868-
rawDS, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
869+
rawDS, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
869870
require.NoError(err)
870871

871872
ds, revision := testfixtures.StandardDatastoreWithData(rawDS, require)
@@ -1341,7 +1342,7 @@ func TestLookupResources2EnsureCheckHints(t *testing.T) {
13411342
t.Run(tc.name, func(t *testing.T) {
13421343
require := require.New(t)
13431344

1344-
rawDS, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
1345+
rawDS, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
13451346
require.NoError(err)
13461347

13471348
ds, revision := testfixtures.DatastoreFromSchemaAndTestRelationships(rawDS, tc.schema, tc.relationships, require)

internal/dispatch/graph/lookupresources_test.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"github.com/ccoveille/go-safecast"
1111
"github.com/stretchr/testify/require"
1212

13+
"github.com/authzed/spicedb/internal/datastore/dsfortesting"
1314
"github.com/authzed/spicedb/internal/datastore/memdb"
1415
"github.com/authzed/spicedb/internal/dispatch"
1516
datastoremw "github.com/authzed/spicedb/internal/middleware/datastore"
@@ -302,7 +303,7 @@ func TestMaxDepthLookup(t *testing.T) {
302303
t.Parallel()
303304
require := require.New(t)
304305

305-
rawDS, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
306+
rawDS, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
306307
require.NoError(err)
307308

308309
ds, revision := testfixtures.StandardDatastoreWithData(rawDS, require)
@@ -606,7 +607,7 @@ func TestLookupResourcesOverSchemaWithCursors(t *testing.T) {
606607

607608
dispatcher := NewLocalOnlyDispatcher(10, 100)
608609

609-
ds, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
610+
ds, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
610611
require.NoError(err)
611612

612613
ds, revision := testfixtures.DatastoreFromSchemaAndTestRelationships(ds, tc.schema, tc.relationships, require)
@@ -664,7 +665,7 @@ func TestLookupResourcesImmediateTimeout(t *testing.T) {
664665

665666
require := require.New(t)
666667

667-
rawDS, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
668+
rawDS, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
668669
require.NoError(err)
669670

670671
ds, revision := testfixtures.StandardDatastoreWithData(rawDS, require)
@@ -697,7 +698,7 @@ func TestLookupResourcesWithError(t *testing.T) {
697698

698699
require := require.New(t)
699700

700-
rawDS, err := memdb.NewMemdbDatastore(0, 0, memdb.DisableGC)
701+
rawDS, err := dsfortesting.NewMemDBDatastoreForTesting(0, 0, memdb.DisableGC)
701702
require.NoError(err)
702703

703704
ds, revision := testfixtures.StandardDatastoreWithData(rawDS, require)

0 commit comments

Comments
 (0)