@@ -8,42 +8,71 @@ import (
88)
99
1010const (
11- DefaultSimdImage = "ghcr.io/cosmos/ibc-go-simd-e2e"
12- SimdImageEnv = "SIMD_IMAGE"
13- SimdTagEnv = "SIMD_TAG"
14- GoRelayerTag = "RLY_TAG"
11+ // ChainASimdImageEnv specifies the image that Chain A will use.
12+ ChainASimdImageEnv = "CHAIN_A_SIMD_IMAGE"
13+ // ChainASimdTagEnv specifies the tag that Chain A will use.
14+ ChainASimdTagEnv = "CHAIN_A_SIMD_TAG"
15+ // ChainBSimdImageEnv specifies the image that Chain B will use. If unspecified
16+ // the value will default to the same value as Chain A.
17+ ChainBSimdImageEnv = "CHAIN_B_SIMD_IMAGE"
18+ // ChainBSimdTagEnv specifies the tag that Chain B will use. If unspecified
19+ // the value will default to the same value as Chain A.
20+ ChainBSimdTagEnv = "CHAIN_B_SIMD_TAG"
21+ GoRelayerTagEnv = "RLY_TAG"
1522
16- defaultRlyTag = "main"
23+ defaultSimdImage = "ghcr.io/cosmos/ibc-go-simd-e2e"
24+ defaultRlyTag = "main"
1725)
1826
1927// TestConfig holds various fields used in the E2E tests.
2028type TestConfig struct {
21- SimdImage string
22- SimdTag string
23- RlyTag string
29+ ChainAConfig ChainConfig
30+ ChainBConfig ChainConfig
31+ RlyTag string
32+ }
33+
34+ type ChainConfig struct {
35+ Image string
36+ Tag string
2437}
2538
2639// FromEnv returns a TestConfig constructed from environment variables.
2740func FromEnv () TestConfig {
28- simdImage , ok := os .LookupEnv (SimdImageEnv )
41+ chainASimdImage , ok := os .LookupEnv (ChainASimdImageEnv )
42+ if ! ok {
43+ chainASimdImage = defaultSimdImage
44+ }
45+
46+ chainASimdTag , ok := os .LookupEnv (ChainASimdTagEnv )
2947 if ! ok {
30- simdImage = DefaultSimdImage
48+ panic ( fmt . Sprintf ( "must specify simd version for test with environment variable [%s]" , ChainASimdTagEnv ))
3149 }
3250
33- simdTag , ok := os .LookupEnv (SimdTagEnv )
51+ chainBSimdImage , ok := os .LookupEnv (ChainBSimdImageEnv )
3452 if ! ok {
35- panic ( fmt . Sprintf ( "must specify simd version for test with environment variable [%s]" , SimdTagEnv ))
53+ chainBSimdImage = chainASimdImage
3654 }
3755
38- rlyTag , ok := os .LookupEnv (GoRelayerTag )
56+ chainBSimdTag , ok := os .LookupEnv (ChainBSimdTagEnv )
57+ if ! ok {
58+ chainBSimdTag = chainASimdTag
59+ }
60+
61+ rlyTag , ok := os .LookupEnv (GoRelayerTagEnv )
3962 if ! ok {
4063 rlyTag = defaultRlyTag
4164 }
4265
4366 return TestConfig {
44- SimdImage : simdImage ,
45- SimdTag : simdTag ,
46- RlyTag : rlyTag ,
67+ ChainAConfig : ChainConfig {
68+ Image : chainASimdImage ,
69+ Tag : chainASimdTag ,
70+ },
71+ ChainBConfig : ChainConfig {
72+ Image : chainBSimdImage ,
73+ Tag : chainBSimdTag ,
74+ },
75+ RlyTag : rlyTag ,
4776 }
4877}
4978
@@ -62,24 +91,24 @@ type ChainOptionConfiguration func(options *ChainOptions)
6291// These options can be configured by passing configuration functions to E2ETestSuite.GetChains.
6392func DefaultChainOptions () ChainOptions {
6493 tc := FromEnv ()
65- chainACfg := newDefaultSimappConfig (tc , "simapp-a" , "chain-a" , "atoma" )
66- chainBCfg := newDefaultSimappConfig (tc , "simapp-b" , "chain-b" , "atomb" )
94+ chainACfg := newDefaultSimappConfig (tc . ChainAConfig , "simapp-a" , "chain-a" , "atoma" )
95+ chainBCfg := newDefaultSimappConfig (tc . ChainBConfig , "simapp-b" , "chain-b" , "atomb" )
6796 return ChainOptions {
6897 ChainAConfig : & chainACfg ,
6998 ChainBConfig : & chainBCfg ,
7099 }
71100}
72101
73102// newDefaultSimappConfig creates an ibc configuration for simd.
74- func newDefaultSimappConfig (tc TestConfig , name , chainID , denom string ) ibc.ChainConfig {
103+ func newDefaultSimappConfig (cc ChainConfig , name , chainID , denom string ) ibc.ChainConfig {
75104 return ibc.ChainConfig {
76105 Type : "cosmos" ,
77106 Name : name ,
78107 ChainID : chainID ,
79108 Images : []ibc.DockerImage {
80109 {
81- Repository : tc . SimdImage ,
82- Version : tc . SimdTag ,
110+ Repository : cc . Image ,
111+ Version : cc . Tag ,
83112 },
84113 },
85114 Bin : "simd" ,
0 commit comments