69 lines
1.3 KiB
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)
|
|
}
|