set etcdutl to default

This commit is contained in:
Kun Zhang 2022-03-24 16:20:28 +08:00
parent 3254125e6c
commit 62641d3385
3 changed files with 13 additions and 42 deletions

View File

@ -15,14 +15,13 @@
package e2e package e2e
import ( import (
"strconv"
"testing" "testing"
"go.etcd.io/etcd/tests/v3/framework/e2e" "go.etcd.io/etcd/tests/v3/framework/e2e"
) )
func TestCtlV3DefragOfflineEtcdutl(t *testing.T) { func TestCtlV3DefragOffline(t *testing.T) {
testCtlWithOffline(t, maintenanceInitKeys, defragOfflineTest, withEtcdutl()) testCtlWithOffline(t, maintenanceInitKeys, defragOfflineTest)
} }
func maintenanceInitKeys(cx ctlCtx) { func maintenanceInitKeys(cx ctlCtx) {
@ -54,12 +53,3 @@ func defragOfflineTest(cx ctlCtx) {
cx.t.Fatalf("defragTest ctlV3Defrag error (%v)", err) cx.t.Fatalf("defragTest ctlV3Defrag error (%v)", err)
} }
} }
func ctlV3Compact(cx ctlCtx, rev int64, physical bool) error {
rs := strconv.FormatInt(rev, 10)
cmdArgs := append(cx.PrefixArgs(), "compact", rs)
if physical {
cmdArgs = append(cmdArgs, "--physical")
}
return e2e.SpawnWithExpectWithEnv(cmdArgs, cx.envMap, "compacted revision "+rs)
}

View File

@ -29,8 +29,7 @@ import (
"go.etcd.io/etcd/tests/v3/framework/e2e" "go.etcd.io/etcd/tests/v3/framework/e2e"
) )
func TestCtlV3Snapshot(t *testing.T) { testCtl(t, snapshotTest) } func TestCtlV3Snapshot(t *testing.T) { testCtl(t, snapshotTest) }
func TestCtlV3SnapshotEtcdutl(t *testing.T) { testCtl(t, snapshotTest, withEtcdutl()) }
func snapshotTest(cx ctlCtx) { func snapshotTest(cx ctlCtx) {
maintenanceInitKeys(cx) maintenanceInitKeys(cx)
@ -62,7 +61,7 @@ func snapshotTest(cx ctlCtx) {
} }
} }
func TestCtlV3SnapshotCorruptEtcdutl(t *testing.T) { testCtl(t, snapshotCorruptTest, withEtcdutl()) } func TestCtlV3SnapshotCorrupt(t *testing.T) { testCtl(t, snapshotCorruptTest) }
func snapshotCorruptTest(cx ctlCtx) { func snapshotCorruptTest(cx ctlCtx) {
fpath := filepath.Join(cx.t.TempDir(), "snapshot") fpath := filepath.Join(cx.t.TempDir(), "snapshot")
@ -97,8 +96,8 @@ func snapshotCorruptTest(cx ctlCtx) {
} }
// This test ensures that the snapshot status does not modify the snapshot file // This test ensures that the snapshot status does not modify the snapshot file
func TestCtlV3SnapshotStatusBeforeRestoreEtcdutl(t *testing.T) { func TestCtlV3SnapshotStatusBeforeRestore(t *testing.T) {
testCtl(t, snapshotStatusBeforeRestoreTest, withEtcdutl()) testCtl(t, snapshotStatusBeforeRestoreTest)
} }
func snapshotStatusBeforeRestoreTest(cx ctlCtx) { func snapshotStatusBeforeRestoreTest(cx ctlCtx) {
@ -134,7 +133,6 @@ func ctlV3SnapshotSave(cx ctlCtx, fpath string) error {
} }
func getSnapshotStatus(cx ctlCtx, fpath string) (snapshot.Status, error) { func getSnapshotStatus(cx ctlCtx, fpath string) (snapshot.Status, error) {
cx.etcdutl = true
cmdArgs := append(cx.PrefixArgsUtl(), "--write-out", "json", "snapshot", "status", fpath) cmdArgs := append(cx.PrefixArgsUtl(), "--write-out", "json", "snapshot", "status", fpath)
proc, err := e2e.SpawnCmd(cmdArgs, nil) proc, err := e2e.SpawnCmd(cmdArgs, nil)
@ -158,11 +156,11 @@ func getSnapshotStatus(cx ctlCtx, fpath string) (snapshot.Status, error) {
return resp, nil return resp, nil
} }
func TestIssue6361etcdutl(t *testing.T) { testIssue6361(t, true) } func TestIssue6361(t *testing.T) { testIssue6361(t) }
// TestIssue6361 ensures new member that starts with snapshot correctly // TestIssue6361 ensures new member that starts with snapshot correctly
// syncs up with other members and serve correct data. // syncs up with other members and serve correct data.
func testIssue6361(t *testing.T, etcdutl bool) { func testIssue6361(t *testing.T) {
{ {
// This tests is pretty flaky on semaphoreci as of 2021-01-10. // This tests is pretty flaky on semaphoreci as of 2021-01-10.
// TODO: Remove when the flakiness source is identified. // TODO: Remove when the flakiness source is identified.
@ -216,14 +214,8 @@ func testIssue6361(t *testing.T, etcdutl bool) {
} }
newDataDir := filepath.Join(t.TempDir(), "test.data") newDataDir := filepath.Join(t.TempDir(), "test.data")
uctlBinPath := e2e.CtlBinPath
if etcdutl {
uctlBinPath = e2e.UtlBinPath
}
t.Log("etcdctl restoring the snapshot...") t.Log("etcdctl restoring the snapshot...")
err = e2e.SpawnWithExpect([]string{uctlBinPath, "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") err = e2e.SpawnWithExpect([]string{e2e.UtlBinPath, "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")
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -292,8 +284,8 @@ func testIssue6361(t *testing.T, etcdutl bool) {
// For storageVersion to be stored, all fields expected 3.6 fields need to be set. This happens after first WAL snapshot. // For storageVersion to be stored, all fields expected 3.6 fields need to be set. This happens after first WAL snapshot.
// In this test we lower SnapshotCount to 1 to ensure WAL snapshot is triggered. // In this test we lower SnapshotCount to 1 to ensure WAL snapshot is triggered.
func TestCtlV3SnapshotVersionEtcdutl(t *testing.T) { func TestCtlV3SnapshotVersion(t *testing.T) {
testCtl(t, snapshotVersionTest, withEtcdutl(), withCfg(e2e.EtcdProcessClusterConfig{SnapshotCount: 1})) testCtl(t, snapshotVersionTest, withCfg(e2e.EtcdProcessClusterConfig{SnapshotCount: 1}))
} }
func snapshotVersionTest(cx ctlCtx) { func snapshotVersionTest(cx ctlCtx) {

View File

@ -145,9 +145,6 @@ type ctlCtx struct {
// for compaction // for compaction
compactPhysical bool compactPhysical bool
// to run etcdutl instead of etcdctl for suitable commands.
etcdutl bool
// dir that was used during the test // dir that was used during the test
dataDir string dataDir string
} }
@ -201,10 +198,6 @@ func withFlagByEnv() ctlOption {
return func(cx *ctlCtx) { cx.envMap = make(map[string]string) } return func(cx *ctlCtx) { cx.envMap = make(map[string]string) }
} }
func withEtcdutl() ctlOption {
return func(cx *ctlCtx) { cx.etcdutl = true }
}
func testCtl(t *testing.T, testFunc func(ctlCtx), opts ...ctlOption) { func testCtl(t *testing.T, testFunc func(ctlCtx), opts ...ctlOption) {
testCtlWithOffline(t, testFunc, nil, opts...) testCtlWithOffline(t, testFunc, nil, opts...)
} }
@ -331,14 +324,10 @@ func (cx *ctlCtx) PrefixArgs() []string {
return cx.prefixArgs(cx.epc.EndpointsV3()) return cx.prefixArgs(cx.epc.EndpointsV3())
} }
// PrefixArgsUtl returns prefix of the command that is either etcdctl or etcdutl // PrefixArgsUtl returns prefix of the command that is etcdutl
// depending on cx configuration.
// Please not thet 'utl' compatible commands does not consume --endpoints flag. // Please not thet 'utl' compatible commands does not consume --endpoints flag.
func (cx *ctlCtx) PrefixArgsUtl() []string { func (cx *ctlCtx) PrefixArgsUtl() []string {
if cx.etcdutl { return []string{e2e.UtlBinPath}
return []string{e2e.UtlBinPath}
}
return []string{e2e.CtlBinPath}
} }
func isGRPCTimedout(err error) bool { func isGRPCTimedout(err error) bool {