func (s *UpdateTestSuite) SetUpSuite(t *C) { var err error s.tmpDir, err = ioutil.TempDir("/tmp", "percona-agent-test-pct-update") t.Assert(err, IsNil) s.logChan = make(chan *proto.LogEntry, 1000) s.logger = pct.NewLogger(s.logChan, "qan-test") links := map[string]string{ "agent": "http://localhost/agent", "instances": "http://localhost/instances", "update": "http://localhost/update", } s.api = mock.NewAPI("http://localhost", "http://localhost", "123", "abc-123-def", links) test.CopyFile(test.RootDir+"/pct/fake-percona-agent-1.0.1.go", s.tmpDir) cwd, err := os.Getwd() t.Assert(err, IsNil) defer os.Chdir(cwd) err = os.Chdir(s.tmpDir) t.Assert(err, IsNil) out, err := exec.Command("go", "build", "fake-percona-agent-1.0.1.go").Output() if err != nil { t.Logf("%s", out) t.Fatal(err) } s.bin, s.sig, err = test.Sign(filepath.Join(s.tmpDir, "fake-percona-agent-1.0.1")) t.Assert(err, IsNil) s.pubKey, err = ioutil.ReadFile(filepath.Join(test.RootDir, "pct", "key.pub")) t.Assert(err, IsNil) }
func (s *RepoTestSuite) TestInit(t *C) { im := instance.NewRepo(s.logger, s.configDir, s.api) t.Assert(im, NotNil) err := im.Init() t.Check(err, IsNil) err = test.CopyFile(test.RootDir+"/mm/config/mysql-1.conf", s.configDir) t.Assert(err, IsNil) err = im.Init() t.Assert(err, IsNil) mysqlIt := &proto.MySQLInstance{} err = im.Get("mysql", 1, mysqlIt) t.Assert(err, IsNil) expect := &proto.MySQLInstance{ Id: 1, Hostname: "db1", DSN: "user:host@tcp:(127.0.0.1:3306)", Distro: "Percona Server", Version: "5.6.16", } if same, diff := test.IsDeeply(mysqlIt, expect); !same { test.Dump(mysqlIt) test.Dump(expect) t.Error(diff) } }
func (s *AgentTestSuite) TestLoadConfig(t *C) { // Load a partial config to make sure LoadConfig() works in general but also // when the config has missing options (which is normal). os.Remove(s.configFile) test.CopyFile(sample+"/config001.json", s.configFile) bytes, err := agent.LoadConfig() t.Assert(err, IsNil) got := &agent.Config{} if err := json.Unmarshal(bytes, got); err != nil { t.Fatal(err) } expect := &agent.Config{ AgentUuid: "abc-123-def", ApiHostname: agent.DEFAULT_API_HOSTNAME, ApiKey: "123", Keepalive: agent.DEFAULT_KEEPALIVE, PidFile: agent.DEFAULT_PIDFILE, } if same, diff := test.IsDeeply(got, expect); !same { // @todo: if expect is not ptr, IsDeeply dies with "got ptr, expected struct" test.Dump(got) t.Error(diff) } // Load a config with all options to make sure LoadConfig() hasn't missed any. os.Remove(s.configFile) test.CopyFile(sample+"/full_config.json", s.configFile) bytes, err = agent.LoadConfig() t.Assert(err, IsNil) got = &agent.Config{} if err := json.Unmarshal(bytes, got); err != nil { t.Fatal(err) } expect = &agent.Config{ ApiHostname: "agent hostname", ApiKey: "api key", AgentUuid: "agent uuid", Keepalive: agent.DEFAULT_KEEPALIVE, PidFile: "pid file", } if same, diff := test.IsDeeply(got, expect); !same { test.Dump(got) t.Error(diff) } }