aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax <msuraev@sysmocom.de>2017-10-11 16:37:44 +0200
committerHarald Welte <laforge@gnumonks.org>2017-10-23 18:13:13 +0000
commitfe291a97c23cbabe0be64ac40f104e10d3e13a1d (patch)
treec6d3ee1f1e7e798777c77b7996d86c01778b554e
parent36fa0bd0792fe544cd242b7fcee8180685f4c203 (diff)
Move power loop to generic tests
There's nothing sysmobts specific in this test so let's move it into separate directory and run unconditionally. The test itself is unaltered except for intro text. Change-Id: I0d1957cd9cf5497826be095c7a42b7bb4fa10397 Related: OS#2223
-rw-r--r--.gitignore1
-rw-r--r--configure.ac1
-rw-r--r--tests/Makefile.am2
-rw-r--r--tests/power/Makefile.am9
-rw-r--r--tests/power/power_test.c93
-rw-r--r--tests/power/power_test.ok2
-rw-r--r--tests/sysmobts/sysmobts_test.c62
-rw-r--r--tests/sysmobts/sysmobts_test.ok1
-rw-r--r--tests/testsuite.at6
9 files changed, 114 insertions, 63 deletions
diff --git a/.gitignore b/.gitignore
index a8c0ecee..2e8c8846 100644
--- a/.gitignore
+++ b/.gitignore
@@ -72,3 +72,4 @@ debian/*.substvars
debian/osmo-bts-trx-dbg/
debian/osmo-bts-trx/
debian/tmp/
+/tests/power/power_test
diff --git a/configure.ac b/configure.ac
index a41f7eca..bda30b51 100644
--- a/configure.ac
+++ b/configure.ac
@@ -178,5 +178,6 @@ AC_OUTPUT(
tests/misc/Makefile
tests/handover/Makefile
tests/tx_power/Makefile
+ tests/power/Makefile
tests/meas/Makefile
Makefile)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index d2b41819..18b8ce67 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = paging cipher agch misc handover tx_power meas
+SUBDIRS = paging cipher agch misc handover tx_power power meas
if ENABLE_SYSMOBTS
SUBDIRS += sysmobts
diff --git a/tests/power/Makefile.am b/tests/power/Makefile.am
new file mode 100644
index 00000000..3cb8d152
--- /dev/null
+++ b/tests/power/Makefile.am
@@ -0,0 +1,9 @@
+AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include
+AM_CFLAGS = -Wall $(LIBOSMOCORE_CFLAGS) $(LIBOSMOCODEC_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBOSMOVTY_CFLAGS) $(LIBOSMOTRAU_CFLAGS) $(ORTP_CFLAGS)
+LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOCODEC_LIBS) $(LIBOSMOGSM_LIBS) $(LIBOSMOVTY_LIBS) $(LIBOSMOTRAU_LIBS) $(ORTP_LIBS)
+
+noinst_PROGRAMS = power_test
+EXTRA_DIST = power_test.ok
+
+power_test_SOURCES = power_test.c $(srcdir)/../stubs.c
+power_test_LDADD = $(top_builddir)/src/common/libbts.a $(LIBOSMOABIS_LIBS) $(LDADD)
diff --git a/tests/power/power_test.c b/tests/power/power_test.c
new file mode 100644
index 00000000..c1d6a5a1
--- /dev/null
+++ b/tests/power/power_test.c
@@ -0,0 +1,93 @@
+/*
+ * (C) 2013,2014 by Holger Hans Peter Freyther
+ *
+ * All Rights Reserved
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <osmo-bts/bts.h>
+#include <osmo-bts/l1sap.h>
+#include <osmo-bts/power_control.h>
+
+#include <stdio.h>
+
+static void test_power_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));
+
+ lchan = &ts.lchan[0];
+ 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;
+
+ /* Simply clamping */
+ 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 = lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, -60);
+ OSMO_ASSERT(ret == 0);
+ OSMO_ASSERT(lchan->ms_power_ctrl.current == 15);
+
+
+ /*
+ * Now 15 dB too little and we should power it up. Could be a
+ * power level of 7 or 8 for 15 dBm
+ */
+ 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 = 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 = 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 = lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, -40);
+ OSMO_ASSERT(ret == 1);
+ OSMO_ASSERT(lchan->ms_power_ctrl.current == 15);
+}
+
+int main(int argc, char **argv)
+{
+ printf("Testing power loop...\n");
+
+ test_power_loop();
+
+ printf("Power loop test OK\n");
+
+ return 0;
+}
diff --git a/tests/power/power_test.ok b/tests/power/power_test.ok
new file mode 100644
index 00000000..6bf508b2
--- /dev/null
+++ b/tests/power/power_test.ok
@@ -0,0 +1,2 @@
+Testing power loop...
+Power loop test OK
diff --git a/tests/sysmobts/sysmobts_test.c b/tests/sysmobts/sysmobts_test.c
index 6ae76232..32d6e958 100644
--- a/tests/sysmobts/sysmobts_test.c
+++ b/tests/sysmobts/sysmobts_test.c
@@ -182,72 +182,12 @@ static void test_sysmobts_cipher(void)
* 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));
-
- lchan = &ts.lchan[0];
- 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");
-
- /* Simply clamping */
- 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 = lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, -60);
- OSMO_ASSERT(ret == 0);
- OSMO_ASSERT(lchan->ms_power_ctrl.current == 15);
-
-
- /*
- * Now 15 dB too little and we should power it up. Could be a
- * power level of 7 or 8 for 15 dBm
- */
- 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 = 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 = 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 = lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, -40);
- OSMO_ASSERT(ret == 1);
- OSMO_ASSERT(lchan->ms_power_ctrl.current == 15);
-}
-
int main(int argc, char **argv)
{
printf("Testing sysmobts routines\n");
test_sysmobts_auto_band();
test_sysmobts_cipher();
- test_sysmobts_loop();
+
return 0;
}
diff --git a/tests/sysmobts/sysmobts_test.ok b/tests/sysmobts/sysmobts_test.ok
index 07d79fd3..1f534172 100644
--- a/tests/sysmobts/sysmobts_test.ok
+++ b/tests/sysmobts/sysmobts_test.ok
@@ -17,4 +17,3 @@ Checking PCS to PCS
PCS to PCS band(1) arfcn(512) want(3) got(3)
PCS to PCS band(8) arfcn(128) want(0) got(0)
PCS to PCS band(2) arfcn(438) want(-1) got(-1)
-Testing sysmobts power control
diff --git a/tests/testsuite.at b/tests/testsuite.at
index 0efd3332..2d1cefd3 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -31,6 +31,12 @@ cat $abs_srcdir/handover/handover_test.ok > expout
AT_CHECK([$abs_top_builddir/tests/handover/handover_test], [], [expout], [ignore])
AT_CLEANUP
+AT_SETUP([power])
+AT_KEYWORDS([power])
+cat $abs_srcdir/power/power_test.ok > expout
+AT_CHECK([$abs_top_builddir/tests/power/power_test], [], [expout], [ignore])
+AT_CLEANUP
+
AT_SETUP([tx_power])
AT_KEYWORDS([tx_power])
cat $abs_srcdir/tx_power/tx_power_test.ok > expout