aboutsummaryrefslogtreecommitdiff
path: root/sqlite3_test/sqltest.go
diff options
context:
space:
mode:
Diffstat (limited to 'sqlite3_test/sqltest.go')
-rw-r--r--sqlite3_test/sqltest.go48
1 files changed, 31 insertions, 17 deletions
diff --git a/sqlite3_test/sqltest.go b/sqlite3_test/sqltest.go
index 84b65d9..0ad9c3a 100644
--- a/sqlite3_test/sqltest.go
+++ b/sqlite3_test/sqltest.go
@@ -11,14 +11,17 @@ import (
"time"
)
+// Dialect is a type of dialect of databases.
type Dialect int
+// Dialects for databases.
const (
- SQLITE Dialect = iota
- POSTGRESQL
- MYSQL
+ SQLITE Dialect = iota // SQLITE mean SQLite3 dialect
+ POSTGRESQL // POSTGRESQL mean PostgreSQL dialect
+ MYSQL // MYSQL mean MySQL dialect
)
+// DB provide context for the tests
type DB struct {
*testing.T
*sql.DB
@@ -32,19 +35,19 @@ var db *DB
var testTables = []string{"foo", "bar", "t", "bench"}
var tests = []testing.InternalTest{
- {"TestBlobs", TestBlobs},
- {"TestManyQueryRow", TestManyQueryRow},
- {"TestTxQuery", TestTxQuery},
- {"TestPreparedStmt", TestPreparedStmt},
+ {Name: "TestBlobs", F: TestBlobs},
+ {Name: "TestManyQueryRow", F: TestManyQueryRow},
+ {Name: "TestTxQuery", F: TestTxQuery},
+ {Name: "TestPreparedStmt", F: TestPreparedStmt},
}
var benchmarks = []testing.InternalBenchmark{
- {"BenchmarkExec", BenchmarkExec},
- {"BenchmarkQuery", BenchmarkQuery},
- {"BenchmarkParams", BenchmarkParams},
- {"BenchmarkStmt", BenchmarkStmt},
- {"BenchmarkRows", BenchmarkRows},
- {"BenchmarkStmtRows", BenchmarkStmtRows},
+ {Name: "BenchmarkExec", F: BenchmarkExec},
+ {Name: "BenchmarkQuery", F: BenchmarkQuery},
+ {Name: "BenchmarkParams", F: BenchmarkParams},
+ {Name: "BenchmarkStmt", F: BenchmarkStmt},
+ {Name: "BenchmarkRows", F: BenchmarkRows},
+ {Name: "BenchmarkStmtRows", F: BenchmarkStmtRows},
}
// RunTests runs the SQL test suite
@@ -78,7 +81,7 @@ func (db *DB) tearDown() {
case MYSQL, POSTGRESQL:
db.mustExec("drop table if exists " + tbl)
default:
- db.Fatal("unkown dialect")
+ db.Fatal("unknown dialect")
}
}
}
@@ -106,7 +109,7 @@ func (db *DB) blobType(size int) string {
case MYSQL:
return fmt.Sprintf("VARBINARY(%d)", size)
}
- panic("unkown dialect")
+ panic("unknown dialect")
}
func (db *DB) serialPK() string {
@@ -118,7 +121,7 @@ func (db *DB) serialPK() string {
case MYSQL:
return "integer primary key auto_increment"
}
- panic("unkown dialect")
+ panic("unknown dialect")
}
func (db *DB) now() string {
@@ -130,7 +133,7 @@ func (db *DB) now() string {
case MYSQL:
return "now()"
}
- panic("unkown dialect")
+ panic("unknown dialect")
}
func makeBench() {
@@ -149,6 +152,7 @@ func makeBench() {
}
}
+// TestResult is test for result
func TestResult(t *testing.T) {
db.tearDown()
db.mustExec("create temporary table test (id " + db.serialPK() + ", name varchar(10))")
@@ -175,6 +179,7 @@ func TestResult(t *testing.T) {
}
}
+// TestBlobs is test for blobs
func TestBlobs(t *testing.T) {
db.tearDown()
var blob = []byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
@@ -201,6 +206,7 @@ func TestBlobs(t *testing.T) {
}
}
+// TestManyQueryRow is test for many query row
func TestManyQueryRow(t *testing.T) {
if testing.Short() {
t.Log("skipping in short mode")
@@ -218,6 +224,7 @@ func TestManyQueryRow(t *testing.T) {
}
}
+// TestTxQuery is test for transactional query
func TestTxQuery(t *testing.T) {
db.tearDown()
tx, err := db.Begin()
@@ -256,6 +263,7 @@ func TestTxQuery(t *testing.T) {
}
}
+// TestPreparedStmt is test for prepared statement
func TestPreparedStmt(t *testing.T) {
db.tearDown()
db.mustExec("CREATE TABLE t (count INT)")
@@ -301,6 +309,7 @@ func TestPreparedStmt(t *testing.T) {
// test -bench but calling Benchmark() from a benchmark test
// currently hangs go.
+// BenchmarkExec is benchmark for exec
func BenchmarkExec(b *testing.B) {
for i := 0; i < b.N; i++ {
if _, err := db.Exec("select 1"); err != nil {
@@ -309,6 +318,7 @@ func BenchmarkExec(b *testing.B) {
}
}
+// BenchmarkQuery is benchmark for query
func BenchmarkQuery(b *testing.B) {
for i := 0; i < b.N; i++ {
var n sql.NullString
@@ -322,6 +332,7 @@ func BenchmarkQuery(b *testing.B) {
}
}
+// BenchmarkParams is benchmark for params
func BenchmarkParams(b *testing.B) {
for i := 0; i < b.N; i++ {
var n sql.NullString
@@ -335,6 +346,7 @@ func BenchmarkParams(b *testing.B) {
}
}
+// BenchmarkStmt is benchmark for statement
func BenchmarkStmt(b *testing.B) {
st, err := db.Prepare("select ?, ?, ?, ?")
if err != nil {
@@ -354,6 +366,7 @@ func BenchmarkStmt(b *testing.B) {
}
}
+// BenchmarkRows is benchmark for rows
func BenchmarkRows(b *testing.B) {
db.once.Do(makeBench)
@@ -378,6 +391,7 @@ func BenchmarkRows(b *testing.B) {
}
}
+// BenchmarkStmtRows is benchmark for statement rows
func BenchmarkStmtRows(b *testing.B) {
db.once.Do(makeBench)