From 099fd6582147bff74c6742e8a6af443d9edb4869 Mon Sep 17 00:00:00 2001 From: Piotr Tabor Date: Sun, 16 May 2021 10:58:41 +0200 Subject: [PATCH] Fix coverage test failure: e2e TestIssue6361. Tested with: ``` (cd tests && COVERDIR='../../c' 'env' 'go' 'test' '-tags=cov' '-timeout' '30m' 'go.etcd.io/etcd/tests/v3/e2e' -run TestIssue6361 -v 2>&1 | tee log.log) ``` --- tests/e2e/cluster_test.go | 5 +++++ tests/e2e/ctl_v3_snapshot_test.go | 3 +-- tests/e2e/etcd_process.go | 18 ++++++++++++++++-- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/tests/e2e/cluster_test.go b/tests/e2e/cluster_test.go index f30d7db23..4b3993d5c 100644 --- a/tests/e2e/cluster_test.go +++ b/tests/e2e/cluster_test.go @@ -25,6 +25,7 @@ import ( "go.etcd.io/etcd/server/v3/etcdserver" "go.etcd.io/etcd/tests/v3/integration" + "go.uber.org/zap" "go.uber.org/zap/zaptest" ) @@ -134,6 +135,7 @@ func configStandalone(cfg etcdProcessClusterConfig) *etcdProcessClusterConfig { } type etcdProcessCluster struct { + lg *zap.Logger cfg *etcdProcessClusterConfig procs []etcdProcess } @@ -182,6 +184,7 @@ func newEtcdProcessCluster(t testing.TB, cfg *etcdProcessClusterConfig) (*etcdPr etcdCfgs := cfg.etcdServerProcessConfigs(t) epc := &etcdProcessCluster{ cfg: cfg, + lg: zaptest.NewLogger(t), procs: make([]etcdProcess, cfg.clusterSize), } @@ -451,6 +454,7 @@ func (epc *etcdProcessCluster) Stop() (err error) { } func (epc *etcdProcessCluster) Close() error { + epc.lg.Info("closing test cluster...") err := epc.Stop() for _, p := range epc.procs { // p is nil when newEtcdProcess fails in the middle @@ -462,6 +466,7 @@ func (epc *etcdProcessCluster) Close() error { err = cerr } } + epc.lg.Info("closed test cluster.") return err } diff --git a/tests/e2e/ctl_v3_snapshot_test.go b/tests/e2e/ctl_v3_snapshot_test.go index 5ef41280b..8ef76cea5 100644 --- a/tests/e2e/ctl_v3_snapshot_test.go +++ b/tests/e2e/ctl_v3_snapshot_test.go @@ -193,7 +193,6 @@ func TestIssue6361(t *testing.T) { } fpath := filepath.Join(t.TempDir(), "test.snapshot") - defer os.RemoveAll(fpath) t.Log("etcdctl saving snapshot...") if err = spawnWithExpect(append(prefixArgs, "snapshot", "save", fpath), fmt.Sprintf("Snapshot saved at %s", fpath)); err != nil { @@ -206,7 +205,6 @@ func TestIssue6361(t *testing.T) { } newDataDir := filepath.Join(t.TempDir(), "test.data") - defer os.RemoveAll(newDataDir) t.Log("etcdctl restoring the snapshot...") err = spawnWithExpect([]string{ctlBinPath, "snapshot", "restore", fpath, "--name", epc.procs[0].Config().name, "--initial-cluster", epc.procs[0].Config().initialCluster, "--initial-cluster-token", epc.procs[0].Config().initialToken, "--initial-advertise-peer-urls", epc.procs[0].Config().purl.String(), "--data-dir", newDataDir}, "added member") @@ -273,4 +271,5 @@ func TestIssue6361(t *testing.T) { if err = nepc.Stop(); err != nil { t.Fatal(err) } + t.Log("Test logic done") } diff --git a/tests/e2e/etcd_process.go b/tests/e2e/etcd_process.go index aecd56ce3..67c293fe5 100644 --- a/tests/e2e/etcd_process.go +++ b/tests/e2e/etcd_process.go @@ -90,23 +90,34 @@ func (ep *etcdServerProcess) Start() error { if ep.proc != nil { panic("already started") } + ep.cfg.lg.Info("starting server...", zap.String("name", ep.cfg.name)) proc, err := spawnCmdWithLogger(ep.cfg.lg, append([]string{ep.cfg.execPath}, ep.cfg.args...)) if err != nil { return err } ep.proc = proc - return ep.waitReady() + err = ep.waitReady() + if err == nil { + ep.cfg.lg.Info("started server.", zap.String("name", ep.cfg.name)) + } + return err } func (ep *etcdServerProcess) Restart() error { + ep.cfg.lg.Info("restaring server...", zap.String("name", ep.cfg.name)) if err := ep.Stop(); err != nil { return err } ep.donec = make(chan struct{}) - return ep.Start() + err := ep.Start() + if err == nil { + ep.cfg.lg.Info("restared server", zap.String("name", ep.cfg.name)) + } + return err } func (ep *etcdServerProcess) Stop() (err error) { + ep.cfg.lg.Info("stoping server...", zap.String("name", ep.cfg.name)) if ep == nil || ep.proc == nil { return nil } @@ -123,13 +134,16 @@ func (ep *etcdServerProcess) Stop() (err error) { return err } } + ep.cfg.lg.Info("stopped server.", zap.String("name", ep.cfg.name)) return nil } func (ep *etcdServerProcess) Close() error { + ep.cfg.lg.Info("closing server...", zap.String("name", ep.cfg.name)) if err := ep.Stop(); err != nil { return err } + ep.cfg.lg.Info("removing directory", zap.String("data-dir", ep.cfg.dataDirPath)) return os.RemoveAll(ep.cfg.dataDirPath) }