Skip to content

Commit 4441eb2

Browse files
committed
[FAB-3904] Improve fabric/core test coverage
This CR improves the test coverage for the fabric/core package from 20% to 81%. Change-Id: I42608d0a7f09053f480ff8b23f49565824dbefb5 Signed-off-by: Will Lahti <[email protected]>
1 parent e485b21 commit 4441eb2

File tree

4 files changed

+108
-63
lines changed

4 files changed

+108
-63
lines changed

core/admin.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func (*ServerAdmin) StopServer(context.Context, *empty.Empty) (*pb.ServerStatus,
6161
pidFile := config.GetPath("peer.fileSystemPath") + "/peer.pid"
6262
log.Debugf("Remove pid file %s", pidFile)
6363
os.Remove(pidFile)
64-
defer os.Exit(0)
64+
defer os.Exit(1)
6565
return status, nil
6666
}
6767

core/admin_test.go

+50-4
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,55 @@ limitations under the License.
1616

1717
package core
1818

19-
import "testing"
19+
import (
20+
"context"
21+
"testing"
2022

21-
func TestServer_Status(t *testing.T) {
22-
t.Skip("TBD")
23-
//performHandshake(t, peerClientConn)
23+
"github.com/golang/protobuf/ptypes/empty"
24+
"github.com/hyperledger/fabric/common/flogging"
25+
"github.com/hyperledger/fabric/core/testutil"
26+
pb "github.com/hyperledger/fabric/protos/peer"
27+
"github.com/stretchr/testify/assert"
28+
)
29+
30+
var adminServer *ServerAdmin
31+
32+
func init() {
33+
adminServer = NewAdminServer()
34+
testutil.SetupTestConfig()
35+
}
36+
37+
func TestGetStatus(t *testing.T) {
38+
response, err := adminServer.GetStatus(context.Background(), &empty.Empty{})
39+
assert.NotNil(t, response, "Response should have been set")
40+
assert.Nil(t, err, "Error should have been nil")
41+
}
42+
43+
func TestStartServer(t *testing.T) {
44+
response, err := adminServer.StartServer(context.Background(), &empty.Empty{})
45+
assert.NotNil(t, response, "Response should have been set")
46+
assert.Nil(t, err, "Error should have been nil")
47+
}
48+
49+
func TestLoggingCalls(t *testing.T) {
50+
flogging.MustGetLogger("test")
51+
flogging.SetPeerStartupModulesMap()
52+
53+
logResponse, err := adminServer.GetModuleLogLevel(context.Background(), &pb.LogLevelRequest{LogModule: "test"})
54+
assert.NotNil(t, logResponse, "logResponse should have been set")
55+
assert.Equal(t, flogging.DefaultLevel(), logResponse.LogLevel, "log level should have been the default")
56+
assert.Nil(t, err, "Error should have been nil")
57+
58+
logResponse, err = adminServer.SetModuleLogLevel(context.Background(), &pb.LogLevelRequest{LogModule: "test", LogLevel: "debug"})
59+
assert.NotNil(t, logResponse, "logResponse should have been set")
60+
assert.Equal(t, "DEBUG", logResponse.LogLevel, "log level should have been set to debug")
61+
assert.Nil(t, err, "Error should have been nil")
62+
63+
_, err = adminServer.RevertLogLevels(context.Background(), &empty.Empty{})
64+
assert.Nil(t, err, "Error should have been nil")
65+
66+
logResponse, err = adminServer.GetModuleLogLevel(context.Background(), &pb.LogLevelRequest{LogModule: "test"})
67+
assert.NotNil(t, logResponse, "logResponse should have been set")
68+
assert.Equal(t, flogging.DefaultLevel(), logResponse.LogLevel, "log level should have been the default")
69+
assert.Nil(t, err, "Error should have been nil")
2470
}

core/config_test.go

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*
2+
Copyright IBM Corp. 2017 All Rights Reserved.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package core
18+
19+
import (
20+
"testing"
21+
22+
"github.com/stretchr/testify/assert"
23+
)
24+
25+
func TestConfig(t *testing.T) {
26+
// initialize configuration cached with security still disabled
27+
configurationCached = true
28+
assert.False(t, SecurityEnabled(), "security should not be enabled")
29+
30+
// reset configuration cached
31+
configurationCached = false
32+
assert.True(t, SecurityEnabled(), "security should be enabled")
33+
34+
cacheConfiguration()
35+
assert.True(t, SecurityEnabled(), "security should still be enabled")
36+
37+
}

core/fsm_test.go

+20-58
Original file line numberDiff line numberDiff line change
@@ -20,108 +20,70 @@ import (
2020
"testing"
2121

2222
"github.com/looplab/fsm"
23+
"github.com/stretchr/testify/assert"
2324
)
2425

2526
func simulateConn(tb testing.TB) {
2627
peerConn := NewPeerConnectionFSM("10.10.10.10:7051")
2728

2829
err := peerConn.FSM.Event("HELLO")
29-
if err != nil {
30-
tb.Error(err)
31-
}
30+
assert.Nil(tb, err, "Error should have been nil")
3231

3332
err = peerConn.FSM.Event("DISCONNECT")
34-
if err != nil {
35-
tb.Error(err)
36-
}
37-
33+
assert.Nil(tb, err, "Error should have been nil")
3834
}
3935

4036
func TestFSM_PeerConnection(t *testing.T) {
4137
peerConn := NewPeerConnectionFSM("10.10.10.10:7051")
38+
assert.Equal(t, peerConn.FSM.Current(), "created", "Expected to be in created state, got: %s", peerConn.FSM.Current())
4239

4340
err := peerConn.FSM.Event("HELLO")
44-
if err != nil {
45-
t.Error(err)
46-
}
47-
if peerConn.FSM.Current() != "established" {
48-
t.Error("Expected to be in establised state")
49-
}
50-
51-
err = peerConn.FSM.Event("DISCONNECT")
52-
if err != nil {
53-
t.Error(err)
54-
}
55-
}
41+
assert.Nil(t, err, "Error should have been nil")
42+
assert.Equal(t, peerConn.FSM.Current(), "established", "Expected to be in established state, got: %s", peerConn.FSM.Current())
5643

57-
func TestFSM_PeerConnection2(t *testing.T) {
58-
peerConn := NewPeerConnectionFSM("10.10.10.10:7051")
59-
60-
err := peerConn.FSM.Event("HELLO")
61-
if err != nil {
62-
t.Error(err)
63-
}
64-
if peerConn.FSM.Current() != "established" {
65-
t.Error("Expected to be in establised state")
66-
}
44+
err = peerConn.FSM.Event("PING")
45+
assert.NotNil(t, err, "Expected bad state message")
46+
assert.Equal(t, peerConn.FSM.Current(), "established", "Expected to be in established state, got: %s", peerConn.FSM.Current())
6747

6848
err = peerConn.FSM.Event("DISCONNECT")
69-
if err != nil {
70-
t.Error(err)
71-
}
49+
assert.Nil(t, err, "Error should have been nil")
50+
assert.Equal(t, peerConn.FSM.Current(), "closed", "Expected to be in closed state, got: %s", peerConn.FSM.Current())
7251
}
7352

7453
func TestFSM_PeerConnection_BadState_1(t *testing.T) {
7554
peerConn := NewPeerConnectionFSM("10.10.10.10:7051")
7655

7756
// Try to move from created state
7857
err := peerConn.FSM.Event("GET_PEERS")
79-
if err == nil {
80-
t.Error("Expected bad state message")
81-
}
58+
assert.NotNil(t, err, "Expected bad state message")
8259

8360
err = peerConn.FSM.Event("PING")
84-
if err == nil {
85-
t.Error("Expected bad state message")
86-
}
61+
assert.NotNil(t, err, "Expected bad state message")
8762

8863
err = peerConn.FSM.Event("DISCONNECT")
89-
if err != nil {
90-
t.Error(err)
91-
}
92-
64+
assert.Nil(t, err, "Error should have been nil")
9365
}
9466

9567
func TestFSM_PeerConnection_BadState_2(t *testing.T) {
9668
peerConn := NewPeerConnectionFSM("10.10.10.10:7051")
9769

9870
// Try to move from created state
9971
err := peerConn.FSM.Event("GET_PEERS")
100-
if err == nil {
101-
t.Error("Expected bad state message")
102-
}
72+
assert.NotNil(t, err, "Expected bad state message")
10373

10474
err = peerConn.FSM.Event("PING")
105-
if err == nil {
106-
t.Error("Expected bad state message")
107-
}
75+
assert.NotNil(t, err, "Expected bad state message")
10876
}
10977

11078
func TestFSM_PeerConnection_BadEvent(t *testing.T) {
11179
peerConn := NewPeerConnectionFSM("10.10.10.10:7051")
11280

11381
// Try to move from created state
11482
err := peerConn.FSM.Event("UNDEFINED_EVENT")
115-
if err == nil {
116-
t.Error("Expected bad event message")
117-
} else {
118-
// Make sure expected error type
119-
if _, ok := err.(*fsm.UnknownEventError); !ok {
120-
t.Error("expected only 'fsm.UnknownEventError'")
121-
}
122-
t.Logf("Received expected error: %s", err)
123-
}
124-
83+
assert.NotNil(t, err, "Expected bad state message")
84+
// Make sure expected error type
85+
_, ok := err.(*fsm.UnknownEventError)
86+
assert.True(t, ok, "expected only 'fsm.UnknownEventError'")
12587
}
12688

12789
func Benchmark_FSM(b *testing.B) {

0 commit comments

Comments
 (0)