First commit
This commit is contained in:
131
setup/e2mgr/E2Manager/converters/x2apPdu_asn1_unpacker_test.go
Normal file
131
setup/e2mgr/E2Manager/converters/x2apPdu_asn1_unpacker_test.go
Normal file
@@ -0,0 +1,131 @@
|
||||
/*
|
||||
* Copyright (c) 2019 AT&T Intellectual Property.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This source code is part of the near-RT RIC (RAN Intelligent Controller)
|
||||
* platform project (RICP).
|
||||
*/
|
||||
|
||||
package converters
|
||||
|
||||
import (
|
||||
"e2mgr/e2pdus"
|
||||
"e2mgr/logger"
|
||||
"fmt"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
/*
|
||||
* Unpack an x2setup response returned from RAN.
|
||||
* Verify it matches the want pdu.
|
||||
*/
|
||||
|
||||
func TestUnpackX2apSetupResponse(t *testing.T) {
|
||||
logger, _ := logger.InitLogger(logger.DebugLevel)
|
||||
|
||||
wantPduAsStr := `SuccessfulOutcome ::= {
|
||||
procedureCode: 6
|
||||
criticality: 0 (reject)
|
||||
value: X2SetupResponse ::= {
|
||||
protocolIEs: ProtocolIE-Container ::= {
|
||||
X2SetupResponse-IEs ::= {
|
||||
id: 21
|
||||
criticality: 0 (reject)
|
||||
value: GlobalENB-ID ::= {
|
||||
pLMN-Identity: 02 F8 29
|
||||
eNB-ID: 00 7A 80 (4 bits unused)
|
||||
}
|
||||
}
|
||||
X2SetupResponse-IEs ::= {
|
||||
id: 20
|
||||
criticality: 0 (reject)
|
||||
value: ServedCells ::= {
|
||||
SEQUENCE ::= {
|
||||
servedCellInfo: ServedCell-Information ::= {
|
||||
pCI: 99
|
||||
cellId: ECGI ::= {
|
||||
pLMN-Identity: 02 F8 29
|
||||
eUTRANcellIdentifier: 00 07 AB 50 (4 bits unused)
|
||||
}
|
||||
tAC: 01 02
|
||||
broadcastPLMNs: BroadcastPLMNs-Item ::= {
|
||||
02 F8 29
|
||||
}
|
||||
eUTRA-Mode-Info: FDD-Info ::= {
|
||||
uL-EARFCN: 1
|
||||
dL-EARFCN: 1
|
||||
uL-Transmission-Bandwidth: 3 (bw50)
|
||||
dL-Transmission-Bandwidth: 3 (bw50)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}`
|
||||
|
||||
inputPayloadAsStr := "2006002a000002001500080002f82900007a8000140017000000630002f8290007ab50102002f829000001000133"
|
||||
var payload []byte
|
||||
|
||||
_, err := fmt.Sscanf(inputPayloadAsStr, "%x", &payload)
|
||||
if err != nil {
|
||||
t.Errorf("convert inputPayloadAsStr to payloadAsByte. Error: %v\n", err)
|
||||
}
|
||||
|
||||
response, err := UnpackX2apPduAndRefine(logger, e2pdus.MaxAsn1CodecAllocationBufferSize , len(payload), payload, e2pdus.MaxAsn1CodecMessageBufferSize /*message buffer*/)
|
||||
if err != nil {
|
||||
t.Errorf("want: success, got: unpack failed. Error: %v\n", err)
|
||||
}
|
||||
|
||||
want := strings.Fields(wantPduAsStr)
|
||||
got := strings.Fields(response.PduPrint)
|
||||
if len(want) != len(got) {
|
||||
t.Errorf("\nwant :\t[%s]\n got: \t\t[%s]\n", wantPduAsStr, response.PduPrint)
|
||||
}
|
||||
for i := 0; i < len(want); i++ {
|
||||
if strings.Compare(want[i], got[i]) != 0 {
|
||||
t.Errorf("\nwant :\t[%s]\n got: \t\t[%s]\n", wantPduAsStr, strings.TrimSpace(response.PduPrint))
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/*unpacking error*/
|
||||
|
||||
func TestUnpackX2apSetupResponseUnpackError(t *testing.T) {
|
||||
logger, _ := logger.InitLogger(logger.InfoLevel)
|
||||
|
||||
wantError := "unpacking error: #src/asn1codec_utils.c.unpack_pdu_aux - Failed to decode E2AP-PDU (consumed 0), error = 0 Success"
|
||||
//--------------------2006002a
|
||||
inputPayloadAsStr := "2006002b000002001500080002f82900007a8000140017000000630002f8290007ab50102002f829000001000133"
|
||||
var payload []byte
|
||||
_, err := fmt.Sscanf(inputPayloadAsStr, "%x", &payload)
|
||||
if err != nil {
|
||||
t.Errorf("convert inputPayloadAsStr to payloadAsByte. Error: %v\n", err)
|
||||
}
|
||||
|
||||
_, err = UnpackX2apPduAndRefine(logger, e2pdus.MaxAsn1CodecAllocationBufferSize , len(payload), payload, e2pdus.MaxAsn1CodecMessageBufferSize /*message buffer*/)
|
||||
if err != nil {
|
||||
if 0 != strings.Compare(fmt.Sprintf("%s", err), wantError) {
|
||||
t.Errorf("want failure: %s, got: %s", wantError, err)
|
||||
}
|
||||
} else {
|
||||
t.Errorf("want failure: %s, got: success", wantError)
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user