Fork github.com/mattn/go-sqlite3 with adjustment for go1.16.2
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.3 KiB

  1. // Copyright (C) 2019 Yasuhiro Matsumoto <mattn.jp@gmail.com>.
  2. //
  3. // Use of this source code is governed by an MIT-style
  4. // license that can be found in the LICENSE file.
  5. // +build !sqlite_omit_load_extension
  6. package sqlite3
  7. import (
  8. "database/sql"
  9. "testing"
  10. )
  11. func TestExtensionsError(t *testing.T) {
  12. sql.Register("sqlite3_TestExtensionsError",
  13. &SQLiteDriver{
  14. Extensions: []string{
  15. "foobar",
  16. },
  17. },
  18. )
  19. db, err := sql.Open("sqlite3_TestExtensionsError", ":memory:")
  20. if err != nil {
  21. t.Fatal(err)
  22. }
  23. defer db.Close()
  24. err = db.Ping()
  25. if err == nil {
  26. t.Fatal("expected error loading non-existent extension")
  27. }
  28. if err.Error() == "not an error" {
  29. t.Fatal("expected error from sqlite3_enable_load_extension to be returned")
  30. }
  31. }
  32. func TestLoadExtensionError(t *testing.T) {
  33. sql.Register("sqlite3_TestLoadExtensionError",
  34. &SQLiteDriver{
  35. ConnectHook: func(c *SQLiteConn) error {
  36. return c.LoadExtension("foobar", "")
  37. },
  38. },
  39. )
  40. db, err := sql.Open("sqlite3_TestLoadExtensionError", ":memory:")
  41. if err != nil {
  42. t.Fatal(err)
  43. }
  44. defer db.Close()
  45. err = db.Ping()
  46. if err == nil {
  47. t.Fatal("expected error loading non-existent extension")
  48. }
  49. if err.Error() == "not an error" {
  50. t.Fatal("expected error from sqlite3_enable_load_extension to be returned")
  51. }
  52. }