12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package worker
- import (
- "io/ioutil"
- "os"
- "testing"
- . "github.com/smartystreets/goconvey/convey"
- )
- func TestConfig(t *testing.T) {
- var cfgBlob = `
- [global]
- name = "test_worker"
- token = "some_token"
- log_dir = "/var/log/tunasync"
- mirror_dir = "/data/mirrors"
- concurrent = 10
- interval = 240
- [[mirrors]]
- name = "AOSP"
- provider = "command"
- upstream = "https://aosp.google.com/"
- interval = 720
- mirror_dir = "/data/git/AOSP"
- [mirrors.env]
- REPO = "/usr/local/bin/aosp-repo"
- [[mirrors]]
- name = "debian"
- provider = "two-stage-rsync"
- stage1_profile = "debian"
- upstream = "rsync://ftp.debian.org/debian/"
- use_ipv6 = true
- [[mirrors]]
- name = "fedora"
- provider = "rsync"
- upstream = "rsync://ftp.fedoraproject.org/fedora/"
- use_ipv6 = true
- exclude_file = "/etc/tunasync.d/fedora-exclude.txt"
- `
- Convey("When giving invalid file", t, func() {
- cfg, err := loadConfig("/path/to/invalid/file")
- So(err, ShouldNotBeNil)
- So(cfg, ShouldBeNil)
- })
- Convey("Everything should work on valid config file", t, func() {
- tmpfile, err := ioutil.TempFile("", "tunasync")
- So(err, ShouldEqual, nil)
- defer os.Remove(tmpfile.Name())
- err = ioutil.WriteFile(tmpfile.Name(), []byte(cfgBlob), 0644)
- So(err, ShouldEqual, nil)
- defer tmpfile.Close()
- cfg, err := loadConfig(tmpfile.Name())
- So(err, ShouldBeNil)
- So(cfg.Global.Name, ShouldEqual, "test_worker")
- So(cfg.Global.Interval, ShouldEqual, 240)
- So(cfg.Global.MirrorDir, ShouldEqual, "/data/mirrors")
- m := cfg.Mirrors[0]
- So(m.Name, ShouldEqual, "AOSP")
- So(m.MirrorDir, ShouldEqual, "/data/git/AOSP")
- So(m.Provider, ShouldEqual, ProvCommand)
- So(m.Interval, ShouldEqual, 720)
- So(m.Env["REPO"], ShouldEqual, "/usr/local/bin/aosp-repo")
- m = cfg.Mirrors[1]
- So(m.Name, ShouldEqual, "debian")
- So(m.MirrorDir, ShouldEqual, "")
- So(m.Provider, ShouldEqual, ProvTwoStageRsync)
- m = cfg.Mirrors[2]
- So(m.Name, ShouldEqual, "fedora")
- So(m.MirrorDir, ShouldEqual, "")
- So(m.Provider, ShouldEqual, ProvRsync)
- So(m.ExcludeFile, ShouldEqual, "/etc/tunasync.d/fedora-exclude.txt")
- So(len(cfg.Mirrors), ShouldEqual, 3)
- })
- }
|