summaryrefslogtreecommitdiff
path: root/errors_test.go
diff options
context:
space:
mode:
authorroot <sina@snix.ir>2022-05-27 13:13:53 +0000
committerroot <sina@snix.ir>2022-05-27 13:13:53 +0000
commit937c561db4b25a1becdc81701511fafc67b90389 (patch)
tree17e5d4c692ec4ab3c8b0deb0072d5784cc4be084 /errors_test.go
fork mysql driverHEADmaster
Diffstat (limited to 'errors_test.go')
-rw-r--r--errors_test.go61
1 files changed, 61 insertions, 0 deletions
diff --git a/errors_test.go b/errors_test.go
new file mode 100644
index 0000000..816a4a9
--- /dev/null
+++ b/errors_test.go
@@ -0,0 +1,61 @@
+// Go MySQL Driver - A MySQL-Driver for Go's database/sql package
+//
+// Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved.
+//
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this file,
+// You can obtain one at http://mozilla.org/MPL/2.0/.
+
+package mariadb
+
+import (
+ "bytes"
+ "errors"
+ "log"
+ "testing"
+)
+
+func TestErrorsSetLogger(t *testing.T) {
+ previous := errLog
+ defer func() {
+ errLog = previous
+ }()
+
+ // set up logger
+ const expected = "prefix: test\n"
+ buffer := bytes.NewBuffer(make([]byte, 0, 64))
+ logger := log.New(buffer, "prefix: ", 0)
+
+ // print
+ SetLogger(logger)
+ errLog.Print("test")
+
+ // check result
+ if actual := buffer.String(); actual != expected {
+ t.Errorf("expected %q, got %q", expected, actual)
+ }
+}
+
+func TestErrorsStrictIgnoreNotes(t *testing.T) {
+ runTests(t, dsn+"&sql_notes=false", func(dbt *DBTest) {
+ dbt.mustExec("DROP TABLE IF EXISTS does_not_exist")
+ })
+}
+
+func TestMySQLErrIs(t *testing.T) {
+ infraErr := &MySQLError{Number: 1234, Message: "the server is on fire"}
+ otherInfraErr := &MySQLError{Number: 1234, Message: "the datacenter is flooded"}
+ if !errors.Is(infraErr, otherInfraErr) {
+ t.Errorf("expected errors to be the same: %+v %+v", infraErr, otherInfraErr)
+ }
+
+ differentCodeErr := &MySQLError{Number: 5678, Message: "the server is on fire"}
+ if errors.Is(infraErr, differentCodeErr) {
+ t.Fatalf("expected errors to be different: %+v %+v", infraErr, differentCodeErr)
+ }
+
+ nonMysqlErr := errors.New("not a mysql error")
+ if errors.Is(infraErr, nonMysqlErr) {
+ t.Fatalf("expected errors to be different: %+v %+v", infraErr, nonMysqlErr)
+ }
+}

Snix LLC Git Repository Holder Copyright(C) 2022 All Rights Reserved Email To Snix.IR