@@ -189,20 +189,38 @@ func TestModificationOfZeroExtras(t *testing.T) {
189189 // The test of shallow copying is now guaranteed to fail.
190190 return
191191 }
192- t .Run ("shallow copy" , func (t * testing.T ) {
192+ t .Run ("copy" , func (t * testing.T ) {
193+ const (
194+ // Arbitrary test values.
195+ seqUp = 123456789
196+ seqDown = 987654321
197+ )
198+
193199 ccCopy := * config
194- rCopy := * rules
200+ t .Run ("ChainConfig" , func (t * testing.T ) {
201+ assert .Equal (t , extras .FromChainConfig (& ccCopy ), ccReplace , "extras copied" )
195202
196- assert . Equal ( t , extras .FromChainConfig (& ccCopy ), ccReplace , "ChainConfig extras copied" )
197- assert . Equal (t , extras . FromRules ( & rCopy ), rulesReplace , "Rules extras copied" )
203+ extras .PointerFromChainConfig (& ccCopy ). X = seqUp
204+ assertChainConfigExtra (t , ccExtra { X : seqUp } , "original changed via copied.PointerFromChainConfig because copy only shallow " )
198205
199- const seqUp = 123456789
200- extras .PointerFromChainConfig (& ccCopy ).X = seqUp
201- assertChainConfigExtra (t , ccExtra {X : seqUp }, "original changed because copy only shallow" )
206+ ccReplace = ccExtra {X : seqDown }
207+ extras .SetOnChainConfig (& ccCopy , ccReplace )
208+ assert .Equal (t , extras .FromChainConfig (& ccCopy ), ccReplace , "SetOnChainConfig effect" )
209+ assertChainConfigExtra (t , ccExtra {X : seqUp }, "original unchanged after copied.SetOnChainConfig" )
210+ })
202211
203- const seqDown = 987654321
204- extras .PointerFromRules (& rCopy ).X = seqDown
205- assertRulesExtra (t , rulesExtra {X : seqDown }, "original changed because copy only shallow" )
212+ rCopy := * rules
213+ t .Run ("Rules" , func (t * testing.T ) {
214+ assert .Equal (t , extras .FromRules (& rCopy ), rulesReplace , "extras copied" )
215+
216+ extras .PointerFromRules (& rCopy ).X = seqUp
217+ assertRulesExtra (t , rulesExtra {X : seqUp }, "original changed via copied.PointerFromRuels because copy only shallow" )
218+
219+ rulesReplace = rulesExtra {X : seqDown }
220+ extras .SetOnRules (& rCopy , rulesReplace )
221+ assert .Equal (t , extras .FromRules (& rCopy ), rulesReplace , "SetOnRules effect" )
222+ assertRulesExtra (t , rulesExtra {X : seqUp }, "original unchanged after copied.SetOnRules" )
223+ })
206224 })
207225}
208226
0 commit comments