Commit 560595ad authored by gwenn's avatar gwenn

Close Backup at the end of Run.

parent 3d6092ae
......@@ -20,7 +20,6 @@ import (
// Example:
// bck, err := sqlite.NewBackup(dst, "main", src, "main")
// // check err
// defer bck.Close()
// cbs := make(chan sqlite.BackupStatus)
// go func() {
// s := <- cbs
......@@ -86,7 +85,15 @@ func (b *Backup) Run(npage int, sleepNs time.Duration, c chan<- BackupStatus) er
time.Sleep(sleepNs)
}
}
return b.dst.error(C.sqlite3_errcode(b.dst.db))
if err != Done {
b.Close()
} else {
err = b.Close()
}
if err != nil && err != Done {
return err
}
return nil
}
// Finish/stop the backup
......
package sqlite_test
import (
. "github.com/gwenn/gosqlite"
"testing"
)
func TestBackup(t *testing.T) {
dst := open(t)
defer dst.Close()
src := open(t)
defer src.Close()
fill(src, 1000)
bck, err := NewBackup(dst, "main", src, "main")
checkNoError(t, err, "couldn't init backup: %#v")
cbs := make(chan BackupStatus)
go func() {
s := <- cbs
t.Logf("Backup progress %#v\n", s)
}()
err = bck.Run(100, 0, cbs)
checkNoError(t, err, "couldn't do backup: %#v")
}
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment