Skip to content
This repository was archived by the owner on Apr 25, 2025. It is now read-only.

Commit e1d3ddb

Browse files
committed
[FAB-10625] fixing local integration test
Change-Id: I2e78004640c81a282cd526cdbb9d11f003923c98 Signed-off-by: Sudesh Shetty <sudesh.shetty@securekey.com>
1 parent 7dca4ca commit e1d3ddb

File tree

7 files changed

+116
-21
lines changed

7 files changed

+116
-21
lines changed

pkg/fab/comm/network.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import (
1717
func NetworkPeerConfig(cfg fab.EndpointConfig, key string) (*fab.NetworkPeer, error) {
1818
peerCfg, ok := cfg.PeerConfig(key)
1919
if !ok {
20-
return nil, errors.Errorf("peer not found")
20+
return nil, errors.Errorf("peer [%s] not found", key)
2121
}
2222

2323
// find MSP ID

test/fixtures/config/config_test.yaml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -406,17 +406,17 @@ certificateAuthorities:
406406
# SubstitutionExp for the fields eventUrl and gprcOptions.ssl-target-name-override respectively
407407
# In any case mappedHost's config will be used, so mapped host cannot be empty, if entityMatchers are used
408408
#entityMatchers:
409-
entityMatchers:
410-
peer:
411-
- pattern: (\w+).org1.example.com:(\d+)
412-
urlSubstitutionExp: $1.org1.example.com:$2
413-
sslTargetOverrideUrlSubstitutionExp: $1.org1.example.com
414-
mappedHost: peer0.org1.example.com
415-
416-
- pattern: (\w+).org2.example.com:(\d+)
417-
urlSubstitutionExp: $1.org2.example.com:$2
418-
sslTargetOverrideUrlSubstitutionExp: $1.org2.example.com
419-
mappedHost: peer0.org2.example.com
409+
#entityMatchers:
410+
# peer:
411+
# - pattern: (\w+).org1.example.com:(\d+)
412+
# urlSubstitutionExp: $1.org1.example.com:$2
413+
# sslTargetOverrideUrlSubstitutionExp: $1.org1.example.com
414+
# mappedHost: peer0.org1.example.com
415+
#
416+
# - pattern: (\w+).org2.example.com:(\d+)
417+
# urlSubstitutionExp: $1.org2.example.com:$2
418+
# sslTargetOverrideUrlSubstitutionExp: $1.org2.example.com
419+
# mappedHost: peer0.org2.example.com
420420

421421
# - pattern: (\w+).org1.example.(\w+)
422422
# urlSubstitutionExp: peer0.org1.example.com:7051

test/fixtures/config/overrides/local_entity_matchers.yaml

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,49 @@
2020
# In any case mappedHost's config will be used, so mapped host cannot be empty, if entityMatchers are used
2121
entityMatchers:
2222
peer:
23-
- pattern: (\w+).org1.example.(\w+)
23+
- pattern: peer0.org1.example.(\w+)
2424
urlSubstitutionExp: localhost:7051
2525
eventUrlSubstitutionExp: localhost:7053
2626
sslTargetOverrideUrlSubstitutionExp: peer0.org1.example.com
2727
mappedHost: local.peer0.org1.example.com
2828

29+
- pattern: peer1.org1.example.(\w+)
30+
urlSubstitutionExp: localhost:7151
31+
eventUrlSubstitutionExp: localhost:7153
32+
sslTargetOverrideUrlSubstitutionExp: peer1.org1.example.com
33+
mappedHost: local.peer1.org1.example.com
34+
2935
- pattern: (\w+).org2.example.(\w+)
3036
urlSubstitutionExp: localhost:8051
3137
eventUrlSubstitutionExp: localhost:8053
3238
sslTargetOverrideUrlSubstitutionExp: peer0.org2.example.com
3339
mappedHost: local.peer0.org2.example.com
3440

3541
- pattern: (\w+).org1.example.(\w+):(\d+)
42+
urlSubstitutionExp: localhost:$2
43+
eventUrlSubstitutionExp: localhost:$2
44+
sslTargetOverrideUrlSubstitutionExp: $1.org1.example.com
45+
mappedHost: local.$1.org1.example.com
46+
47+
- pattern: (\w+).org2.example.(\w+):(\d+)
48+
urlSubstitutionExp: localhost:8051
49+
eventUrlSubstitutionExp: localhost:8053
50+
sslTargetOverrideUrlSubstitutionExp: peer0.org2.example.com
51+
mappedHost: local.peer0.org2.example.com
52+
53+
- pattern: (\w+):7051
3654
urlSubstitutionExp: localhost:7051
3755
eventUrlSubstitutionExp: localhost:7053
3856
sslTargetOverrideUrlSubstitutionExp: peer0.org1.example.com
3957
mappedHost: local.peer0.org1.example.com
4058

41-
- pattern: (\w+).org2.example.(\w+):(\d+)
59+
- pattern: (\w+):7151
60+
urlSubstitutionExp: localhost:7151
61+
eventUrlSubstitutionExp: localhost:7153
62+
sslTargetOverrideUrlSubstitutionExp: peer1.org1.example.com
63+
mappedHost: local.peer1.org1.example.com
64+
65+
- pattern: (\w+):8051
4266
urlSubstitutionExp: localhost:8051
4367
eventUrlSubstitutionExp: localhost:8053
4468
sslTargetOverrideUrlSubstitutionExp: peer0.org2.example.com

test/fixtures/config/overrides/local_orderers_peers_ca.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,28 @@ peers:
6363
# Certificate location absolute path
6464
path: ${GOPATH}/src/github.com/hyperledger/fabric-sdk-go/${CRYPTOCONFIG_FIXTURES_PATH}/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem
6565

66+
local.peer1.org1.example.com:
67+
# this URL is used to send endorsement and query requests
68+
url: peer1.org1.example.com:7151
69+
# eventUrl is only needed when using eventhub (default is delivery service)
70+
eventUrl: peer1.org1.example.com:7153
71+
72+
grpcOptions:
73+
ssl-target-name-override: peer1.org1.example.com
74+
# These parameters should be set in coordination with the keepalive policy on the server,
75+
# as incompatible settings can result in closing of connection.
76+
# When duration of the 'keep-alive-time' is set to 0 or less the keep alive client parameters are disabled
77+
keep-alive-time: 0s
78+
keep-alive-timeout: 20s
79+
keep-alive-permit: false
80+
fail-fast: false
81+
# allow-insecure will be taken into consideration if address has no protocol defined, if true then grpc or else grpcs
82+
allow-insecure: false
83+
84+
tlsCACerts:
85+
# Certificate location absolute path
86+
path: ${GOPATH}/src/github.com/hyperledger/fabric-sdk-go/${CRYPTOCONFIG_FIXTURES_PATH}/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem
87+
6688
local.peer0.org2.example.com:
6789
url: peer0.org2.example.com:8051
6890
# eventUrl is only needed when using eventhub (default is delivery service)

test/integration/e2e/configless/endpointconfig_override_test.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,35 @@ var (
198198
},
199199
}
200200

201+
peersByLocalURL = map[string]fab.PeerConfig{
202+
"localhost:7051": {
203+
URL: "localhost:7051",
204+
EventURL: "localhost:7053",
205+
GRPCOptions: map[string]interface{}{
206+
"ssl-target-name-override": "peer0.org1.example.com",
207+
"keep-alive-time": 0 * time.Second,
208+
"keep-alive-timeout": 20 * time.Second,
209+
"keep-alive-permit": false,
210+
"fail-fast": false,
211+
"allow-insecure": false,
212+
},
213+
TLSCACert: tlsCertByBytes("${GOPATH}/src/github.com/hyperledger/fabric-sdk-go/${CRYPTOCONFIG_FIXTURES_PATH}/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem"),
214+
},
215+
"localhost:8051": {
216+
URL: "localhost:8051",
217+
EventURL: "localhost:8053",
218+
GRPCOptions: map[string]interface{}{
219+
"ssl-target-name-override": "peer0.org2.example.com",
220+
"keep-alive-time": 0 * time.Second,
221+
"keep-alive-timeout": 20 * time.Second,
222+
"keep-alive-permit": false,
223+
"fail-fast": false,
224+
"allow-insecure": false,
225+
},
226+
TLSCACert: tlsCertByBytes("${GOPATH}/src/github.com/hyperledger/fabric-sdk-go/${CRYPTOCONFIG_FIXTURES_PATH}/peerOrganizations/org2.example.com/tlsca/tlsca.org2.example.com-cert.pem"),
227+
},
228+
}
229+
201230
caConfigObj = map[string]caConfig{
202231
"ca.org1.example.com": {
203232
URL: "https://ca.org1.example.com:7054",
@@ -496,6 +525,13 @@ func (m *examplePeerConfig) PeerConfig(nameOrURL string) (*fab.PeerConfig, bool)
496525
return &pcfg, true
497526
}
498527

528+
if integration.IsLocal() {
529+
pcfg, ok := peersByLocalURL[nameOrURL]
530+
if ok {
531+
return &pcfg, true
532+
}
533+
}
534+
499535
i := strings.Index(nameOrURL, ":")
500536
if i > 0 {
501537
return m.PeerConfig(nameOrURL[0:i])

test/integration/e2e/end_to_end.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ package e2e
99
import (
1010
"path"
1111
"strconv"
12-
"strings"
1312
"testing"
1413
"time"
1514

@@ -27,6 +26,8 @@ import (
2726

2827
mspclient "github.com/hyperledger/fabric-sdk-go/pkg/client/msp"
2928

29+
"strings"
30+
3031
"github.com/hyperledger/fabric-sdk-go/pkg/common/providers/core"
3132
packager "github.com/hyperledger/fabric-sdk-go/pkg/fab/ccpackager/gopackager"
3233
"github.com/hyperledger/fabric-sdk-go/pkg/fabsdk"
@@ -106,10 +107,8 @@ func setupAndRun(t *testing.T, doSetup bool, configOpt core.ConfigProvider, sdkO
106107
t.Fatalf("Did NOT receive CC event for eventId(%s)\n", eventID)
107108
}
108109

109-
i := strings.Index(ccEvent.SourceURL, ":")
110-
111110
// Verify move funds transaction result on the same peer where the event came from.
112-
verifyFundsIsMoved(client, t, value, ccEvent.SourceURL[0:i])
111+
verifyFundsIsMoved(client, t, value, ccEvent)
113112

114113
}
115114

@@ -148,8 +147,15 @@ func createChannelAndCC(t *testing.T, sdk *fabsdk.FabricSDK) {
148147
createCC(t, orgResMgmt)
149148
}
150149

151-
func verifyFundsIsMoved(client *channel.Client, t *testing.T, value []byte, targetEndpoints ...string) {
152-
newValue := queryCC(client, t, targetEndpoints...)
150+
func verifyFundsIsMoved(client *channel.Client, t *testing.T, value []byte, ccevent *fab.CCEvent) {
151+
152+
//Fix for issue prev in release test, where 'ccEvent.SourceURL' has event URL
153+
if !integration.IsLocal() {
154+
portIndex := strings.Index(ccevent.SourceURL, ":")
155+
ccevent.SourceURL = ccevent.SourceURL[0:portIndex]
156+
}
157+
158+
newValue := queryCC(client, t, ccevent.SourceURL)
153159
valueInt, err := strconv.Atoi(string(value))
154160
if err != nil {
155161
t.Fatal(err.Error())

test/integration/sdk/ledger_queries_test.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"github.com/hyperledger/fabric-sdk-go/pkg/core/config"
1818
"github.com/hyperledger/fabric-sdk-go/pkg/fab"
1919
"github.com/hyperledger/fabric-sdk-go/pkg/fabsdk"
20+
"github.com/hyperledger/fabric-sdk-go/test/integration"
2021
"github.com/stretchr/testify/require"
2122
)
2223

@@ -113,7 +114,13 @@ func TestNoLedgerEndpoints(t *testing.T) {
113114
// Using shared SDK instance to increase test speed.
114115
testSetup := mainTestSetup
115116

116-
sdk, err := fabsdk.New(config.FromFile("../../fixtures/config/config_test_endpoints.yaml"))
117+
configProvider := config.FromFile("../../fixtures/config/config_test_endpoints.yaml")
118+
//Add entity matchers if local test
119+
if integration.IsLocal() {
120+
configProvider = integration.AddLocalEntityMapping(configProvider, integration.LocalOrdererPeersConfig)
121+
}
122+
123+
sdk, err := fabsdk.New(configProvider)
117124
if err != nil {
118125
panic(fmt.Sprintf("Failed to create new SDK: %s", err))
119126
}

0 commit comments

Comments
 (0)