Add Python agent support
[lttng-tools.git] / tests / regression / ust / python-logging / LTTngTest.py
diff --git a/tests/regression/ust/python-logging/LTTngTest.py b/tests/regression/ust/python-logging/LTTngTest.py
new file mode 100644 (file)
index 0000000..a3ed8f9
--- /dev/null
@@ -0,0 +1,76 @@
+#!/usr/bin/env python
+#
+# Copyright (C) 2014 - David Goulet <dgoulet@efficios.com>
+#
+# This library is free software; you can redistribute it and/or modify it under
+# the terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; version 2.1 of the License.
+#
+# This library 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 Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this library; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+
+import sys
+import logging
+import errno
+
+from time import sleep
+
+def cleanup(code, agent = None):
+    """
+    Cleanup agent and exit with given code.
+    """
+    if agent is not None:
+        agent.destroy()
+
+    sys.exit(code)
+
+try:
+    import lttng_agent
+except ImportError as e:
+    print("LTTng Agent not found. Aborting")
+    cleanup(errno.ENOSYS)
+
+def run():
+    """
+    Main for this test program. Based on the Java testing program that behaves
+    exactly the same.
+    """
+
+    agent = lttng_agent.LTTngAgent()
+    ev1 = logging.getLogger("python-ev-test1");
+    ev2 = logging.getLogger("python-ev-test2");
+
+    try:
+        nr_iter = int(sys.argv[1])
+        wait_time = int(sys.argv[2])
+        fire_debug_ev = 0
+        fire_second_ev = 0
+    except IndexError as e:
+        print("Missing arguments. Aborting")
+        cleanup(errno.EINVAL, agent)
+    except ValueError as e:
+        print("Invalid arguments. Aborting")
+        cleanup(errno.EINVAL, agent)
+
+    if len(sys.argv) > 3:
+        fire_debug_ev = int(sys.argv[3])
+    if len(sys.argv) > 4:
+        fire_second_ev = int(sys.argv[4])
+
+    for i in range(0, nr_iter):
+        ev1.info("%s fired" % ev1.name)
+        if fire_debug_ev != 0:
+            ev1.debug("%s DEBUG fired" % ev1.name)
+        sleep(wait_time)
+
+    if fire_second_ev != 0:
+        ev2.info("%s fired" % ev2.name)
+
+if __name__ == "__main__":
+    run()
This page took 0.023405 seconds and 4 git commands to generate.