github.com/cellofellow/gopkg@v0.0.0-20140722061823-eec0544a62ad/database/sqlite3/error_test.go (about)

     1  package sqlite3
     2  
     3  import (
     4  	"database/sql"
     5  	"io/ioutil"
     6  	"os"
     7  	"path"
     8  	"testing"
     9  )
    10  
    11  func TestFailures(t *testing.T) {
    12  	dirName, err := ioutil.TempDir("", "sqlite3")
    13  	if err != nil {
    14  		t.Fatal(err)
    15  	}
    16  	defer os.RemoveAll(dirName)
    17  
    18  	dbFileName := path.Join(dirName, "test.db")
    19  	f, err := os.Create(dbFileName)
    20  	if err != nil {
    21  		t.Error(err)
    22  	}
    23  	f.Write([]byte{1, 2, 3, 4, 5})
    24  	f.Close()
    25  
    26  	db, err := sql.Open("sqlite3", dbFileName)
    27  	if err == nil {
    28  		_, err = db.Exec("drop table foo")
    29  	}
    30  	if err != ErrNotADB {
    31  		t.Error("wrong error code for corrupted DB")
    32  	}
    33  	if err.Error() == "" {
    34  		t.Error("wrong error string for corrupted DB")
    35  	}
    36  	db.Close()
    37  }