@@ -230,52 +230,27 @@ func assertSolanaDeployOnChain(
230230}
231231
232232//nolint:paralleltest // global SetProgramID binding state is shared in-process
233- func TestDeployMCMSWithTimelock_Solana_FreshDeploy (t * testing.T ) {
233+ func TestDeployMCMSWithTimelock_Solana (t * testing.T ) {
234234 selector := chainselectors .TEST_22222222222222222222222222222222222222222222 .Selector
235235 cfg := cldftesthelpers .SingleGroupTimelockConfig (t )
236236
237237 rt := newSolanaDeployRuntime (t , selector , datastoreWithMCMSPrograms (t , selector ))
238238 execSolanaDeployChangeset (t , rt , selector , cfg )
239239
240- assertSolanaDeployDatastoreRefs (t , rt , selector )
240+ afterFirst := assertSolanaDeployDatastoreRefs (t , rt , selector )
241241 assertSolanaDeployOnChain (t , rt , selector , cfg )
242- }
243-
244- //nolint:paralleltest // global SetProgramID binding state is shared in-process
245- func TestDeployMCMSWithTimelock_Solana_PartialDeploy (t * testing.T ) {
246- selector := chainselectors .TEST_22222222222222222222222222222222222222222222 .Selector
247- cfg := cldftesthelpers .SingleGroupTimelockConfig (t )
248-
249- rt := newSolanaDeployRuntime (t , selector , datastoreWithMCMSPrograms (t , selector ))
250- execSolanaDeployChangeset (t , rt , selector , cfg )
251-
252- byType := assertSolanaDeployDatastoreRefs (t , rt , selector )
253242
254243 // Pre-existing programs must retain their canonical IDs (not be re-deployed).
255244 require .Equal (t , solutils .GetProgramID (solutils .ProgAccessController ),
256- byType [datastore .ContractType (mcmscontracts .AccessControllerProgram )].Address )
245+ afterFirst [datastore .ContractType (mcmscontracts .AccessControllerProgram )].Address )
257246 require .Equal (t , solutils .GetProgramID (solutils .ProgMCM ),
258- byType [datastore .ContractType (mcmscontracts .ManyChainMultisigProgram )].Address )
247+ afterFirst [datastore .ContractType (mcmscontracts .ManyChainMultisigProgram )].Address )
259248 require .Equal (t , solutils .GetProgramID (solutils .ProgTimelock ),
260- byType [datastore .ContractType (mcmscontracts .RBACTimelockProgram )].Address )
261-
262- assertSolanaDeployOnChain (t , rt , selector , cfg )
263- }
264-
265- //nolint:paralleltest // global SetProgramID binding state is shared in-process
266- func TestDeployMCMSWithTimelock_Solana_IdempotentReRun (t * testing.T ) {
267- selector := chainselectors .TEST_22222222222222222222222222222222222222222222 .Selector
268- cfg := cldftesthelpers .SingleGroupTimelockConfig (t )
269-
270- rt := newSolanaDeployRuntime (t , selector , datastoreWithMCMSPrograms (t , selector ))
271-
272- execSolanaDeployChangeset (t , rt , selector , cfg )
273- afterFirst := assertSolanaDeployDatastoreRefs (t , rt , selector )
274- assertSolanaDeployOnChain (t , rt , selector , cfg )
249+ afterFirst [datastore .ContractType (mcmscontracts .RBACTimelockProgram )].Address )
275250
251+ // Re-running the changeset must be idempotent: no addresses should change.
276252 execSolanaDeployChangeset (t , rt , selector , cfg )
277253 afterSecond := assertSolanaDeployDatastoreRefs (t , rt , selector )
278-
279254 for ct , ref := range afterFirst {
280255 require .Equal (t , ref .Address , afterSecond [ct ].Address , "address changed for %s on re-run" , ct )
281256 }
0 commit comments