X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fcontrol%2Fut_test.go;h=38bd322be2043d8b3e9592a1c32b6b5db3c2a061;hb=5f8ffa07163f52d65092d63f5d173149cd5c46ad;hp=151619d3ed9cf1242912c4c7a9d4382fdd19627b;hpb=a9bf76cb8dec6e52e7699edf1631c214647f8beb;p=ric-plt%2Fsubmgr.git diff --git a/pkg/control/ut_test.go b/pkg/control/ut_test.go index 151619d..38bd322 100644 --- a/pkg/control/ut_test.go +++ b/pkg/control/ut_test.go @@ -20,160 +20,36 @@ package control import ( - "fmt" - "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp" - "io/ioutil" + "gerrit.o-ran-sc.org/r/ric-plt/submgr/pkg/teststub" + "gerrit.o-ran-sc.org/r/ric-plt/submgr/pkg/teststubdummy" + "gerrit.o-ran-sc.org/r/ric-plt/submgr/pkg/teststube2ap" "os" - "strings" - "sync" "testing" - "time" ) //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- -type testingRmrControl struct { - desc string - mutex sync.Mutex - syncChan chan struct{} +func CaseBegin(desc string) *teststub.TestWrapper { + tent := teststub.NewTestWrapper(desc) + tent.Logger.Info(desc) + return tent } -func (tc *testingRmrControl) Lock() { - tc.mutex.Lock() -} - -func (tc *testingRmrControl) Unlock() { - tc.mutex.Unlock() -} - -func (tc *testingRmrControl) GetDesc() string { - return tc.desc -} - -func (tc *testingRmrControl) ReadyCB(data interface{}) { - xapp.Logger.Info("testingRmrControl(%s) ReadyCB", tc.GetDesc()) - tc.syncChan <- struct{}{} - return -} - -func (tc *testingRmrControl) WaitCB() { - <-tc.syncChan -} - -func (tc *testingRmrControl) init(desc string, rtfile string, port string) { - os.Setenv("RMR_SEED_RT", rtfile) - os.Setenv("RMR_SRC_ID", "localhost:"+port) - xapp.Logger.Info("Using rt file %s", os.Getenv("RMR_SEED_RT")) - xapp.Logger.Info("Using src id %s", os.Getenv("RMR_SRC_ID")) - tc.desc = strings.ToUpper(desc) - tc.syncChan = make(chan struct{}) -} - -//----------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------- -type testingRmrStubControl struct { - testingRmrControl - rmrConChan chan *RMRParams - rmrClientTest *xapp.RMRClient - active bool - msgCnt uint64 -} - -func (tc *testingRmrStubControl) GetMsgCnt() uint64 { - return tc.msgCnt -} - -func (tc *testingRmrStubControl) IncMsgCnt() { - tc.msgCnt++ -} - -func (tc *testingRmrStubControl) DecMsgCnt() { - if tc.msgCnt > 0 { - tc.msgCnt-- - } -} - -func (tc *testingRmrStubControl) TestMsgCnt(t *testing.T) { - if tc.GetMsgCnt() > 0 { - testError(t, "(%s) message count expected 0 but is %d", tc.GetDesc(), tc.GetMsgCnt()) - } -} - -func (tc *testingRmrStubControl) RmrSend(params *RMRParams) (err error) { - // - //NOTE: Do this way until xapp-frame sending is improved - // - xapp.Logger.Info("(%s) RmrSend %s", tc.GetDesc(), params.String()) - status := false - i := 1 - for ; i <= 10 && status == false; i++ { - status = tc.rmrClientTest.SendMsg(params.RMRParams) - if status == false { - xapp.Logger.Info("(%s) RmrSend failed. Retry count %v, %s", tc.GetDesc(), i, params.String()) - time.Sleep(500 * time.Millisecond) - } - } - if status == false { - err = fmt.Errorf("(%s) RmrSend failed. Retry count %v, %s", tc.GetDesc(), i, params.String()) - xapp.Rmr.Free(params.Mbuf) - } - return -} - -func (tc *testingRmrStubControl) init(desc string, rtfile string, port string, stat string, consumer xapp.MessageConsumer) { - tc.active = false - tc.testingRmrControl.init(desc, rtfile, port) - tc.rmrConChan = make(chan *RMRParams) - tc.rmrClientTest = xapp.NewRMRClientWithParams("tcp:"+port, 4096, 1, stat) - tc.rmrClientTest.SetReadyCB(tc.ReadyCB, nil) - go tc.rmrClientTest.Start(consumer) - tc.WaitCB() - allRmrStubs = append(allRmrStubs, tc) -} - -var allRmrStubs []*testingRmrStubControl - //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- -func testError(t *testing.T, pattern string, args ...interface{}) { - xapp.Logger.Error(fmt.Sprintf(pattern, args...)) - t.Errorf(fmt.Sprintf(pattern, args...)) -} - -func testLog(t *testing.T, pattern string, args ...interface{}) { - xapp.Logger.Info(fmt.Sprintf(pattern, args...)) - t.Logf(fmt.Sprintf(pattern, args...)) -} - -func testCreateTmpFile(str string) (string, error) { - file, err := ioutil.TempFile("/tmp", "*.rt") - if err != nil { - return "", err - } - _, err = file.WriteString(str) - if err != nil { - file.Close() - return "", err - } - return file.Name(), nil -} - -//----------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------- - -var xappConn1 *testingXappStub -var xappConn2 *testingXappStub -var e2termConn *testingE2termStub +var xappConn1 *teststube2ap.E2Stub +var xappConn2 *teststube2ap.E2Stub +var e2termConn *teststube2ap.E2Stub var rtmgrHttp *testingHttpRtmgrStub var mainCtrl *testingSubmgrControl +var dummystub *teststubdummy.RmrDummyStub + func ut_test_init() { - xapp.Logger.Info("ut_test_init") + tent := CaseBegin("ut_test_init") //--------------------------------- // @@ -219,7 +95,7 @@ func ut_test_init() { defer os.Remove(cfgfilename) os.Setenv("CFG_FILE", cfgfilename) */ - xapp.Logger.Info("Using cfg file %s", os.Getenv("CFG_FILE")) + tent.Logger.Info("Using cfg file %s", os.Getenv("CFG_FILE")) //--------------------------------- // Static routetable for rmr @@ -239,97 +115,61 @@ func ut_test_init() { // 15560 e2term stub // 13560 xapp1 stub // 13660 xapp2 stub + // 16560 dummy stub // //--------------------------------- - - allrt := `newrt|start -mse|12010|-1|localhost:14560 -mse|12010,localhost:14560|-1|localhost:15560 -mse|12011,localhost:15560|-1|localhost:14560 -mse|12012,localhost:15560|-1|localhost:14560 -mse|12011,localhost:14560|-1|localhost:13660;localhost:13560 -mse|12012,localhost:14560|-1|localhost:13660;localhost:13560 -mse|12020|-1|localhost:14560 -mse|12020,localhost:14560|-1|localhost:15560 -mse|12021,localhost:15560|-1|localhost:14560 -mse|12022,localhost:15560|-1|localhost:14560 -mse|12021,localhost:14560|-1|localhost:13660;localhost:13560 -mse|12022,localhost:14560|-1|localhost:13660;localhost:13560 -mse|55555|-1|localhost:13660;localhost:13560,localhost:15560 -newrt|end -` + rt := &teststub.RmrRouteTable{} + rt.AddEntry(12010, "", -1, "localhost:14560") + rt.AddEntry(12010, "localhost:14560", -1, "localhost:15560") + rt.AddEntry(12011, "localhost:15560", -1, "localhost:14560") + rt.AddEntry(12012, "localhost:15560", -1, "localhost:14560") + rt.AddEntry(12011, "localhost:14560", -1, "localhost:13660;localhost:13560") + rt.AddEntry(12012, "localhost:14560", -1, "localhost:13660;localhost:13560") + rt.AddEntry(12020, "", -1, "localhost:14560") + rt.AddEntry(12020, "localhost:14560", -1, "localhost:15560") + rt.AddEntry(12021, "localhost:15560", -1, "localhost:14560") + rt.AddEntry(12022, "localhost:15560", -1, "localhost:14560") + rt.AddEntry(12021, "localhost:14560", -1, "localhost:13660;localhost:13560") + rt.AddEntry(12022, "localhost:14560", -1, "localhost:13660;localhost:13560") + rt.AddEntry(55555, "", -1, "localhost:13660;localhost:13560;localhost:15560;localhost:16560") + + rtfilename, _ := teststub.CreateTmpFile(rt.GetRt()) + defer os.Remove(rtfilename) //--------------------------------- // //--------------------------------- - xapp.Logger.Info("### submgr ctrl run ###") - subsrt := allrt - subrtfilename, _ := testCreateTmpFile(subsrt) - defer os.Remove(subrtfilename) - mainCtrl = createSubmgrControl("main", subrtfilename, "14560") + tent.Logger.Info("### submgr ctrl run ###") + mainCtrl = createSubmgrControl(rtfilename, "14560") //--------------------------------- // //--------------------------------- - xapp.Logger.Info("### xapp1 stub run ###") - xapprt1 := allrt - xapprtfilename1, _ := testCreateTmpFile(xapprt1) - defer os.Remove(xapprtfilename1) - xappConn1 = createNewXappStub("xappstub1", xapprtfilename1, "13560", "RMRXAPP1STUB") + tent.Logger.Info("### xapp1 stub run ###") + xappConn1 = teststube2ap.CreateNewE2Stub("xappstub1", rtfilename, "13560", "RMRXAPP1STUB", 55555) //--------------------------------- // //--------------------------------- - xapp.Logger.Info("### xapp2 stub run ###") - xapprt2 := allrt - xapprtfilename2, _ := testCreateTmpFile(xapprt2) - defer os.Remove(xapprtfilename2) - xappConn2 = createNewXappStub("xappstub2", xapprtfilename2, "13660", "RMRXAPP2STUB") + tent.Logger.Info("### xapp2 stub run ###") + xappConn2 = teststube2ap.CreateNewE2Stub("xappstub2", rtfilename, "13660", "RMRXAPP2STUB", 55555) //--------------------------------- // //--------------------------------- - xapp.Logger.Info("### e2term stub run ###") - e2termrt := allrt - e2termrtfilename, _ := testCreateTmpFile(e2termrt) - defer os.Remove(e2termrtfilename) - e2termConn = createNewE2termStub("e2termstub", e2termrtfilename, "15560", "RMRE2TERMSTUB") + tent.Logger.Info("### e2term stub run ###") + e2termConn = teststube2ap.CreateNewE2termStub("e2termstub", rtfilename, "15560", "RMRE2TERMSTUB", 55555) //--------------------------------- - // Testing message sending + // Just to test dummy stub //--------------------------------- - var dummyBuf []byte = make([]byte, 100) + tent.Logger.Info("### dummy stub run ###") + dummystub = teststubdummy.CreateNewRmrDummyStub("dummystub", rtfilename, "16560", "DUMMYSTUB", 55555) - params := &RMRParams{&xapp.RMRParams{}} - params.Mtype = 55555 - params.SubId = -1 - params.Payload = dummyBuf - params.PayloadLen = 100 - params.Meid = &xapp.RMRMeid{RanName: "NONEXISTINGRAN"} - params.Xid = "THISISTESTFORSTUBS" - params.Mbuf = nil - - status := false - i := 1 - for ; i <= 10 && status == false; i++ { - xapp.Rmr.Send(params.RMRParams, false) - - status = true - for _, val := range allRmrStubs { - if val.active == false { - status = false - break - } - } - if status == true { - break - } - xapp.Logger.Info("Sleep 0.5 secs and try routes again") - time.Sleep(500 * time.Millisecond) - } - - if status == false { - xapp.Logger.Error("Could not initialize routes") + //--------------------------------- + // Testing message sending + //--------------------------------- + if teststub.RmrStubControlWaitAlive(10, 55555, mainCtrl.c) == false { os.Exit(1) } } @@ -338,7 +178,7 @@ newrt|end // //----------------------------------------------------------------------------- func TestMain(m *testing.M) { - xapp.Logger.Info("TestMain start") + CaseBegin("TestMain start") ut_test_init() code := m.Run() os.Exit(code)