Test data races.

This commit is contained in:
Nuno Cruces
2023-02-15 16:24:34 +00:00
parent 78fd0cbee5
commit f85426022d
4 changed files with 35 additions and 9 deletions

View File

@@ -28,7 +28,13 @@ jobs:
- name: Test
run: go test -v ./...
- if: matrix.os == 'ubuntu-latest'
name: Update coverage report
- name: Test data races
run: go test -v -race ./...
if: matrix.os == 'ubuntu-latest'
- name: Update coverage report
uses: ncruces/go-coverage-report@main
if: |
matrix.os == 'ubuntu-latest' &&
github.event_name == 'push'
continue-on-error: true

View File

@@ -24,13 +24,11 @@ type sqlite3Runtime struct {
runtime wazero.Runtime
compiled wazero.CompiledModule
instances atomic.Uint64
ctx context.Context
err error
}
func (s *sqlite3Runtime) instantiateModule(ctx context.Context) (api.Module, error) {
s.ctx = ctx
s.once.Do(s.compileModule)
s.once.Do(func() { s.compileModule(ctx) })
if s.err != nil {
return nil, s.err
}
@@ -40,9 +38,9 @@ func (s *sqlite3Runtime) instantiateModule(ctx context.Context) (api.Module, err
return s.runtime.InstantiateModule(ctx, s.compiled, cfg)
}
func (s *sqlite3Runtime) compileModule() {
s.runtime = wazero.NewRuntime(s.ctx)
s.err = vfsInstantiate(s.ctx, s.runtime)
func (s *sqlite3Runtime) compileModule(ctx context.Context) {
s.runtime = wazero.NewRuntime(ctx)
s.err = vfsInstantiate(ctx, s.runtime)
if s.err != nil {
return
}
@@ -55,5 +53,5 @@ func (s *sqlite3Runtime) compileModule() {
}
}
s.compiled, s.err = s.runtime.CompileModule(s.ctx, bin)
s.compiled, s.err = s.runtime.CompileModule(ctx, bin)
}

View File

@@ -15,6 +15,8 @@ func TestConn_Close(t *testing.T) {
}
func TestConn_Close_BUSY(t *testing.T) {
t.Parallel()
db, err := Open(":memory:")
if err != nil {
t.Fatal(err)
@@ -44,6 +46,8 @@ func TestConn_Close_BUSY(t *testing.T) {
}
func TestConn_Interrupt(t *testing.T) {
t.Parallel()
db, err := Open(":memory:")
if err != nil {
t.Fatal(err)
@@ -92,6 +96,8 @@ func TestConn_Interrupt(t *testing.T) {
}
func TestConn_Prepare_Empty(t *testing.T) {
t.Parallel()
db, err := Open(":memory:")
if err != nil {
t.Fatal(err)
@@ -110,6 +116,8 @@ func TestConn_Prepare_Empty(t *testing.T) {
}
func TestConn_Prepare_Invalid(t *testing.T) {
t.Parallel()
db, err := Open(":memory:")
if err != nil {
t.Fatal(err)
@@ -151,6 +159,8 @@ func TestConn_Prepare_Invalid(t *testing.T) {
}
func TestConn_new(t *testing.T) {
t.Parallel()
db, err := Open(":memory:")
if err != nil {
t.Fatal(err)
@@ -163,6 +173,8 @@ func TestConn_new(t *testing.T) {
}
func TestConn_newArena(t *testing.T) {
t.Parallel()
db, err := Open(":memory:")
if err != nil {
t.Fatal(err)
@@ -193,6 +205,8 @@ func TestConn_newArena(t *testing.T) {
}
func TestConn_newBytes(t *testing.T) {
t.Parallel()
db, err := Open(":memory:")
if err != nil {
t.Fatal(err)
@@ -217,6 +231,8 @@ func TestConn_newBytes(t *testing.T) {
}
func TestConn_newString(t *testing.T) {
t.Parallel()
db, err := Open(":memory:")
if err != nil {
t.Fatal(err)
@@ -241,6 +257,8 @@ func TestConn_newString(t *testing.T) {
}
func TestConn_getString(t *testing.T) {
t.Parallel()
db, err := Open(":memory:")
if err != nil {
t.Fatal(err)
@@ -280,6 +298,8 @@ func TestConn_getString(t *testing.T) {
}
func TestConn_free(t *testing.T) {
t.Parallel()
db, err := Open(":memory:")
if err != nil {
t.Fatal(err)

View File

@@ -6,6 +6,8 @@ import (
)
func TestStmt(t *testing.T) {
t.Parallel()
db, err := Open(":memory:")
if err != nil {
t.Fatal(err)