diff --git a/e2e/ctl_v2_test.go b/e2e/ctl_v2_test.go index 394203d71..7b6dcf0bb 100644 --- a/e2e/ctl_v2_test.go +++ b/e2e/ctl_v2_test.go @@ -181,6 +181,12 @@ func testCtlV2GetRoleUser(t *testing.T, cfg *etcdProcessClusterConfig) { if err := etcdctlUserGet(epc, "username"); err != nil { t.Fatalf("failed to get user (%v)", err) } + // ensure double grant gives an error; was crashing in 2.3.1 + regrantArgs := etcdctlPrefixArgs(epc) + regrantArgs = append(regrantArgs, "user", "grant", "--roles", "foo", "username") + if err := spawnWithExpect(regrantArgs, "duplicate"); err != nil { + t.Fatalf("missing duplicate error on double grant role (%v)", err) + } } func TestCtlV2UserList(t *testing.T) {