/private/tagsql/db_test.go

https://github.com/storj/storj · Go · 67 lines · 47 code · 18 blank · 2 comment · 8 complexity · 6d5a60e6e04801bdce20d880accc151a MD5 · raw file

  1. // Copyright (C) 2020 Storj Labs, Inc.
  2. // See LICENSE for copying information.
  3. package tagsql_test
  4. import (
  5. "testing"
  6. _ "github.com/jackc/pgx/v4/stdlib"
  7. _ "github.com/mattn/go-sqlite3"
  8. "github.com/stretchr/testify/require"
  9. "storj.io/common/testcontext"
  10. "storj.io/storj/private/dbutil/cockroachutil"
  11. "storj.io/storj/private/dbutil/pgtest"
  12. "storj.io/storj/private/dbutil/pgutil"
  13. "storj.io/storj/private/tagsql"
  14. )
  15. func run(t *testing.T, fn func(*testcontext.Context, *testing.T, tagsql.DB, tagsql.ContextSupport)) {
  16. t.Helper()
  17. t.Run("mattn-sqlite3", func(t *testing.T) {
  18. ctx := testcontext.New(t)
  19. defer ctx.Cleanup()
  20. db, err := tagsql.Open("sqlite3", ":memory:")
  21. if err != nil {
  22. t.Fatal(err)
  23. }
  24. defer ctx.Check(db.Close)
  25. fn(ctx, t, db, tagsql.SupportBasic)
  26. })
  27. t.Run("jackc-pgx-postgres", func(t *testing.T) {
  28. connstr := pgtest.PickPostgres(t)
  29. ctx := testcontext.New(t)
  30. defer ctx.Cleanup()
  31. db, err := pgutil.OpenUnique(ctx, connstr, "detect")
  32. require.NoError(t, err)
  33. defer ctx.Check(db.Close)
  34. db.SetMaxOpenConns(100)
  35. db.SetMaxIdleConns(100)
  36. fn(ctx, t, db.DB, tagsql.SupportNone)
  37. })
  38. t.Run("jackc-pgx-cockroach", func(t *testing.T) {
  39. connstr := pgtest.PickCockroach(t)
  40. ctx := testcontext.New(t)
  41. defer ctx.Cleanup()
  42. db, err := cockroachutil.OpenUnique(ctx, connstr, "detect")
  43. require.NoError(t, err)
  44. defer ctx.Check(db.Close)
  45. db.SetMaxOpenConns(100)
  46. db.SetMaxIdleConns(100)
  47. fn(ctx, t, db.DB, tagsql.SupportNone)
  48. })
  49. }