mirror of https://gerrit.osmocom.org/libosmocore
gsm: gsm_utils: Fix return type of API ms_class_gmsk_dbm() and add unit tests
Only known user of API is in osmocom-bb and it compiles fine after the change. Related: OS#4244 Change-Id: Ia10345008b3aca50b30482ef3b852b03eca71995
This commit is contained in:
parent
2272a03a37
commit
e40b9637ea
|
@ -115,8 +115,7 @@ int gsm_septet_encode(uint8_t *result, const char *data);
|
|||
uint8_t gsm_get_octet_len(const uint8_t sept_len);
|
||||
int gsm_7bit_decode_n_hdr(char *decoded, size_t n, const uint8_t *user_data, uint8_t length, uint8_t ud_hdr_ind);
|
||||
|
||||
unsigned int ms_class_gmsk_dbm(enum gsm_band band, int ms_class);
|
||||
|
||||
int ms_class_gmsk_dbm(enum gsm_band band, int ms_class);
|
||||
int ms_pwr_ctl_lvl(enum gsm_band band, unsigned int dbm);
|
||||
int ms_pwr_dbm(enum gsm_band band, uint8_t lvl);
|
||||
|
||||
|
|
|
@ -501,8 +501,8 @@ size_t gsm0858_rsl_ul_meas_enc(struct gsm_meas_rep_unidir *mru, bool dtxd_used,
|
|||
/*! Convert power class to dBm according to GSM TS 05.05
|
||||
* \param[in] band GSM frequency band
|
||||
* \param[in] class GSM power class
|
||||
* \returns maximum transmit power of power class in dBm */
|
||||
unsigned int ms_class_gmsk_dbm(enum gsm_band band, int class)
|
||||
* \returns maximum transmit power of power class in dBm, negative on error */
|
||||
int ms_class_gmsk_dbm(enum gsm_band band, int class)
|
||||
{
|
||||
switch (band) {
|
||||
case GSM_BAND_450:
|
||||
|
|
|
@ -1136,6 +1136,7 @@ static void test_si_range_helpers()
|
|||
static void test_power_ctrl()
|
||||
{
|
||||
int8_t rc8;
|
||||
int rc;
|
||||
|
||||
rc8 = osmo_gsm48_rfpowercap2powerclass(GSM_BAND_850, 0x00);
|
||||
VERIFY(rc8, ==, 1);
|
||||
|
@ -1153,6 +1154,25 @@ static void test_power_ctrl()
|
|||
VERIFY(rc8, <, 0);
|
||||
rc8 = osmo_gsm48_rfpowercap2powerclass(GSM_BAND_900, 0xf2);
|
||||
VERIFY(rc8, <, 0);
|
||||
|
||||
rc = ms_class_gmsk_dbm(GSM_BAND_850, 0);
|
||||
VERIFY(rc, <, 0);
|
||||
rc = ms_class_gmsk_dbm(GSM_BAND_850, 1);
|
||||
VERIFY(rc, ==, 43);
|
||||
rc = ms_class_gmsk_dbm(GSM_BAND_900, 3);
|
||||
VERIFY(rc, ==, 37);
|
||||
rc = ms_class_gmsk_dbm(GSM_BAND_1800, 2);
|
||||
VERIFY(rc, ==, 24);
|
||||
rc = ms_class_gmsk_dbm(GSM_BAND_1800, 3);
|
||||
VERIFY(rc, ==, 36);
|
||||
rc = ms_class_gmsk_dbm(GSM_BAND_1900, 3);
|
||||
VERIFY(rc, ==, 33);
|
||||
rc = ms_class_gmsk_dbm(GSM_BAND_1900, 4);
|
||||
VERIFY(rc, <, 0);
|
||||
rc = ms_class_gmsk_dbm(GSM_BAND_900, 5);
|
||||
VERIFY(rc, ==, 29);
|
||||
rc = ms_class_gmsk_dbm(GSM_BAND_900, 6);
|
||||
VERIFY(rc, <, 0);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
|
|
Loading…
Reference in New Issue