diff options
author | Jan Mercl <0xjnml@gmail.com> | 2019-12-18 17:51:11 +0100 |
---|---|---|
committer | Jan Mercl <0xjnml@gmail.com> | 2019-12-18 17:51:11 +0100 |
commit | 0bd6d67fefae8bb593662c01bd539776019681a8 (patch) | |
tree | 12124ac1d27826cea1c39f115f2c24a835deadb3 /z_linux_test.go | |
parent | 8afe3d5bd9a307c22902c09273e89729cf4469ce (diff) |
prepare pre-alpha release
Diffstat (limited to 'z_linux_test.go')
-rw-r--r-- | z_linux_test.go | 273 |
1 files changed, 0 insertions, 273 deletions
diff --git a/z_linux_test.go b/z_linux_test.go deleted file mode 100644 index 1a6b5d9..0000000 --- a/z_linux_test.go +++ /dev/null @@ -1,273 +0,0 @@ -// Copyright 2017 The Sqlite Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sqlite // import "modernc.org/sqlite" - -import ( - "bytes" - "io/ioutil" - "os" - "os/exec" - "path/filepath" - "testing" -) - -func TestMP(t *testing.T) { - dir, err := ioutil.TempDir("", "sqlite-test-") - if err != nil { - t.Fatal(err) - } - - defer func() { - if err := os.RemoveAll(dir); err != nil { - t.Fatal(err) - } - }() - - wd, err := os.Getwd() - if err != nil { - t.Fatal(err) - } - - defer func() { - if err := os.Chdir(wd); err != nil { - t.Fatal(err) - } - }() - - if err := os.Chdir(dir); err != nil { - t.Fatal(err) - } - - if out, err := exec.Command("go", "build", "-o", "mptest", "modernc.org/sqlite/internal/mptest").CombinedOutput(); err != nil { - t.Fatalf("go build mptest: %s\n%s", err, out) - } - - pat := filepath.Join(wd, filepath.FromSlash("testdata/mptest"), "*.test") - m, err := filepath.Glob(pat) - if err != nil { - t.Fatal(err) - } - - if len(m) == 0 { - t.Fatalf("%s: no files", pat) - } - - nm := filepath.FromSlash("./mptest") - for _, v := range m { - os.Remove("db") - out, err := exec.Command(nm, "db", v).CombinedOutput() - t.Logf("%s", out) - if err != nil { - t.Fatal(err) - } - } -} - -func TestThread1(t *testing.T) { - dir, err := ioutil.TempDir("", "sqlite-test-") - if err != nil { - t.Fatal(err) - } - - defer func() { - if err := os.RemoveAll(dir); err != nil { - t.Fatal(err) - } - }() - - wd, err := os.Getwd() - if err != nil { - t.Fatal(err) - } - - defer func() { - if err := os.Chdir(wd); err != nil { - t.Fatal(err) - } - }() - - if err := os.Chdir(dir); err != nil { - t.Fatal(err) - } - - if out, err := exec.Command("go", "build", "-o", "threadtest1", "modernc.org/sqlite/internal/threadtest1").CombinedOutput(); err != nil { - t.Fatalf("go build mptest: %s\n%s", err, out) - } - - out, err := exec.Command("./threadtest1", "10").CombinedOutput() - t.Logf("%s", out) - if err != nil { - t.Fatal(err) - } -} - -func TestThread2(t *testing.T) { - dir, err := ioutil.TempDir("", "sqlite-test-") - if err != nil { - t.Fatal(err) - } - - defer func() { - if err := os.RemoveAll(dir); err != nil { - t.Fatal(err) - } - }() - - wd, err := os.Getwd() - if err != nil { - t.Fatal(err) - } - - defer func() { - if err := os.Chdir(wd); err != nil { - t.Fatal(err) - } - }() - - if err := os.Chdir(dir); err != nil { - t.Fatal(err) - } - - if out, err := exec.Command("go", "build", "-o", "threadtest2", "modernc.org/sqlite/internal/threadtest2").CombinedOutput(); err != nil { - t.Fatalf("go build mptest: %s\n%s", err, out) - } - - out, err := exec.Command("./threadtest2").CombinedOutput() - t.Logf("%s", out) - if err != nil { - t.Fatal(err) - } -} - -func TestThread3(t *testing.T) { - t.Log("TODO") - return //TODO- - - //TODO sqlite3.c:142510: sqlite3_wal_hook(db, sqlite3WalDefaultHook, SQLITE_INT_TO_PTR(nFrame)); -> fatal error: bad pointer in write barrier - dir, err := ioutil.TempDir("", "sqlite-test-") - if err != nil { - t.Fatal(err) - } - - defer func() { - if err := os.RemoveAll(dir); err != nil { - t.Fatal(err) - } - }() - - wd, err := os.Getwd() - if err != nil { - t.Fatal(err) - } - - defer func() { - if err := os.Chdir(wd); err != nil { - t.Fatal(err) - } - }() - - if err := os.Chdir(dir); err != nil { - t.Fatal(err) - } - - s := []string{"build", "-o", "threadtest3"} - if *memTrace { - s = append(s, "-tags", "memory.trace", "-race") - } - if out, err := exec.Command("go", append(s, "modernc.org/sqlite/internal/threadtest3")...).CombinedOutput(); err != nil { - t.Fatalf("go build mptest: %s\n%s", err, out) - } - - for _, opts := range [][]string{ - {"walthread1"}, - {"walthread2"}, - {"walthread3"}, - {"walthread4"}, - {"walthread5"}, - {"cgt_pager_1"}, - {"dynamic_triggers"}, - {"checkpoint_starvation_1"}, - {"checkpoint_starvation_2"}, - {"create_drop_index_1"}, - {"lookaside1"}, - {"vacuum1"}, - {"stress1"}, - {"stress2"}, - } { - out, err := exec.Command("./threadtest3", opts...).CombinedOutput() - t.Logf("%v\n%s", opts, out) - if err != nil { - t.Fatal(err) - } - - if bytes.Contains(out, []byte("fault address")) || - bytes.Contains(out, []byte("data race")) || - bytes.Contains(out, []byte("RACE")) { - t.Fatal("fault") - } - } -} - -func TestThread4(t *testing.T) { - cases := 0 - dir, err := ioutil.TempDir("", "sqlite-test-") - if err != nil { - t.Fatal(err) - } - - defer func() { - if err := os.RemoveAll(dir); err != nil { - t.Fatal(err) - } - }() - - wd, err := os.Getwd() - if err != nil { - t.Fatal(err) - } - - defer func() { - if err := os.Chdir(wd); err != nil { - t.Fatal(err) - } - }() - - if err := os.Chdir(dir); err != nil { - t.Fatal(err) - } - - s := []string{"build", "-o", "threadtest4"} - if *memTrace { - s = append(s, "-tags", "memory.trace", "-race") - } - if out, err := exec.Command("go", append(s, "modernc.org/sqlite/internal/threadtest4")...).CombinedOutput(); err != nil { - t.Fatalf("go build mptest: %s\n%s", err, out) - } - - for _, opts := range [][]string{ - {}, - {"-wal"}, - {"-serialized"}, - {"-serialized", "-wal"}, - {"--multithread"}, - {"--multithread", "-wal"}, - {"--multithread", "-serialized"}, - {"--multithread", "-serialized", "-wal"}, - } { - out, err := exec.Command("./threadtest4", append(opts, "5")...).CombinedOutput() - t.Logf("%v\n%s", opts, out) - if err != nil { - t.Fatal(err) - } - - if bytes.Contains(out, []byte("fault address")) || - bytes.Contains(out, []byte("data race")) || - bytes.Contains(out, []byte("RACE")) { - t.Fatalf("case %v: fault", cases) - } - cases++ - } - t.Logf("cases: %v", cases) -} |