Holger Freyther has submitted this change and it was merged. ( 
https://gerrit.osmocom.org/9713 )

Change subject: ms: Make the outer variables configurable
......................................................................

ms: Make the outer variables configurable

Do the easy part for making these variables configurable.

Change-Id: If8bbedcf672f6481a12c30d3669564704063626c
---
M src/osmo_ms_driver/__main__.py
M src/osmo_ms_driver/cdf.py
2 files changed, 31 insertions(+), 9 deletions(-)

Approvals:
  Harald Welte: Looks good to me, but someone else must approve
  Pau Espin Pedrol: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/src/osmo_ms_driver/__main__.py b/src/osmo_ms_driver/__main__.py
index 0e35280..7bca1d1 100644
--- a/src/osmo_ms_driver/__main__.py
+++ b/src/osmo_ms_driver/__main__.py
@@ -19,50 +19,65 @@
 from .event_server import EventServer
 from .simple_loop import SimpleLoop
 from .location_update_test import MassUpdateLocationTest
-from .cdf import ease_in_out_duration, linear_with_duration
+from .cdf import ease_in_out_duration, linear_with_duration, cdfs
 from osmo_gsm_tester import log

 # System modules
+import argparse
 import datetime
 import subprocess
 import signal
 import tempfile
 import os.path
+import os

+def parser():
+    parser = argparse.ArgumentParser(epilog=__doc__, 
formatter_class=argparse.RawTextHelpFormatter)
+    parser.add_argument('-s', '--launch-duration', dest='launch_duration',
+            default=60, type=int,
+            help="Time launching applications should take in seconds")
+    parser.add_argument('-i', '--launch-interval', dest='launch_interval',
+            default=100, type=int,
+            help="Time between launching in milliseconds")
+    parser.add_argument('-d', '--distribution', dest="cdf_name",
+            choices=cdfs.keys(), default="ease_in_out",
+            help="Curve to use for starting within launch duration")
+    parser.add_argument('-m', '--number-ms', dest="num_ms",
+            default=10, type=int,
+            help="Number of MobileStations to simulate")
+    return parser

 def main():
     # Create a default log to stdout
     log.LogTarget().style(src=False)

+    args = parser().parse_args()
+
     # We don't care what is happening to child processes we spawn!
     signal.signal(signal.SIGCHLD, signal.SIG_IGN)

     loop = SimpleLoop()

-    # TODO: Parse parameters and test composition. Right now we test
-    # with a single set of values.
-    num_ms = 10
-
     tmp_dir = tempfile.mkdtemp(suffix="osmo-ms-driver")
     log.log("Going to store files in ", tmp_dir=tmp_dir)

     # How long should starting all apps take
-    time_start=datetime.timedelta(seconds=60)
+    time_start=datetime.timedelta(seconds=args.launch_duration)
     # In which steps to start processes
-    time_step=datetime.timedelta(milliseconds=100)
+    time_step=datetime.timedelta(milliseconds=args.launch_interval)

     # Event server path
     event_server_path = os.path.join(tmp_dir,  "osmo_ms_driver.unix")

     # The function that decides when to start something
-    cdf = ease_in_out_duration(time_start, time_step)
+    cdf = cdfs[args.cdf_name](time_start, time_step)

     # Event server to handle MS->test events
     ev_server = EventServer("ev_server", event_server_path)
     ev_server.listen(loop)

     # Just a single test for now.
-    test = MassUpdateLocationTest("lu_test", num_ms, cdf, ev_server, tmp_dir)
+    test = MassUpdateLocationTest("lu_test", args.num_ms, cdf, ev_server, 
tmp_dir)

     # Run until everything has been launched
     test.launch(loop)
diff --git a/src/osmo_ms_driver/cdf.py b/src/osmo_ms_driver/cdf.py
index 781349b..e163cc3 100644
--- a/src/osmo_ms_driver/cdf.py
+++ b/src/osmo_ms_driver/cdf.py
@@ -103,3 +103,10 @@
     scale = 1.0/duration.total_seconds()
     return DistributionFunctionHandler(step_size, duration,
                                         lambda x: _in_out(x*scale))
+
+
+cdfs = {
+    'immediate': lambda x,y: immediate(y),
+    'linear': linear_with_duration,
+    'ease_in_out': ease_in_out_duration,
+}

--
To view, visit https://gerrit.osmocom.org/9713
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-gsm-tester
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: If8bbedcf672f6481a12c30d3669564704063626c
Gerrit-Change-Number: 9713
Gerrit-PatchSet: 3
Gerrit-Owner: Holger Freyther <hol...@freyther.de>
Gerrit-Reviewer: Harald Welte <lafo...@gnumonks.org>
Gerrit-Reviewer: Holger Freyther <hol...@freyther.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Pau Espin Pedrol <pes...@sysmocom.de>

Reply via email to