terraform: don't increment state if one is nil
This commit is contained in:
parent
431f5e6706
commit
0d4c7887c5
|
@ -214,6 +214,15 @@ func (s *State) DeepCopy() *State {
|
|||
// IncrementSerialMaybe increments the serial number of this state
|
||||
// if it different from the other state.
|
||||
func (s *State) IncrementSerialMaybe(other *State) {
|
||||
if s == nil {
|
||||
return
|
||||
}
|
||||
if other == nil {
|
||||
return
|
||||
}
|
||||
if s.Serial > other.Serial {
|
||||
return
|
||||
}
|
||||
if !s.Equal(other) {
|
||||
s.Serial++
|
||||
}
|
||||
|
|
|
@ -178,6 +178,40 @@ func TestStateEqual(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestStateIncrementSerialMaybe(t *testing.T) {
|
||||
cases := map[string]struct {
|
||||
S1, S2 *State
|
||||
Serial int64
|
||||
}{
|
||||
"S2 is nil": {
|
||||
&State{},
|
||||
nil,
|
||||
0,
|
||||
},
|
||||
"S2 is identical": {
|
||||
&State{},
|
||||
&State{},
|
||||
0,
|
||||
},
|
||||
"S2 is different": {
|
||||
&State{},
|
||||
&State{
|
||||
Modules: []*ModuleState{
|
||||
&ModuleState{Path: rootModulePath},
|
||||
},
|
||||
},
|
||||
1,
|
||||
},
|
||||
}
|
||||
|
||||
for name, tc := range cases {
|
||||
tc.S1.IncrementSerialMaybe(tc.S2)
|
||||
if tc.S1.Serial != tc.Serial {
|
||||
t.Fatalf("Bad: %s\nGot: %d", name, tc.S1.Serial)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestResourceStateEqual(t *testing.T) {
|
||||
cases := []struct {
|
||||
Result bool
|
||||
|
|
Loading…
Reference in New Issue