diff --git a/e2e/ctl_v3_kv_test.go b/e2e/ctl_v3_kv_test.go index d8005bd1e..1fcc38ecc 100644 --- a/e2e/ctl_v3_kv_test.go +++ b/e2e/ctl_v3_kv_test.go @@ -29,6 +29,7 @@ func TestCtlV3PutClientTLSFlagByEnv(t *testing.T) { testCtl(t, putTest, withCfg(configClientTLS), withFlagByEnv()) } func TestCtlV3PutIgnoreValue(t *testing.T) { testCtl(t, putTestIgnoreValue) } +func TestCtlV3PutIgnoreLease(t *testing.T) { testCtl(t, putTestIgnoreLease) } func TestCtlV3Get(t *testing.T) { testCtl(t, getTest) } func TestCtlV3GetNoTLS(t *testing.T) { testCtl(t, getTest, withCfg(configNoTLS)) } @@ -78,6 +79,31 @@ func putTestIgnoreValue(cx ctlCtx) { } } +func putTestIgnoreLease(cx ctlCtx) { + leaseID, err := ctlV3LeaseGrant(cx, 10) + if err != nil { + cx.t.Fatalf("putTestIgnoreLease: ctlV3LeaseGrant error (%v)", err) + } + if err := ctlV3Put(cx, "foo", "bar", leaseID); err != nil { + cx.t.Fatalf("putTestIgnoreLease: ctlV3Put error (%v)", err) + } + if err := ctlV3Get(cx, []string{"foo"}, kv{"foo", "bar"}); err != nil { + cx.t.Fatalf("putTestIgnoreLease: ctlV3Get error (%v)", err) + } + if err := ctlV3Put(cx, "foo", "bar1", "", "--ignore-lease"); err != nil { + cx.t.Fatalf("putTestIgnoreLease: ctlV3Put error (%v)", err) + } + if err := ctlV3Get(cx, []string{"foo"}, kv{"foo", "bar1"}); err != nil { + cx.t.Fatalf("putTestIgnoreLease: ctlV3Get error (%v)", err) + } + if err := ctlV3LeaseRevoke(cx, leaseID); err != nil { + cx.t.Fatalf("putTestIgnoreLease: ctlV3LeaseRevok error (%v)", err) + } + if err := ctlV3Get(cx, []string{"key"}); err != nil { // expect no output + cx.t.Fatalf("putTestIgnoreLease: ctlV3Get error (%v)", err) + } +} + func getTest(cx ctlCtx) { var ( kvs = []kv{{"key1", "val1"}, {"key2", "val2"}, {"key3", "val3"}} @@ -245,17 +271,20 @@ func delTest(cx ctlCtx) { func ctlV3Put(cx ctlCtx, key, value, leaseID string, flags ...string) error { skipValue := false + skipLease := false for _, f := range flags { if f == "--ignore-value" { skipValue = true - break + } + if f == "--ignore-lease" { + skipLease = true } } cmdArgs := append(cx.PrefixArgs(), "put", key) if !skipValue { cmdArgs = append(cmdArgs, value) } - if leaseID != "" { + if leaseID != "" && !skipLease { cmdArgs = append(cmdArgs, "--lease", leaseID) } if len(flags) != 0 {