aboutsummaryrefslogtreecommitdiff
path: root/ca
diff options
context:
space:
mode:
Diffstat (limited to 'ca')
-rwxr-xr-xca/tests/test-rrdp.py16
-rw-r--r--ca/tests/yamltest.py6
2 files changed, 20 insertions, 2 deletions
diff --git a/ca/tests/test-rrdp.py b/ca/tests/test-rrdp.py
index 98918bad..db626a35 100755
--- a/ca/tests/test-rrdp.py
+++ b/ca/tests/test-rrdp.py
@@ -23,6 +23,7 @@ import os
import sys
import glob
import time
+import signal
import textwrap
import argparse
import subprocess
@@ -30,7 +31,7 @@ import subprocess
parser = argparse.ArgumentParser(description = __doc__)
parser.add_argument("--use-smoketest", action = "store_true")
parser.add_argument("--yaml-file", default = "smoketest.2.yaml")
-parser.add_argument("--delay", type = int, default = 300)
+parser.add_argument("--delay", type = int, default = 30)
parser.add_argument("--exhaustive", action = "store_true")
parser.add_argument("--skip-daemons", action = "store_true")
args = parser.parse_args()
@@ -80,9 +81,20 @@ elif args.use_smoketest:
run("python", "smoketest.py", args.yaml_file)
else:
run("python", "sql-cleaner.py")
- argv = ("python", "yamltest.py", args.yaml_file)
+ class GotSIGUSR1(Exception):
+ pass
+ def handle_sigusr1(signum, frame):
+ raise GotSIGUSR1
+ old_sigusr1 = signal.signal(signal.SIGUSR1, handle_sigusr1)
+ argv = ("python", "yamltest.py", args.yaml_file, "--notify-when-startup-complete", str(os.getpid()))
log("Running: " + " ".join(argv))
yamltest = subprocess.Popen(argv)
+ log("Waiting for SIGUSR1 from yamltest")
+ try:
+ while True:
+ signal.pause()
+ except GotSIGUSR1:
+ signal.signal(signal.SIGUSR1, old_sigusr1)
log("Sleeping %s" % args.delay)
time.sleep(args.delay)
yamltest.terminate()
diff --git a/ca/tests/yamltest.py b/ca/tests/yamltest.py
index 84355e59..6d1b0cf4 100644
--- a/ca/tests/yamltest.py
+++ b/ca/tests/yamltest.py
@@ -723,6 +723,8 @@ parser.add_argument("-g", "--run_gui", action = "store_true",
help = "enable GUI using django-admin runserver")
parser.add_argument("--browser", action = "store_true",
help = "create web browser tabs for GUI")
+parser.add_argument("--notify-when-startup-complete", type = int,
+ help = "send SIGUSR1 to this process when startup is complete")
parser.add_argument("yaml_file", type = argparse.FileType("r"),
help = "YAML description of test network")
args = parser.parse_args()
@@ -915,6 +917,10 @@ try:
# Wait until something terminates.
if not args.stop_after_config or args.keep_going:
+ if args.notify_when_startup_complete:
+ print
+ print "Sending SIGUSR1 to process", args.notify_when_startup_complete
+ os.kill(args.notify_when_startup_complete, signal.SIGUSR1)
print
print "Waiting for daemons to exit"
signal.signal(signal.SIGCHLD, lambda *dont_care: None)