mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Integrate verification into e2e tests.
This commit is contained in:
parent
911204cd76
commit
2ad893b110
@ -147,6 +147,8 @@ func (ep *ExpectProcess) Signal(sig os.Signal) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Close waits for the expect process to exit.
|
// Close waits for the expect process to exit.
|
||||||
|
// Close currently does not return error if process exited with !=0 status.
|
||||||
|
// TODO: Close should expose underlying proces failure by default.
|
||||||
func (ep *ExpectProcess) Close() error { return ep.close(false) }
|
func (ep *ExpectProcess) Close() error { return ep.close(false) }
|
||||||
|
|
||||||
func (ep *ExpectProcess) close(kill bool) error {
|
func (ep *ExpectProcess) close(kill bool) error {
|
||||||
@ -162,7 +164,6 @@ func (ep *ExpectProcess) close(kill bool) error {
|
|||||||
ep.wg.Wait()
|
ep.wg.Wait()
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ep.err = err
|
|
||||||
if !kill && strings.Contains(err.Error(), "exit status") {
|
if !kill && strings.Contains(err.Error(), "exit status") {
|
||||||
// non-zero exit code
|
// non-zero exit code
|
||||||
err = nil
|
err = nil
|
||||||
@ -170,6 +171,7 @@ func (ep *ExpectProcess) close(kill bool) error {
|
|||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ep.cmd = nil
|
ep.cmd = nil
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -178,3 +180,12 @@ func (ep *ExpectProcess) Send(command string) error {
|
|||||||
_, err := io.WriteString(ep.fpty, command)
|
_, err := io.WriteString(ep.fpty, command)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (ep *ExpectProcess) ProcessError() error {
|
||||||
|
if strings.Contains(ep.err.Error(), "input/output error") {
|
||||||
|
// TODO: The expect library should not return
|
||||||
|
// `/dev/ptmx: input/output error` when process just exits.
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return ep.err
|
||||||
|
}
|
||||||
|
@ -20,17 +20,14 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.etcd.io/etcd/client/pkg/v3/testutil"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func BeforeTestV2(t testing.TB) {
|
func BeforeTestV2(t testing.TB) {
|
||||||
skipInShortMode(t)
|
BeforeTest(t)
|
||||||
os.Setenv("ETCDCTL_API", "2")
|
os.Setenv("ETCDCTL_API", "2")
|
||||||
t.Cleanup(func() {
|
t.Cleanup(func() {
|
||||||
os.Unsetenv("ETCDCTL_API")
|
os.Unsetenv("ETCDCTL_API")
|
||||||
})
|
})
|
||||||
testutil.BeforeTest(t)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCtlV2Set(t *testing.T) { testCtlV2Set(t, newConfigNoTLS(), false) }
|
func TestCtlV2Set(t *testing.T) { testCtlV2Set(t, newConfigNoTLS(), false) }
|
||||||
@ -493,7 +490,11 @@ func etcdctlBackup(t testing.TB, clus *etcdProcessCluster, dataDir, backupDir st
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return proc.Close()
|
err = proc.Close()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return proc.ProcessError()
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupEtcdctlTest(t *testing.T, cfg *etcdProcessClusterConfig, quorum bool) *etcdProcessCluster {
|
func setupEtcdctlTest(t *testing.T, cfg *etcdProcessClusterConfig, quorum bool) *etcdProcessCluster {
|
||||||
|
@ -23,10 +23,13 @@ import (
|
|||||||
|
|
||||||
"go.etcd.io/etcd/client/pkg/v3/testutil"
|
"go.etcd.io/etcd/client/pkg/v3/testutil"
|
||||||
"go.etcd.io/etcd/client/v3"
|
"go.etcd.io/etcd/client/v3"
|
||||||
|
"go.etcd.io/etcd/server/v3/verify"
|
||||||
)
|
)
|
||||||
|
|
||||||
func BeforeTest(t testing.TB) {
|
func BeforeTest(t testing.TB) {
|
||||||
|
skipInShortMode(t)
|
||||||
testutil.BeforeTest(t)
|
testutil.BeforeTest(t)
|
||||||
|
os.Setenv(verify.ENV_VERIFY, verify.ENV_VERIFY_ALL_VALUE)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCtlV3Migrate(t *testing.T) {
|
func TestCtlV3Migrate(t *testing.T) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user