imposm3/replication/source_test.go

69 lines
1.3 KiB
Go

package replication
import (
"io/ioutil"
"os"
"path/filepath"
"time"
"testing"
)
func TestSeqPath(t *testing.T) {
if path := seqPath(0); path != "000/000/000" {
t.Fatal(path)
}
if path := seqPath(3069); path != "000/003/069" {
t.Fatal(path)
}
if path := seqPath(123456789); path != "123/456/789" {
t.Fatal(path)
}
}
func TestWaitTillPresent(t *testing.T) {
tmpdir, err := ioutil.TempDir("", "imposm_tests")
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(tmpdir)
exists := filepath.Join(tmpdir, "exists")
f, err := os.Create(exists)
if err != nil {
t.Fatal(err)
}
f.Close()
waitTillPresent(exists)
create := filepath.Join(tmpdir, "create")
go func() {
time.Sleep(200 * time.Millisecond)
f, err := os.Create(create)
if err != nil {
t.Fatal(err)
}
f.Close()
}()
waitTillPresent(create)
sub := filepath.Join(tmpdir, "sub", "dir", "create")
go func() {
time.Sleep(200 * time.Millisecond)
if err := os.Mkdir(filepath.Join(tmpdir, "sub"), 0755); err != nil {
t.Fatal(err)
}
time.Sleep(200 * time.Millisecond)
if err := os.Mkdir(filepath.Join(tmpdir, "sub", "dir"), 0755); err != nil {
t.Fatal(err)
}
time.Sleep(200 * time.Millisecond)
f, err := os.Create(sub)
if err != nil {
t.Fatal(err)
}
f.Close()
}()
waitTillPresent(sub)
}