diff --git a/agent/agent_test.go b/agent/agent_test.go index 43660671dc..e2dee448d8 100644 --- a/agent/agent_test.go +++ b/agent/agent_test.go @@ -33,7 +33,6 @@ import ( "github.com/hashicorp/consul/types" "github.com/hashicorp/go-uuid" "github.com/hashicorp/serf/serf" - "github.com/pascaldekloe/goe/verify" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -1026,8 +1025,6 @@ func TestAgent_IndexChurn(t *testing.T) { // verifyIndexChurn registers some things and runs anti-entropy a bunch of times // in a row to make sure there are no index bumps. func verifyIndexChurn(t *testing.T, tags []string) { - t.Helper() - a := NewTestAgent(t, "") defer a.Shutdown() @@ -1115,7 +1112,7 @@ func verifyIndexChurn(t *testing.T, tags []string) { if err := a.RPC("Health.ServiceNodes", args, &after); err != nil { t.Fatalf("err: %v", err) } - verify.Values(t, "", after, before) + require.Equal(t, before, after) } func TestAgent_AddCheck(t *testing.T) { diff --git a/agent/config/flags_test.go b/agent/config/flags_test.go index 36d4c4ebea..63563b298f 100644 --- a/agent/config/flags_test.go +++ b/agent/config/flags_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "github.com/pascaldekloe/goe/verify" + "github.com/stretchr/testify/require" ) // TestParseFlags tests whether command line flags are properly parsed @@ -102,9 +102,17 @@ func TestParseFlags(t *testing.T) { t.Fatalf("got error %v want %v", got, want) } flags.Args = fs.Args() - if !verify.Values(t, "flag", flags, tt.flags) { - t.FailNow() + + // Normalize the expected value because require.Equal considers + // empty slices/maps and nil slices/maps to be different. + if len(tt.flags.Args) == 0 && flags.Args != nil { + tt.flags.Args = []string{} } + if len(tt.flags.Config.NodeMeta) == 0 { + tt.flags.Config.NodeMeta = map[string]string{} + } + + require.Equal(t, tt.flags, flags) }) } } diff --git a/agent/config/merge_test.go b/agent/config/merge_test.go index f8ae77662e..0bf75d91bf 100644 --- a/agent/config/merge_test.go +++ b/agent/config/merge_test.go @@ -4,7 +4,7 @@ import ( "testing" "time" - "github.com/pascaldekloe/goe/verify" + "github.com/stretchr/testify/require" ) func TestMerge(t *testing.T) { @@ -39,7 +39,12 @@ func TestMerge(t *testing.T) { "a": "b", "c": "e", }, - Ports: Ports{DNS: pInt(2), HTTP: pInt(3)}, + Ports: Ports{DNS: pInt(2), HTTP: pInt(3)}, + SnapshotAgent: map[string]interface{}{}, + TaggedAddresses: map[string]string{}, + HTTPConfig: HTTPConfig{ResponseHeaders: map[string]string{}}, + DNS: DNS{ServiceTTL: map[string]string{}}, + Connect: Connect{CAConfig: map[string]interface{}{}}, }, }, } @@ -47,9 +52,7 @@ func TestMerge(t *testing.T) { for _, tt := range tests { t.Run(tt.desc, func(t *testing.T) { got, want := Merge(tt.cfgs...), tt.want - if !verify.Values(t, "", got, want) { - t.FailNow() - } + require.Equal(t, want, got) }) } } diff --git a/agent/config/runtime_test.go b/agent/config/runtime_test.go index 8045bf2571..2b234a44c5 100644 --- a/agent/config/runtime_test.go +++ b/agent/config/runtime_test.go @@ -23,7 +23,6 @@ import ( "github.com/hashicorp/consul/lib" "github.com/hashicorp/consul/sdk/testutil" "github.com/hashicorp/consul/types" - "github.com/pascaldekloe/goe/verify" "github.com/stretchr/testify/require" ) @@ -3860,7 +3859,7 @@ func testConfig(t *testing.T, tests []configTest, dataDir string) { } // build/merge the config fragments - rt, err := b.BuildAndValidate() + actual, err := b.BuildAndValidate() if err == nil && tt.err != "" { t.Fatalf("got no error want %q", tt.err) } @@ -3873,11 +3872,7 @@ func testConfig(t *testing.T, tests []configTest, dataDir string) { if err != nil && tt.err != "" && !strings.Contains(err.Error(), tt.err) { t.Fatalf("error %q does not contain %q", err.Error(), tt.err) } - - // check the warnings - if !verify.Values(t, "warnings", b.Warnings, tt.warns) { - t.FailNow() - } + require.Equal(t, tt.warns, b.Warnings, "warnings") // stop if we expected an error if tt.err != "" { @@ -3894,19 +3889,14 @@ func testConfig(t *testing.T, tests []configTest, dataDir string) { x.Hostname = b.Hostname x.GetPrivateIPv4 = func() ([]*net.IPAddr, error) { return []*net.IPAddr{ipAddr("10.0.0.1")}, nil } x.GetPublicIPv6 = func() ([]*net.IPAddr, error) { return []*net.IPAddr{ipAddr("dead:beef::1")}, nil } - patchedRT, err := x.Build() + expected, err := x.Build() if err != nil { t.Fatalf("build default failed: %s", err) } if tt.patch != nil { - tt.patch(&patchedRT) - } - // if err := x.Validate(wantRT); err != nil { - // t.Fatalf("validate default failed: %s", err) - // } - if got, want := rt, patchedRT; !verify.Values(t, "", got, want) { - t.FailNow() + tt.patch(&expected) } + require.Equal(t, expected, actual) }) } } @@ -5752,6 +5742,7 @@ func TestFullConfig(t *testing.T) { Config: map[string]interface{}{ "1CuJHVfw": "Kzqsa7yc", }, + Upstreams: structs.Upstreams{}, }, Weights: &structs.Weights{ Passing: 1, @@ -5861,6 +5852,8 @@ func TestFullConfig(t *testing.T) { SerfAdvertiseAddrWAN: tcpAddr("78.63.37.19:8302"), SerfBindAddrLAN: tcpAddr("99.43.63.15:8301"), SerfBindAddrWAN: tcpAddr("67.88.33.19:8302"), + SerfAllowedCIDRsLAN: []net.IPNet{}, + SerfAllowedCIDRsWAN: []net.IPNet{}, SessionTTLMin: 26627 * time.Second, SkipLeaveOnInt: true, StartJoinAddrsLAN: []string{"LR3hGDoG", "MwVpZ4Up"}, @@ -5978,10 +5971,7 @@ func TestFullConfig(t *testing.T) { t.Fatalf("Build: %s", err) } - // verify that all fields are set - if !verify.Values(t, "runtime_config", rt, want) { - t.FailNow() - } + require.Equal(t, want, rt) // at this point we have confirmed that the parsing worked // for all fields but the validation will fail since certain diff --git a/agent/consul/autopilot/promotion_test.go b/agent/consul/autopilot/promotion_test.go index 51d04a4937..729b2ed416 100644 --- a/agent/consul/autopilot/promotion_test.go +++ b/agent/consul/autopilot/promotion_test.go @@ -5,7 +5,7 @@ import ( "time" "github.com/hashicorp/raft" - "github.com/pascaldekloe/goe/verify" + "github.com/stretchr/testify/require" ) func TestPromotion(t *testing.T) { @@ -37,7 +37,6 @@ func TestPromotion(t *testing.T) { servers: []raft.Server{ {ID: "a", Suffrage: raft.Voter}, }, - promotions: []raft.Server{}, }, { name: "one stable nonvoter, should be promoted", @@ -91,12 +90,13 @@ func TestPromotion(t *testing.T) { {ID: "b", Suffrage: raft.Nonvoter}, {ID: "c", Suffrage: raft.Nonvoter}, }, - promotions: []raft.Server{}, }, } for _, tc := range cases { - promotions := PromoteStableServers(tc.conf, tc.health, tc.servers) - verify.Values(t, tc.name, tc.promotions, promotions) + t.Run(tc.name, func(t *testing.T) { + promotions := PromoteStableServers(tc.conf, tc.health, tc.servers) + require.Equal(t, tc.promotions, promotions) + }) } } diff --git a/agent/consul/coordinate_endpoint_test.go b/agent/consul/coordinate_endpoint_test.go index 7ec7e41934..c009111ad2 100644 --- a/agent/consul/coordinate_endpoint_test.go +++ b/agent/consul/coordinate_endpoint_test.go @@ -17,7 +17,7 @@ import ( "github.com/hashicorp/consul/testrpc" msgpackrpc "github.com/hashicorp/net-rpc-msgpackrpc" "github.com/hashicorp/serf/coordinate" - "github.com/pascaldekloe/goe/verify" + "github.com/stretchr/testify/require" ) // generateRandomCoordinate creates a random coordinate. This mucks with the @@ -83,13 +83,13 @@ func TestCoordinate_Update(t *testing.T) { if err != nil { t.Fatalf("err: %v", err) } - verify.Values(t, "", c, lib.CoordinateSet{}) + require.Equal(t, lib.CoordinateSet{}, c) _, c, err = state.Coordinate("node2", nil) if err != nil { t.Fatalf("err: %v", err) } - verify.Values(t, "", c, lib.CoordinateSet{}) + require.Equal(t, lib.CoordinateSet{}, c) // Send another update for the second node. It should take precedence // since there will be two updates in the same batch. @@ -107,7 +107,7 @@ func TestCoordinate_Update(t *testing.T) { expected := lib.CoordinateSet{ "": arg1.Coord, } - verify.Values(t, "", c, expected) + require.Equal(t, expected, c) _, c, err = state.Coordinate("node2", nil) if err != nil { @@ -116,7 +116,7 @@ func TestCoordinate_Update(t *testing.T) { expected = lib.CoordinateSet{ "": arg2.Coord, } - verify.Values(t, "", c, expected) + require.Equal(t, expected, c) // Register a bunch of additional nodes. spamLen := s1.config.CoordinateUpdateBatchSize*s1.config.CoordinateUpdateMaxBatches + 1 @@ -273,7 +273,7 @@ func TestCoordinate_ListDatacenters(t *testing.T) { if err != nil { t.Fatalf("bad: %v", err) } - verify.Values(t, "", c, out[0].Coordinates[0].Coord) + require.Equal(t, out[0].Coordinates[0].Coord, c) } func TestCoordinate_ListNodes(t *testing.T) { @@ -335,9 +335,9 @@ func TestCoordinate_ListNodes(t *testing.T) { resp.Coordinates[2].Node != "foo" { r.Fatalf("bad: %v", resp.Coordinates) } - verify.Values(t, "", resp.Coordinates[0].Coord, arg2.Coord) // bar - verify.Values(t, "", resp.Coordinates[1].Coord, arg3.Coord) // baz - verify.Values(t, "", resp.Coordinates[2].Coord, arg1.Coord) // foo + require.Equal(r, arg2.Coord, resp.Coordinates[0].Coord) // bar + require.Equal(r, arg3.Coord, resp.Coordinates[1].Coord) // baz + require.Equal(r, arg1.Coord, resp.Coordinates[2].Coord) // foo }) } @@ -521,7 +521,7 @@ func TestCoordinate_Node(t *testing.T) { resp.Coordinates[0].Node != "foo" { r.Fatalf("bad: %v", resp.Coordinates) } - verify.Values(t, "", resp.Coordinates[0].Coord, arg1.Coord) // foo + require.Equal(r, arg1.Coord, resp.Coordinates[0].Coord) // foo }) } diff --git a/agent/consul/fsm/commands_oss_test.go b/agent/consul/fsm/commands_oss_test.go index 68c4103d7d..1209bed856 100644 --- a/agent/consul/fsm/commands_oss_test.go +++ b/agent/consul/fsm/commands_oss_test.go @@ -21,7 +21,6 @@ import ( "github.com/hashicorp/raft" "github.com/hashicorp/serf/coordinate" "github.com/mitchellh/mapstructure" - "github.com/pascaldekloe/goe/verify" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -944,7 +943,7 @@ func TestFSM_ACL_CRUD(t *testing.T) { } bootstrap.ACL.CreateIndex = respACL.CreateIndex bootstrap.ACL.ModifyIndex = respACL.ModifyIndex - verify.Values(t, "", respACL, &bootstrap.ACL) + require.Equal(t, &bootstrap.ACL, respACL) } func TestFSM_PreparedQuery_CRUD(t *testing.T) { diff --git a/agent/consul/kvs_endpoint_test.go b/agent/consul/kvs_endpoint_test.go index 30bbdbc3a1..f33d2fce31 100644 --- a/agent/consul/kvs_endpoint_test.go +++ b/agent/consul/kvs_endpoint_test.go @@ -10,7 +10,7 @@ import ( "github.com/hashicorp/consul/api" "github.com/hashicorp/consul/testrpc" msgpackrpc "github.com/hashicorp/net-rpc-msgpackrpc" - "github.com/pascaldekloe/goe/verify" + "github.com/stretchr/testify/require" ) func TestKVS_Apply(t *testing.T) { @@ -584,7 +584,7 @@ key "zip" { actualKeys = append(actualKeys, entry.Key) } - verify.Values(t, "", actualKeys, expectedKeys) + require.Equal(t, expectedKeys, actualKeys) // list keys with a prefix that has list permissions should succeed getKeysReq2 := structs.KeyListRequest{ @@ -598,7 +598,7 @@ key "zip" { actualKeys = keyList.Keys - verify.Values(t, "", actualKeys, expectedKeys) + require.Equal(t, expectedKeys, actualKeys) } diff --git a/agent/consul/operator_raft_endpoint_test.go b/agent/consul/operator_raft_endpoint_test.go index 8cf8f99f59..f119d5f4e3 100644 --- a/agent/consul/operator_raft_endpoint_test.go +++ b/agent/consul/operator_raft_endpoint_test.go @@ -13,7 +13,7 @@ import ( "github.com/hashicorp/consul/testrpc" msgpackrpc "github.com/hashicorp/net-rpc-msgpackrpc" "github.com/hashicorp/raft" - "github.com/pascaldekloe/goe/verify" + "github.com/stretchr/testify/require" ) func TestOperator_RaftGetConfiguration(t *testing.T) { @@ -55,7 +55,7 @@ func TestOperator_RaftGetConfiguration(t *testing.T) { }, Index: future.Index(), } - verify.Values(t, "", reply, expected) + require.Equal(t, expected, reply) } func TestOperator_RaftGetConfiguration_ACLDeny(t *testing.T) { @@ -132,7 +132,7 @@ func TestOperator_RaftGetConfiguration_ACLDeny(t *testing.T) { }, Index: future.Index(), } - verify.Values(t, "", reply, expected) + require.Equal(t, expected, reply) } func TestOperator_RaftRemovePeerByAddress(t *testing.T) { diff --git a/agent/consul/state/autopilot_test.go b/agent/consul/state/autopilot_test.go index dec6dc5a72..15e5dfd9c6 100644 --- a/agent/consul/state/autopilot_test.go +++ b/agent/consul/state/autopilot_test.go @@ -6,7 +6,7 @@ import ( "time" "github.com/hashicorp/consul/agent/consul/autopilot" - "github.com/pascaldekloe/goe/verify" + "github.com/stretchr/testify/require" ) func TestStateStore_Autopilot(t *testing.T) { @@ -117,7 +117,7 @@ func TestStateStore_Autopilot_Snapshot_Restore(t *testing.T) { if err != nil { t.Fatalf("err: %s", err) } - verify.Values(t, "", before, snapped) + require.Equal(t, snapped, before, "autopilot snapshot") s2 := testStateStore(t) restore := s2.Restore() @@ -133,5 +133,5 @@ func TestStateStore_Autopilot_Snapshot_Restore(t *testing.T) { if idx != 99 { t.Fatalf("bad index: %d", idx) } - verify.Values(t, "", before, res) + require.Equal(t, res, before, "autopilot config") } diff --git a/agent/consul/state/catalog_test.go b/agent/consul/state/catalog_test.go index 1818c7a744..1a7aacec62 100644 --- a/agent/consul/state/catalog_test.go +++ b/agent/consul/state/catalog_test.go @@ -13,7 +13,6 @@ import ( "github.com/hashicorp/consul/types" "github.com/hashicorp/go-memdb" uuid "github.com/hashicorp/go-uuid" - "github.com/pascaldekloe/goe/verify" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -180,9 +179,7 @@ func TestStateStore_EnsureRegistration(t *testing.T) { if err != nil { t.Fatalf("got err %s want nil", err) } - if got, want := out, node; !verify.Values(t, "GetNode", got, want) { - t.FailNow() - } + require.Equal(t, node, out) _, out2, err := s.GetNodeID(nodeID) if err != nil { @@ -191,9 +188,7 @@ func TestStateStore_EnsureRegistration(t *testing.T) { if out2 == nil { t.Fatalf("out2 should not be nil") } - if got, want := out, out2; !verify.Values(t, "GetNodeID", got, want) { - t.FailNow() - } + require.Equal(t, out, out2) } verifyNode() @@ -242,17 +237,13 @@ func TestStateStore_EnsureRegistration(t *testing.T) { if gotidx, wantidx := idx, uint64(2); err != nil || gotidx != wantidx { t.Fatalf("got err, idx: %s, %d want nil, %d", err, gotidx, wantidx) } - if got, want := out.Services, svcmap; !verify.Values(t, "NodeServices", got, want) { - t.FailNow() - } + require.Equal(t, svcmap, out.Services) idx, r, err := s.NodeService("node1", "redis1", nil) if gotidx, wantidx := idx, uint64(2); err != nil || gotidx != wantidx { t.Fatalf("got err, idx: %s, %d want nil, %d", err, gotidx, wantidx) } - if got, want := r, svcmap["redis1"]; !verify.Values(t, "NodeService", got, want) { - t.FailNow() - } + require.Equal(t, svcmap["redis1"], r) } verifyNode() verifyService() @@ -284,17 +275,13 @@ func TestStateStore_EnsureRegistration(t *testing.T) { if gotidx, wantidx := idx, uint64(3); err != nil || gotidx != wantidx { t.Fatalf("got err, idx: %s, %d want nil, %d", err, gotidx, wantidx) } - if got, want := out, checks; !verify.Values(t, "NodeChecks", got, want) { - t.FailNow() - } + require.Equal(t, checks, out) idx, c, err := s.NodeCheck("node1", "check1", nil) if gotidx, wantidx := idx, uint64(3); err != nil || gotidx != wantidx { t.Fatalf("got err, idx: %s, %d want nil, %d", err, gotidx, wantidx) } - if got, want := c, checks[0]; !verify.Values(t, "NodeCheck", got, want) { - t.FailNow() - } + require.Equal(t, checks[0], c) } verifyNode() verifyService() @@ -344,9 +331,7 @@ func TestStateStore_EnsureRegistration(t *testing.T) { if gotidx, wantidx := idx, uint64(4); err != nil || gotidx != wantidx { t.Fatalf("got err, idx: %s, %d want nil, %d", err, gotidx, wantidx) } - if got, want := out, checks; !verify.Values(t, "NodeChecks", got, want) { - t.FailNow() - } + require.Equal(t, checks, out) } verifyChecks() diff --git a/agent/consul/state/connect_ca_test.go b/agent/consul/state/connect_ca_test.go index e23f3ed25e..9aba81abd6 100644 --- a/agent/consul/state/connect_ca_test.go +++ b/agent/consul/state/connect_ca_test.go @@ -8,8 +8,8 @@ import ( "github.com/hashicorp/consul/agent/connect" "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/go-memdb" - "github.com/pascaldekloe/goe/verify" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestStore_CAConfig(t *testing.T) { @@ -127,7 +127,7 @@ func TestStore_CAConfig_Snapshot_Restore(t *testing.T) { if err != nil { t.Fatalf("err: %s", err) } - verify.Values(t, "", before, snapped) + require.Equal(t, snapped, before) s2 := testStateStore(t) restore := s2.Restore() @@ -143,7 +143,7 @@ func TestStore_CAConfig_Snapshot_Restore(t *testing.T) { if idx != 99 { t.Fatalf("bad index: %d", idx) } - verify.Values(t, "", before, res) + require.Equal(t, res, before) } // Make sure we handle the case of a leftover blank CA config that @@ -162,7 +162,7 @@ func TestStore_CAConfig_Snapshot_Restore_BlankConfig(t *testing.T) { if err != nil { t.Fatalf("err: %s", err) } - verify.Values(t, "", before, snapped) + require.Equal(t, snapped, before) s2 := testStateStore(t) restore := s2.Restore() diff --git a/agent/consul/state/coordinate_test.go b/agent/consul/state/coordinate_test.go index 7bd9625214..98ec794a8f 100644 --- a/agent/consul/state/coordinate_test.go +++ b/agent/consul/state/coordinate_test.go @@ -9,7 +9,7 @@ import ( "github.com/hashicorp/consul/lib" "github.com/hashicorp/go-memdb" "github.com/hashicorp/serf/coordinate" - "github.com/pascaldekloe/goe/verify" + "github.com/stretchr/testify/require" ) // generateRandomCoordinate creates a random coordinate. This mucks with the @@ -40,14 +40,14 @@ func TestStateStore_Coordinate_Updates(t *testing.T) { if idx != 0 { t.Fatalf("bad index: %d", idx) } - verify.Values(t, "", all, structs.Coordinates{}) + require.Nil(t, all) coordinateWs := memdb.NewWatchSet() _, coords, err := s.Coordinate("nope", coordinateWs) if err != nil { t.Fatalf("err: %s", err) } - verify.Values(t, "", coords, lib.CoordinateSet{}) + require.Equal(t, lib.CoordinateSet{}, coords) // Make an update for nodes that don't exist and make sure they get // ignored. @@ -78,7 +78,7 @@ func TestStateStore_Coordinate_Updates(t *testing.T) { if idx != 1 { t.Fatalf("bad index: %d", idx) } - verify.Values(t, "", all, structs.Coordinates{}) + require.Nil(t, all) coordinateWs = memdb.NewWatchSet() idx, coords, err = s.Coordinate("node1", coordinateWs) @@ -108,7 +108,7 @@ func TestStateStore_Coordinate_Updates(t *testing.T) { if idx != 3 { t.Fatalf("bad index: %d", idx) } - verify.Values(t, "", all, updates) + require.Equal(t, updates, all) // Also verify the per-node coordinate interface. nodeWs := make([]memdb.WatchSet, len(updates)) @@ -124,7 +124,7 @@ func TestStateStore_Coordinate_Updates(t *testing.T) { expected := lib.CoordinateSet{ "": update.Coord, } - verify.Values(t, "", coords, expected) + require.Equal(t, expected, coords) } // Update the coordinate for one of the nodes. @@ -149,7 +149,7 @@ func TestStateStore_Coordinate_Updates(t *testing.T) { if idx != 4 { t.Fatalf("bad index: %d", idx) } - verify.Values(t, "", all, updates) + require.Equal(t, updates, all) // And check the per-node coordinate version of the same thing. for _, update := range updates { @@ -163,7 +163,7 @@ func TestStateStore_Coordinate_Updates(t *testing.T) { expected := lib.CoordinateSet{ "": update.Coord, } - verify.Values(t, "", coords, expected) + require.Equal(t, expected, coords) } // Apply an invalid update and make sure it gets ignored. @@ -186,7 +186,7 @@ func TestStateStore_Coordinate_Updates(t *testing.T) { if idx != 5 { t.Fatalf("bad index: %d", idx) } - verify.Values(t, "", all, updates) + require.Equal(t, updates, all) } func TestStateStore_Coordinate_Cleanup(t *testing.T) { @@ -219,7 +219,7 @@ func TestStateStore_Coordinate_Cleanup(t *testing.T) { "alpha": updates[0].Coord, "beta": updates[1].Coord, } - verify.Values(t, "", coords, expected) + require.Equal(t, expected, coords) // Now delete the node. if err := s.DeleteNode(3, "node1"); err != nil { @@ -231,7 +231,7 @@ func TestStateStore_Coordinate_Cleanup(t *testing.T) { if err != nil { t.Fatalf("err: %s", err) } - verify.Values(t, "", coords, lib.CoordinateSet{}) + require.Equal(t, lib.CoordinateSet{}, coords) // Make sure the index got updated. idx, all, err := s.Coordinates(nil) @@ -241,7 +241,7 @@ func TestStateStore_Coordinate_Cleanup(t *testing.T) { if idx != 3 { t.Fatalf("bad index: %d", idx) } - verify.Values(t, "", all, structs.Coordinates{}) + require.Nil(t, all) } func TestStateStore_Coordinate_Snapshot_Restore(t *testing.T) { @@ -310,7 +310,7 @@ func TestStateStore_Coordinate_Snapshot_Restore(t *testing.T) { // The snapshot will have the bad update in it, since we don't filter on // the read side. - verify.Values(t, "", dump, append(updates, badUpdate)) + require.Equal(t, append(updates, badUpdate), dump) // Restore the values into a new state store. func() { @@ -329,7 +329,7 @@ func TestStateStore_Coordinate_Snapshot_Restore(t *testing.T) { if idx != 6 { t.Fatalf("bad index: %d", idx) } - verify.Values(t, "", res, updates) + require.Equal(t, updates, res) // Check that the index was updated (note that it got passed // in during the restore). diff --git a/agent/consul/state/txn_test.go b/agent/consul/state/txn_test.go index b53f87ce07..11206624ce 100644 --- a/agent/consul/state/txn_test.go +++ b/agent/consul/state/txn_test.go @@ -8,12 +8,10 @@ import ( "github.com/hashicorp/consul/agent/structs" "github.com/hashicorp/consul/api" "github.com/hashicorp/consul/types" - "github.com/pascaldekloe/goe/verify" "github.com/stretchr/testify/require" ) func TestStateStore_Txn_Intention(t *testing.T) { - require := require.New(t) s := testStateStore(t) // Create some intentions. @@ -45,8 +43,8 @@ func TestStateStore_Txn_Intention(t *testing.T) { // Write the first two to the state store, leave the third // to be created by the transaction operation. - require.NoError(s.IntentionSet(1, ixn1)) - require.NoError(s.IntentionSet(2, ixn2)) + require.NoError(t, s.IntentionSet(1, ixn1)) + require.NoError(t, s.IntentionSet(2, ixn2)) // Set up a transaction that hits every operation. ops := structs.TxnOps{ @@ -76,14 +74,12 @@ func TestStateStore_Txn_Intention(t *testing.T) { // Make sure the response looks as expected. expected := structs.TxnResults{} - verify.Values(t, "", results, expected) + require.Equal(t, expected, results) // Pull the resulting state store contents. idx, actual, err := s.Intentions(nil) - require.NoError(err) - if idx != 3 { - t.Fatalf("bad index: %d", idx) - } + require.NoError(t, err) + require.Equal(t, uint64(3), idx, "wrong index") // Make sure it looks as expected. intentions := structs.Intentions{ @@ -114,11 +110,10 @@ func TestStateStore_Txn_Intention(t *testing.T) { }, }, } - verify.Values(t, "", actual, intentions) + require.Equal(t, intentions, actual) } func TestStateStore_Txn_Node(t *testing.T) { - require := require.New(t) s := testStateStore(t) // Create some nodes. @@ -195,22 +190,21 @@ func TestStateStore_Txn_Node(t *testing.T) { Node: &nodes[1], }, } - verify.Values(t, "", results, expected) + require.Equal(t, expected, results) // Pull the resulting state store contents. idx, actual, err := s.Nodes(nil) - require.NoError(err) + require.NoError(t, err) if idx != 8 { t.Fatalf("bad index: %d", idx) } // Make sure it looks as expected. expectedNodes := structs.Nodes{&nodes[0], &nodes[1], &nodes[4]} - verify.Values(t, "", actual, expectedNodes) + require.Equal(t, expectedNodes, actual) } func TestStateStore_Txn_Service(t *testing.T) { - require := require.New(t) s := testStateStore(t) testRegisterNode(t, s, 1, "node1") @@ -284,6 +278,7 @@ func TestStateStore_Txn_Service(t *testing.T) { ModifyIndex: 2, }, EnterpriseMeta: *structs.DefaultEnterpriseMeta(), + Meta: map[string]string{}, }, }, &structs.TxnResult{ @@ -310,11 +305,11 @@ func TestStateStore_Txn_Service(t *testing.T) { }, }, } - verify.Values(t, "", results, expected) + require.Equal(t, expected, results) // Pull the resulting state store contents. idx, actual, err := s.NodeServices(nil, "node1", nil) - require.NoError(err) + require.NoError(t, err) if idx != 6 { t.Fatalf("bad index: %d", idx) } @@ -340,6 +335,7 @@ func TestStateStore_Txn_Service(t *testing.T) { }, Weights: &structs.Weights{Passing: 1, Warning: 1}, EnterpriseMeta: *structs.DefaultEnterpriseMeta(), + Meta: map[string]string{}, }, "svc5": &structs.NodeService{ ID: "svc5", @@ -362,11 +358,10 @@ func TestStateStore_Txn_Service(t *testing.T) { }, }, } - verify.Values(t, "", actual, expectedServices) + require.Equal(t, expectedServices, actual) } func TestStateStore_Txn_Checks(t *testing.T) { - require := require.New(t) s := testStateStore(t) testRegisterNode(t, s, 1, "node1") @@ -462,11 +457,11 @@ func TestStateStore_Txn_Checks(t *testing.T) { }, }, } - verify.Values(t, "", results, expected) + require.Equal(t, expected, results) // Pull the resulting state store contents. idx, actual, err := s.NodeChecks(nil, "node1", nil) - require.NoError(err) + require.NoError(t, err) if idx != 6 { t.Fatalf("bad index: %d", idx) } @@ -504,7 +499,7 @@ func TestStateStore_Txn_Checks(t *testing.T) { EnterpriseMeta: *structs.DefaultEnterpriseMeta(), }, } - verify.Values(t, "", actual, expectedChecks) + require.Equal(t, expectedChecks, actual) } func TestStateStore_Txn_KVS(t *testing.T) { diff --git a/agent/dns_test.go b/agent/dns_test.go index 9d20ab3133..fb0f1a8cc3 100644 --- a/agent/dns_test.go +++ b/agent/dns_test.go @@ -18,7 +18,6 @@ import ( "github.com/hashicorp/consul/testrpc" "github.com/hashicorp/serf/coordinate" "github.com/miekg/dns" - "github.com/pascaldekloe/goe/verify" "github.com/stretchr/testify/require" ) @@ -151,7 +150,7 @@ func TestEncodeKVasRFC1464(t *testing.T) { for _, test := range tests { answer := encodeKVasRFC1464(test.key, test.value) - verify.Values(t, "internalForm", answer, test.internalForm) + require.Equal(t, test.internalForm, answer) } } @@ -445,7 +444,7 @@ func TestDNSCycleRecursorCheck(t *testing.T) { A: []byte{0xAC, 0x15, 0x2D, 0x43}, // 172 , 21, 45, 67 }, } - verify.Values(t, "Answer", in.Answer, wantAnswer) + require.Equal(t, wantAnswer, in.Answer) } func TestDNSCycleRecursorCheckAllFail(t *testing.T) { t.Parallel() @@ -474,7 +473,7 @@ func TestDNSCycleRecursorCheckAllFail(t *testing.T) { client := new(dns.Client) in, _, _ := client.Exchange(m, agent.DNSAddr()) //Verify if we hit SERVFAIL from Consul - verify.Values(t, "Answer", in.Rcode, dns.RcodeServerFailure) + require.Equal(t, dns.RcodeServerFailure, in.Rcode) } func TestDNS_NodeLookup_CNAME(t *testing.T) { t.Parallel() @@ -532,7 +531,7 @@ func TestDNS_NodeLookup_CNAME(t *testing.T) { Txt: []string{"my_txt_value"}, }, } - verify.Values(t, "answer", in.Answer, wantAnswer) + require.Equal(t, wantAnswer, in.Answer) } func TestDNS_NodeLookup_TXT(t *testing.T) { @@ -665,7 +664,7 @@ func TestDNS_NodeLookup_ANY(t *testing.T) { Txt: []string{"key=value"}, }, } - verify.Values(t, "answer", in.Answer, wantAnswer) + require.Equal(t, wantAnswer, in.Answer) } func TestDNS_NodeLookup_ANY_DontSuppressTXT(t *testing.T) { @@ -706,7 +705,7 @@ func TestDNS_NodeLookup_ANY_DontSuppressTXT(t *testing.T) { Txt: []string{"key=value"}, }, } - verify.Values(t, "answer", in.Answer, wantAnswer) + require.Equal(t, wantAnswer, in.Answer) } func TestDNS_NodeLookup_A_SuppressTXT(t *testing.T) { @@ -739,7 +738,7 @@ func TestDNS_NodeLookup_A_SuppressTXT(t *testing.T) { A: []byte{0x7f, 0x0, 0x0, 0x1}, // 127.0.0.1 }, } - verify.Values(t, "answer", in.Answer, wantAnswer) + require.Equal(t, wantAnswer, in.Answer) // ensure TXT RR suppression require.Len(t, in.Extra, 0) @@ -1581,14 +1580,14 @@ func TestDNS_ServiceLookupWithInternalServiceAddress(t *testing.T) { Target: "foo.node.dc1.consul.", }, } - verify.Values(t, "answer", in.Answer, wantAnswer) + require.Equal(t, wantAnswer, in.Answer, "answer") wantExtra := []dns.RR{ &dns.A{ Hdr: dns.RR_Header{Name: "foo.node.dc1.consul.", Rrtype: 0x1, Class: 0x1, Rdlength: 0x4}, A: []byte{0x7f, 0x0, 0x0, 0x1}, // 127.0.0.1 }, } - verify.Values(t, "extra", in.Extra, wantExtra) + require.Equal(t, wantExtra, in.Extra, "extra") } func TestDNS_ConnectServiceLookup(t *testing.T) { @@ -1975,7 +1974,7 @@ func TestDNS_NSRecords(t *testing.T) { Ns: "server1.node.dc1.consul.", }, } - verify.Values(t, "answer", in.Answer, wantAnswer) + require.Equal(t, wantAnswer, in.Answer, "answer") wantExtra := []dns.RR{ &dns.A{ Hdr: dns.RR_Header{Name: "server1.node.dc1.consul.", Rrtype: dns.TypeA, Class: dns.ClassINET, Rdlength: 0x4, Ttl: 0}, @@ -1983,7 +1982,7 @@ func TestDNS_NSRecords(t *testing.T) { }, } - verify.Values(t, "extra", in.Extra, wantExtra) + require.Equal(t, wantExtra, in.Extra, "extra") } func TestDNS_NSRecords_IPV6(t *testing.T) { @@ -2011,7 +2010,7 @@ func TestDNS_NSRecords_IPV6(t *testing.T) { Ns: "server1.node.dc1.consul.", }, } - verify.Values(t, "answer", in.Answer, wantAnswer) + require.Equal(t, wantAnswer, in.Answer, "answer") wantExtra := []dns.RR{ &dns.AAAA{ Hdr: dns.RR_Header{Name: "server1.node.dc1.consul.", Rrtype: dns.TypeAAAA, Class: dns.ClassINET, Rdlength: 0x10, Ttl: 0}, @@ -2019,7 +2018,7 @@ func TestDNS_NSRecords_IPV6(t *testing.T) { }, } - verify.Values(t, "extra", in.Extra, wantExtra) + require.Equal(t, wantExtra, in.Extra, "extra") } @@ -5670,7 +5669,7 @@ func TestDNS_ServiceLookup_MetaTXT(t *testing.T) { Txt: []string{"key=value"}, }, } - verify.Values(t, "additional", in.Extra, wantAdditional) + require.Equal(t, wantAdditional, in.Extra) } func TestDNS_ServiceLookup_SuppressTXT(t *testing.T) { @@ -5713,7 +5712,7 @@ func TestDNS_ServiceLookup_SuppressTXT(t *testing.T) { A: []byte{0x7f, 0x0, 0x0, 0x1}, // 127.0.0.1 }, } - verify.Values(t, "additional", in.Extra, wantAdditional) + require.Equal(t, wantAdditional, in.Extra) } func TestDNS_AddressLookup(t *testing.T) { diff --git a/agent/metadata/build_test.go b/agent/metadata/build_test.go index f6a051447f..7b516cf358 100644 --- a/agent/metadata/build_test.go +++ b/agent/metadata/build_test.go @@ -5,7 +5,7 @@ import ( "github.com/hashicorp/go-version" "github.com/hashicorp/serf/serf" - "github.com/pascaldekloe/goe/verify" + "github.com/stretchr/testify/require" ) func TestBuild(t *testing.T) { @@ -69,7 +69,7 @@ func TestBuild(t *testing.T) { if wantErr := tt.err; gotErr != wantErr { t.Fatalf("got %v want %v", gotErr, wantErr) } - verify.Values(t, "", ver, tt.ver) + require.Equal(t, tt.ver, ver) }) } } diff --git a/agent/structs/check_definition_test.go b/agent/structs/check_definition_test.go index 9622479d90..871091562e 100644 --- a/agent/structs/check_definition_test.go +++ b/agent/structs/check_definition_test.go @@ -8,7 +8,7 @@ import ( fuzz "github.com/google/gofuzz" "github.com/hashicorp/consul/api" "github.com/mitchellh/reflectwalk" - "github.com/pascaldekloe/goe/verify" + "github.com/stretchr/testify/require" ) func TestCheckDefinition_Defaults(t *testing.T) { @@ -111,5 +111,5 @@ func TestCheckDefinitionToCheckType(t *testing.T) { TTL: 3 * time.Second, DeregisterCriticalServiceAfter: 4 * time.Second, } - verify.Values(t, "", got.CheckType(), want) + require.Equal(t, want, got.CheckType()) } diff --git a/agent/structs/service_definition_test.go b/agent/structs/service_definition_test.go index 7e51e3dffa..ca5d91fb6f 100644 --- a/agent/structs/service_definition_test.go +++ b/agent/structs/service_definition_test.go @@ -6,7 +6,6 @@ import ( "testing" "time" - "github.com/pascaldekloe/goe/verify" "github.com/stretchr/testify/require" ) @@ -47,12 +46,13 @@ func TestAgentStructs_CheckTypes(t *testing.T) { {&CheckType{TTL: 20 * time.Second, Interval: 10 * time.Second}, fmt.Errorf("Interval and TTL cannot both be specified"), "Interval and TTL both set"}, } for _, tc := range cases { - svc.Check = *tc.in - checks, err := svc.CheckTypes() - verify.Values(t, tc.desc, err.Error(), tc.err.Error()) - if len(checks) != 0 { - t.Fatalf("bad: %#v", svc) - } + t.Run(tc.desc, func(t *testing.T) { + svc.Check = *tc.in + checks, err := svc.CheckTypes() + require.Error(t, err, tc.err.Error()) + require.Len(t, checks, 0) + }) + } } diff --git a/agent/util_test.go b/agent/util_test.go index 725a571911..d7af22031f 100644 --- a/agent/util_test.go +++ b/agent/util_test.go @@ -11,7 +11,7 @@ import ( "time" "github.com/hashicorp/consul/sdk/testutil" - "github.com/pascaldekloe/goe/verify" + "github.com/stretchr/testify/require" ) func TestStringHash(t *testing.T) { @@ -121,7 +121,7 @@ func TestDurationFixer(t *testing.T) { } // Ensure we only processed the intended fieldnames - verify.Values(t, "", obj, expected) + require.Equal(t, expected, obj) } // helperProcessSentinel is a sentinel value that is put as the first diff --git a/go.mod b/go.mod index 33f82ad1ca..c490eed85d 100644 --- a/go.mod +++ b/go.mod @@ -68,7 +68,6 @@ require ( github.com/mitchellh/mapstructure v1.2.3 github.com/mitchellh/pointerstructure v1.0.0 github.com/mitchellh/reflectwalk v1.0.1 - github.com/pascaldekloe/goe v0.1.0 github.com/patrickmn/go-cache v2.1.0+incompatible github.com/pkg/errors v0.8.1 github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 // indirect diff --git a/lib/rtt_test.go b/lib/rtt_test.go index 403b49db1a..4e08b38c85 100644 --- a/lib/rtt_test.go +++ b/lib/rtt_test.go @@ -6,15 +6,15 @@ import ( "time" "github.com/hashicorp/serf/coordinate" - "github.com/pascaldekloe/goe/verify" + "github.com/stretchr/testify/require" ) func TestRTT_ComputeDistance(t *testing.T) { tests := []struct { - desc string - a *coordinate.Coordinate - b *coordinate.Coordinate - dist float64 + desc string + a *coordinate.Coordinate + b *coordinate.Coordinate + expected float64 }{ { "10 ms", @@ -61,8 +61,8 @@ func TestRTT_ComputeDistance(t *testing.T) { } for _, tt := range tests { t.Run(tt.desc, func(t *testing.T) { - dist := ComputeDistance(tt.a, tt.b) - verify.Values(t, "", dist, tt.dist) + actual := ComputeDistance(tt.a, tt.b) + require.Equal(t, tt.expected, actual) }) } } @@ -146,8 +146,9 @@ func TestRTT_Intersect(t *testing.T) { for _, tt := range tests { t.Run(tt.desc, func(t *testing.T) { r1, r2 := tt.a.Intersect(tt.b) - verify.Values(t, "", r1, tt.c1) - verify.Values(t, "", r2, tt.c2) + + require.Equal(t, tt.c1, r1) + require.Equal(t, tt.c2, r2) }) } } diff --git a/vendor/github.com/pascaldekloe/goe/LICENSE b/vendor/github.com/pascaldekloe/goe/LICENSE deleted file mode 100644 index fee81ecdb6..0000000000 --- a/vendor/github.com/pascaldekloe/goe/LICENSE +++ /dev/null @@ -1,5 +0,0 @@ -To the extent possible under law, Pascal S. de Kloe has waived all -copyright and related or neighboring rights to Go Enterprice. This -work is published from The Netherlands. - -https://creativecommons.org/publicdomain/zero/1.0/legalcode diff --git a/vendor/github.com/pascaldekloe/goe/verify/values.go b/vendor/github.com/pascaldekloe/goe/verify/values.go deleted file mode 100644 index e9687ce8a1..0000000000 --- a/vendor/github.com/pascaldekloe/goe/verify/values.go +++ /dev/null @@ -1,166 +0,0 @@ -package verify - -import ( - "fmt" - "reflect" - "strings" - "testing" -) - -// Values verifies that got has all the content, and only the content, defined by want. -// Note that NaN always results in a mismatch. -func Values(tb testing.TB, name string, got, want interface{}) (ok bool) { - t := travel{} - t.values(reflect.ValueOf(got), reflect.ValueOf(want), nil) - - fail := t.report(name) - if fail != "" { - tb.Helper() - tb.Error(fail) - return false - } - - return true -} - -func (t *travel) values(got, want reflect.Value, path []*segment) { - if !want.IsValid() { - if got.IsValid() { - t.differ(path, "Unwanted %s", got.Type()) - } - return - } - if !got.IsValid() { - t.differ(path, "Missing %s", want.Type()) - return - } - - if got.Type() != want.Type() { - t.differ(path, "Got type %s, want %s", got.Type(), want.Type()) - return - } - - switch got.Kind() { - - case reflect.Struct: - seg := &segment{format: "/%s"} - path = append(path, seg) - - var unexp []string - for i, n := 0, got.NumField(); i < n; i++ { - field := got.Type().Field(i) - if field.PkgPath != "" { - unexp = append(unexp, field.Name) - } else { - seg.x = field.Name - t.values(got.Field(i), want.Field(i), path) - } - } - path = path[:len(path)-1] - - if len(unexp) != 0 && !reflect.DeepEqual(got.Interface(), want.Interface()) { - t.differ(path, "Type %s with unexported fields %q not equal", got.Type(), unexp) - } - - case reflect.Slice, reflect.Array: - n := got.Len() - if n != want.Len() { - t.differ(path, "Got %d elements, want %d", n, want.Len()) - return - } - - seg := &segment{format: "[%d]"} - path = append(path, seg) - for i := 0; i < n; i++ { - seg.x = i - t.values(got.Index(i), want.Index(i), path) - } - path = path[:len(path)-1] - - case reflect.Ptr: - if got.Pointer() != want.Pointer() { - t.values(got.Elem(), want.Elem(), path) - } - - case reflect.Interface: - t.values(got.Elem(), want.Elem(), path) - - case reflect.Map: - seg := &segment{} - path = append(path, seg) - for _, key := range want.MapKeys() { - applyKeySeg(seg, key) - t.values(got.MapIndex(key), want.MapIndex(key), path) - } - - for _, key := range got.MapKeys() { - v := want.MapIndex(key) - if v.IsValid() { - continue - } - applyKeySeg(seg, key) - t.values(got.MapIndex(key), v, path) - } - path = path[:len(path)-1] - - case reflect.Func: - if !(got.IsNil() && want.IsNil()) { - t.differ(path, "Can't compare functions") - } - - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - if a, b := got.Int(), want.Int(); a != b { - if a < 0xA && a > -0xA && b < 0xA && b > -0xA { - t.differ(path, fmt.Sprintf("Got %d, want %d", a, b)) - } else { - t.differ(path, fmt.Sprintf("Got %d (0x%x), want %d (0x%x)", a, a, b, b)) - } - } - - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - if a, b := got.Uint(), want.Uint(); a != b { - if a < 0xA && b < 0xA { - t.differ(path, fmt.Sprintf("Got %d, want %d", a, b)) - } else { - t.differ(path, fmt.Sprintf("Got %d (0x%x), want %d (0x%x)", a, a, b, b)) - } - } - - case reflect.String: - if a, b := got.String(), want.String(); a != b { - t.differ(path, differMsg(a, b)) - } - - default: - if a, b := got.Interface(), want.Interface(); a != b { - t.differ(path, fmt.Sprintf("Got %v, want %v", a, b)) - } - } -} - -func applyKeySeg(dst *segment, key reflect.Value) { - if key.Kind() == reflect.String { - dst.format = "[%q]" - } else { - dst.format = "[%v]" - } - dst.x = key.Interface() -} - -func differMsg(got, want string) string { - if len(got) < 9 || len(want) < 9 { - return fmt.Sprintf("Got %q, want %q", got, want) - } - - got, want = fmt.Sprintf("%q", got), fmt.Sprintf("%q", want) - - // find first character which differs - var i int - a, b := []rune(got), []rune(want) - for i = 0; i < len(a); i++ { - if i >= len(b) || a[i] != b[i] { - break - } - } - return fmt.Sprintf("Got %s, want %s\n %s^", got, want, strings.Repeat(" ", i)) -} diff --git a/vendor/github.com/pascaldekloe/goe/verify/verify.go b/vendor/github.com/pascaldekloe/goe/verify/verify.go deleted file mode 100644 index 1b2faef03b..0000000000 --- a/vendor/github.com/pascaldekloe/goe/verify/verify.go +++ /dev/null @@ -1,68 +0,0 @@ -// Package verify offers convenience routenes for content verification. -package verify - -import ( - "bytes" - "fmt" - "strings" -) - -// travel is the verification state -type travel struct { - diffs []differ -} - -// differ is a verification failure. -type differ struct { - // path is the expression to the content. - path string - // msg has a reason. - msg string -} - -// segment is a differ.path component used for lazy formatting. -type segment struct { - format string - x interface{} -} - -func (t *travel) differ(path []*segment, msg string, args ...interface{}) { - var buf bytes.Buffer - for _, s := range path { - buf.WriteString(fmt.Sprintf(s.format, s.x)) - } - - t.diffs = append(t.diffs, differ{ - msg: fmt.Sprintf(msg, args...), - path: buf.String(), - }) -} - -func (t *travel) report(name string) string { - if len(t.diffs) == 0 { - return "" - } - - var buf bytes.Buffer - - buf.WriteString("verification for ") - buf.WriteString(name) - buf.WriteByte(':') - - for _, d := range t.diffs { - buf.WriteByte('\n') - if d.path != "" { - buf.WriteString(d.path) - buf.WriteString(": ") - } - lines := strings.Split(d.msg, "\n") - buf.WriteString(lines[0]) - for _, l := range lines[1:] { - buf.WriteByte('\n') - buf.WriteString(strings.Repeat(" ", len(d.path)+2)) - buf.WriteString(l) - } - } - - return buf.String() -} diff --git a/vendor/modules.txt b/vendor/modules.txt index dd5b8d6e36..4bea7a77f9 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -321,8 +321,6 @@ github.com/modern-go/reflect2 github.com/nicolai86/scaleway-sdk # github.com/packethost/packngo v0.1.1-0.20180711074735-b9cb5096f54c github.com/packethost/packngo -# github.com/pascaldekloe/goe v0.1.0 -github.com/pascaldekloe/goe/verify # github.com/patrickmn/go-cache v2.1.0+incompatible github.com/patrickmn/go-cache # github.com/pierrec/lz4 v2.0.5+incompatible