diff --git a/e2e/etcd_config_test.go b/e2e/etcd_config_test.go new file mode 100644 index 000000000..9e308c3bc --- /dev/null +++ b/e2e/etcd_config_test.go @@ -0,0 +1,34 @@ +// Copyright 2016 The etcd Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package e2e + +import ( + "testing" +) + +const exampleConfigFile = "../etcd.conf.yml.sample" + +func TestEtcdExampleConfig(t *testing.T) { + proc, err := spawnCmd([]string{binDir + "/etcd", "--config-file", exampleConfigFile}) + if err != nil { + t.Fatal(err) + } + if err = waitReadyExpectProc(proc, false); err != nil { + t.Fatal(err) + } + if err = proc.Stop(); err != nil { + t.Fatal(err) + } +} diff --git a/e2e/etcd_test.go b/e2e/etcd_test.go index 574a0a6bd..2570d87eb 100644 --- a/e2e/etcd_test.go +++ b/e2e/etcd_test.go @@ -446,8 +446,13 @@ func (ep *etcdProcess) Stop() error { } func (ep *etcdProcess) waitReady() error { + defer close(ep.donec) + return waitReadyExpectProc(ep.proc, ep.cfg.isProxy) +} + +func waitReadyExpectProc(exproc *expect.ExpectProcess, isProxy bool) error { readyStrs := []string{"enabled capabilities for version", "published"} - if ep.cfg.isProxy { + if isProxy { readyStrs = []string{"httpproxy: endpoints found"} } c := 0 @@ -460,8 +465,7 @@ func (ep *etcdProcess) waitReady() error { } return c == len(readyStrs) } - _, err := ep.proc.ExpectFunc(matchSet) - close(ep.donec) + _, err := exproc.ExpectFunc(matchSet) return err } diff --git a/embed/config.go b/embed/config.go index 5e51c314b..cb1ff1147 100644 --- a/embed/config.go +++ b/embed/config.go @@ -160,7 +160,7 @@ func NewConfig() *Config { } func ConfigFromFile(path string) (*Config, error) { - cfg := &configYAML{} + cfg := &configYAML{Config: *NewConfig()} if err := cfg.configFromFile(path); err != nil { return nil, err }