diff options
author | mattn <mattn.jp@gmail.com> | 2016-09-27 11:28:46 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-27 11:28:46 +0900 |
commit | 4b0af852c17164dce48e6754e3094c55192e4934 (patch) | |
tree | 0911f2be4d5c52a36b5d52b62698e668d12542ad /backup_test.go | |
parent | TestAggregatorRegistration may fail if trace feature is not implemented (diff) | |
parent | Test the error reporting when preparing to perform a backup. (diff) | |
download | golite-4b0af852c17164dce48e6754e3094c55192e4934.tar.gz golite-4b0af852c17164dce48e6754e3094c55192e4934.tar.xz |
Merge pull request #331 from a-p-/test-backup-error
Test the error reporting when preparing to perform a backup.
Diffstat (limited to 'backup_test.go')
-rw-r--r-- | backup_test.go | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/backup_test.go b/backup_test.go index d14cd06..73c0a4b 100644 --- a/backup_test.go +++ b/backup_test.go @@ -245,3 +245,46 @@ func TestBackupStepByStep(t *testing.T) { func TestBackupAllRemainingPages(t *testing.T) { testBackup(t, testRowCount, false) } + +// Test the error reporting when preparing to perform a backup. +func TestBackupError(t *testing.T) { + const driverName = "sqlite3_TestBackupError" + + // The driver's connection will be needed in order to perform the backup. + var dbDriverConn *SQLiteConn + sql.Register(driverName, &SQLiteDriver{ + ConnectHook: func(conn *SQLiteConn) error { + dbDriverConn = conn + return nil + }, + }) + + // Connect to the database. + dbTempFilename := TempFilename(t) + defer os.Remove(dbTempFilename) + db, err := sql.Open(driverName, dbTempFilename) + if err != nil { + t.Fatal("Failed to open the database:", err) + } + defer db.Close() + db.Ping() + + // Need the driver connection in order to perform the backup. + if dbDriverConn == nil { + t.Fatal("Failed to get the driver connection.") + } + + // Prepare to perform the backup. + // Intentionally using the same connection for both the source and destination databases, to trigger an error result. + backup, err := dbDriverConn.Backup("main", dbDriverConn, "main") + if err == nil { + t.Fatal("Failed to get the expected error result.") + } + const expectedError = "source and destination must be distinct" + if err.Error() != expectedError { + t.Fatalf("Unexpected error message; expected value: \"%v\"; actual value: \"%v\"", expectedError, err.Error()) + } + if backup != nil { + t.Fatal("Failed to get the expected nil backup result.") + } +} |