aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2015-09-22 16:39:55 +0200
committerHarald Welte <laforge@gnumonks.org>2015-09-22 16:39:55 +0200
commit329085a8ff2c1162a32eb617068fa5614efcde06 (patch)
tree290806d3a1bc7f64a0e7a8e1cc5b48bfd6578164 /tests
parent1eaa3d72eaa10bb854b2adff48d3f7f3e06dcb8c (diff)
parent819b50e1a7b506a0a394cc71a795f0a9ce4083c1 (diff)
Merge branch '201509-l1sap'
Diffstat (limited to 'tests')
-rw-r--r--tests/stubs.c2
-rw-r--r--tests/sysmobts/sysmobts_test.c25
2 files changed, 19 insertions, 8 deletions
diff --git a/tests/stubs.c b/tests/stubs.c
index 39604ab5..89ab8027 100644
--- a/tests/stubs.c
+++ b/tests/stubs.c
@@ -40,6 +40,8 @@ int bts_model_rsl_chan_mod(struct gsm_lchan *lchan)
{ return 0; }
void bts_model_rtp_rx_cb(struct osmo_rtp_socket *rs, const uint8_t *rtp_pl,
unsigned int rtp_pl_len) {}
+int bts_model_l1sap_down(struct gsm_bts_trx *trx, struct osmo_phsap_prim *l1sap)
+{ return 0; }
int l1if_pdch_req(struct gsm_bts_trx_ts *ts, int is_ptcch, uint32_t fn,
uint16_t arfcn, uint8_t block_nr, uint8_t *data, uint8_t len)
diff --git a/tests/sysmobts/sysmobts_test.c b/tests/sysmobts/sysmobts_test.c
index 7db12485..99fd4c7d 100644
--- a/tests/sysmobts/sysmobts_test.c
+++ b/tests/sysmobts/sysmobts_test.c
@@ -18,6 +18,8 @@
*/
#include <osmo-bts/bts.h>
+#include <osmo-bts/l1sap.h>
+#include <osmo-bts/power_control.h>
#include "femtobts.h"
#include "l1_if.h"
@@ -169,25 +171,30 @@ static void test_sysmobts_cipher(void)
/* Handle message sent before ciphering was received */
memcpy(&unit.u8Buffer[0], too_early_classmark, ARRAY_SIZE(too_early_classmark));
unit.u8Size = ARRAY_SIZE(too_early_classmark);
- bts_check_for_first_ciphrd(&fl1h, &unit, &lchan);
+ rc = bts_check_for_first_ciphrd(&lchan, unit.u8Buffer, unit.u8Size);
+ OSMO_ASSERT(rc == 0);
OSMO_ASSERT(lchan.ciph_state == LCHAN_CIPH_RX_CONF);
/* Now send the first ciphered message */
memcpy(&unit.u8Buffer[0], first_ciphered_cipher_cmpl, ARRAY_SIZE(first_ciphered_cipher_cmpl));
unit.u8Size = ARRAY_SIZE(first_ciphered_cipher_cmpl);
- bts_check_for_first_ciphrd(&fl1h, &unit, &lchan);
- OSMO_ASSERT(lchan.ciph_state == LCHAN_CIPH_TXRX_REQ);
+ rc = bts_check_for_first_ciphrd(&lchan, unit.u8Buffer, unit.u8Size);
+ OSMO_ASSERT(rc == 1);
+ /* we cannot test for lchan.ciph_state == * LCHAN_CIPH_RX_CONF_TX_REQ, as
+ * this happens asynchronously on the other side of the l1sap queue */
}
static void test_sysmobts_loop(void)
{
struct gsm_bts bts;
+ struct gsm_bts_role_bts btsb;
struct gsm_bts_trx trx;
struct gsm_bts_trx_ts ts;
struct gsm_lchan *lchan;
int ret;
memset(&bts, 0, sizeof(bts));
+ memset(&btsb, 0, sizeof(btsb));
memset(&trx, 0, sizeof(trx));
memset(&ts, 0, sizeof(ts));
@@ -195,8 +202,10 @@ static void test_sysmobts_loop(void)
lchan->ts = &ts;
ts.trx = &trx;
trx.bts = &bts;
+ bts.role = &btsb;
bts.band = GSM_BAND_1800;
trx.ms_power_control = 1;
+ btsb.ul_power_target = -75;
printf("Testing sysmobts power control\n");
@@ -204,7 +213,7 @@ static void test_sysmobts_loop(void)
lchan->state = LCHAN_S_NONE;
lchan->ms_power_ctrl.current = ms_pwr_ctl_lvl(GSM_BAND_1800, 0);
OSMO_ASSERT(lchan->ms_power_ctrl.current == 15);
- ret = l1if_ms_pwr_ctrl(lchan, -75, lchan->ms_power_ctrl.current, -60);
+ ret = lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, -60);
OSMO_ASSERT(ret == 0);
OSMO_ASSERT(lchan->ms_power_ctrl.current == 15);
@@ -213,24 +222,24 @@ static void test_sysmobts_loop(void)
* Now 15 dB too little and we should power it up. Could be a
* power level of 7 or 8 for 15 dBm
*/
- ret = l1if_ms_pwr_ctrl(lchan, -75, lchan->ms_power_ctrl.current, -90);
+ ret = lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, -90);
OSMO_ASSERT(ret == 1);
OSMO_ASSERT(lchan->ms_power_ctrl.current == 7);
/* It should be clamped to level 0 and 30 dBm */
- ret = l1if_ms_pwr_ctrl(lchan, -75, lchan->ms_power_ctrl.current, -100);
+ ret = lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, -100);
OSMO_ASSERT(ret == 1);
OSMO_ASSERT(lchan->ms_power_ctrl.current == 0);
/* Fix it and jump down */
lchan->ms_power_ctrl.fixed = 1;
- ret = l1if_ms_pwr_ctrl(lchan, -75, lchan->ms_power_ctrl.current, -60);
+ ret = lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, -60);
OSMO_ASSERT(ret == 0);
OSMO_ASSERT(lchan->ms_power_ctrl.current == 0);
/* And leave it again */
lchan->ms_power_ctrl.fixed = 0;
- ret = l1if_ms_pwr_ctrl(lchan, -75, lchan->ms_power_ctrl.current, -40);
+ ret = lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, -40);
OSMO_ASSERT(ret == 1);
OSMO_ASSERT(lchan->ms_power_ctrl.current == 15);
}