// Copyright (C) 2019 Yasuhiro Matsumoto . // // Use of this source code is governed by an MIT-style // license that can be found in the LICENSE file. // +build !sqlite_omit_load_extension package sqlite3 import ( "database/sql" "testing" ) func TestExtensionsError(t *testing.T) { sql.Register("sqlite3_TestExtensionsError", &SQLiteDriver{ Extensions: []string{ "foobar", }, }, ) db, err := sql.Open("sqlite3_TestExtensionsError", ":memory:") if err != nil { t.Fatal(err) } defer db.Close() err = db.Ping() if err == nil { t.Fatal("expected error loading non-existent extension") } if err.Error() == "not an error" { t.Fatal("expected error from sqlite3_enable_load_extension to be returned") } } func TestLoadExtensionError(t *testing.T) { sql.Register("sqlite3_TestLoadExtensionError", &SQLiteDriver{ ConnectHook: func(c *SQLiteConn) error { return c.LoadExtension("foobar", "") }, }, ) db, err := sql.Open("sqlite3_TestLoadExtensionError", ":memory:") if err != nil { t.Fatal(err) } defer db.Close() err = db.Ping() if err == nil { t.Fatal("expected error loading non-existent extension") } if err.Error() == "not an error" { t.Fatal("expected error from sqlite3_enable_load_extension to be returned") } }