Covered cores to 100%

This commit is contained in:
porosnicuadrian
2021-01-28 14:26:06 +02:00
committed by Dan Christian Bogos
parent 1f7e47248c
commit 907cd168c9
2 changed files with 55 additions and 21 deletions

View File

@@ -22,6 +22,7 @@ import (
"net/rpc"
"net/rpc/jsonrpc"
"reflect"
"syscall"
"testing"
"github.com/cgrates/cgrates/analyzers"
@@ -102,7 +103,7 @@ func TestNewCapsServerCodec(t *testing.T) {
type mockConn struct{}
func (*mockConn) Read(b []byte) (n int, err error) { return }
func (*mockConn) Read(b []byte) (n int, err error) { return 0, syscall.EINVAL }
func (*mockConn) Write(b []byte) (n int, err error) { return }
func (*mockConn) Close() error { return nil }
func (*mockConn) LocalAddr() net.Addr { return utils.LocalAddr() }

View File

@@ -22,6 +22,8 @@ package cores
import (
"bytes"
"errors"
"fmt"
"io/ioutil"
"log"
"net"
@@ -36,6 +38,8 @@ import (
"testing"
"time"
"golang.org/x/net/websocket"
sessions2 "github.com/cgrates/cgrates/sessions"
"github.com/cenkalti/rpc2"
@@ -75,6 +79,7 @@ var (
testHandleRequest,
testBiRPCRegisterName,
testAcceptBiRPC,
testAcceptBiRPCError,
testRpcRegisterActions,
testWebSocket,
}
@@ -700,6 +705,26 @@ func testAcceptBiRPC(t *testing.T) {
runtime.Gosched()
}
type mockListenError struct {
*mockListener
}
func (mK *mockListenError) Accept() (net.Conn, error) {
return nil, errors.New("use of closed network connection")
}
func testAcceptBiRPCError(t *testing.T) {
caps := engine.NewCaps(0, utils.MetaBusy)
server := NewServer(caps)
server.RpcRegister(new(mockRegister))
server.birpcSrv = rpc2.NewServer()
//it will contain "use of closed network connection"
l := new(mockListenError)
go server.acceptBiRPC(l)
runtime.Gosched()
}
func testRpcRegisterActions(t *testing.T) {
caps := engine.NewCaps(0, utils.MetaBusy)
server := NewServer(caps)
@@ -732,29 +757,37 @@ func testRpcRegisterActions(t *testing.T) {
}
func testWebSocket(t *testing.T) {
cfgDflt := config.NewDefaultCGRConfig()
caps := engine.NewCaps(100, utils.MetaBusy)
server = NewServer(caps)
server.RpcRegister(new(mockRegister))
server.RpcRegisterName("mockRegister", new(mockRegister))
shdChan := utils.NewSyncedChan()
authUsers := map[string]string{
"admin": "password",
s := httptest.NewServer(websocket.Handler(server.handleWebSocket))
config, err := websocket.NewConfig(fmt.Sprintf("ws://%s", s.Listener.Addr().String()), "http://localhost")
if err != nil {
t.Fatal(err)
}
//Invalid port address
go server.ServeHTTPTLS(
"57235",
"/usr/share/cgrates/tls/inexisting_file",
"/usr/share/cgrates/tls/server.key",
"/usr/share/cgrates/tls/ca.crt",
cfgDflt.TLSCfg().ServerPolicy,
cfgDflt.TLSCfg().ServerName,
utils.EmptyString,
cfgDflt.HTTPCfg().HTTPWSURL,
true,
authUsers,
shdChan)
runtime.Gosched()
c1, err := net.Dial(utils.TCP, s.Listener.Addr().String())
if err != nil {
t.Fatal(err)
}
conn1, err := websocket.NewClient(config, c1)
if err != nil {
t.Fatal(err)
}
rpc := jsonrpc.NewClient(conn1)
var reply string
err = rpc.Call("mockRegister.Ping", "", &reply)
if err != nil {
t.Fatal(err)
}
if reply != utils.Pong {
t.Errorf("Expected Pong, receive %+s", reply)
}
conn1.Close()
s.Close()
}