48 lines
1.3 KiB
Go
48 lines
1.3 KiB
Go
package tsm1
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
func TestSQLBlockExporter_Export(t *testing.T) {
|
|
dir := mustTempDir()
|
|
defer os.RemoveAll(dir)
|
|
f := mustTempFile(dir)
|
|
|
|
// Write data.
|
|
if w, err := NewTSMWriter(f); err != nil {
|
|
t.Fatal(err)
|
|
} else if err := w.Write([]byte("cpu"), []Value{NewValue(0, int64(1))}); err != nil {
|
|
t.Fatal(err)
|
|
} else if err := w.Write([]byte("mem"), []Value{NewValue(0, int64(2))}); err != nil {
|
|
t.Fatal(err)
|
|
} else if err := w.WriteIndex(); err != nil {
|
|
t.Fatal(err)
|
|
} else if err := w.Close(); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// Expected output.
|
|
want := fmt.Sprintf(`
|
|
BEGIN TRANSACTION;
|
|
INSERT INTO blocks (filename, org_id, bucket_id, key, type, min_time, max_time, checksum, count) VALUES ('%s', 0, 0, 'cpu', 'integer', 0, 0, 3294968665, 1);
|
|
INSERT INTO blocks (filename, org_id, bucket_id, key, type, min_time, max_time, checksum, count) VALUES ('%s', 0, 0, 'mem', 'integer', 0, 0, 755408492, 1);
|
|
COMMIT;
|
|
`[1:], f.Name(), f.Name())
|
|
|
|
// Export file to SQL.
|
|
var buf bytes.Buffer
|
|
e := NewSQLBlockExporter(&buf)
|
|
e.ShowSchema = false
|
|
if err := e.ExportFile(f.Name()); err != nil {
|
|
t.Fatal(err)
|
|
} else if err := e.Close(); err != nil {
|
|
t.Fatal(err)
|
|
} else if got := buf.String(); got != want {
|
|
t.Fatalf("unexpected output:\ngot=%s\n--\nwant=%s", got, want)
|
|
}
|
|
}
|