From 41ec5b3bd2d539be24006bb3d4f36a24a8780c00 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Fri, 24 Feb 2017 16:21:28 -0500 Subject: [PATCH] missing defaults in sort Need to properly catch some sort cases around 0-1 indexing. This can cause output to shift slightly, resulting in an intermittent test failure. --- terraform/state.go | 2 +- terraform/state_test.go | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/terraform/state.go b/terraform/state.go index 41a889e83..5fa74a79f 100644 --- a/terraform/state.go +++ b/terraform/state.go @@ -2074,7 +2074,7 @@ func (r resourceNameSort) Less(i, j int) bool { } } - return false + return r[i] < r[j] } // moduleStateSort implements sort.Interface to sort module states diff --git a/terraform/state_test.go b/terraform/state_test.go index b0ed35368..c10ebf133 100644 --- a/terraform/state_test.go +++ b/terraform/state_test.go @@ -6,6 +6,7 @@ import ( "fmt" "os" "reflect" + "sort" "strings" "testing" @@ -1896,3 +1897,37 @@ func TestReadState_prune(t *testing.T) { t.Fatalf("got:\n%#v", actual) } } + +func TestResourceNameSort(t *testing.T) { + names := []string{ + "a", + "b", + "a.0", + "a.c", + "a.d", + "c", + "a.b.0", + "a.b.1", + "a.b.10", + "a.b.2", + } + + sort.Sort(resourceNameSort(names)) + + expected := []string{ + "a", + "a.0", + "a.b.0", + "a.b.1", + "a.b.2", + "a.b.10", + "a.c", + "a.d", + "b", + "c", + } + + if !reflect.DeepEqual(names, expected) { + t.Fatalf("got: %q\nexpected: %q\n", names, expected) + } +}