From c97a40e1d9ecb8cf7d2a72d99508ec0e8928b6a2 Mon Sep 17 00:00:00 2001 From: Jo Bovy Date: Tue, 17 Mar 2020 00:34:25 -0400 Subject: [PATCH] Only CTRL-C in sigint orbit tests when the long C integration has started --- tests/orbitint4sigint.py | 4 ++++ tests/test_orbit.py | 21 +++++++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/tests/orbitint4sigint.py b/tests/orbitint4sigint.py index a50e3a71e..a106b94c3 100644 --- a/tests/orbitint4sigint.py +++ b/tests/orbitint4sigint.py @@ -12,8 +12,12 @@ o= Orbit([1.,0.1,1.1,0.1,0.1,0.]) elif sys.argv[2] == 'planar': o= Orbit([1.,0.1,1.1,0.1]) + print("Starting long C integration ...") + sys.stdout.flush() o.integrate(ts,mp,method=sys.argv[1]) elif sys.argv[2] == 'planardxdv': o= Orbit([1.,0.1,1.1,0.1]) + print("Starting long C integration ...") + sys.stdout.flush() o.integrate_dxdv([0.1,0.1,0.1,0.1],ts,mp,method=sys.argv[1]) sys.exit(0) diff --git a/tests/test_orbit.py b/tests/test_orbit.py index 9e5dd294a..160f270c4 100644 --- a/tests/test_orbit.py +++ b/tests/test_orbit.py @@ -3900,9 +3900,12 @@ def test_orbit_c_sigint_full(): stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - time.sleep(8) + for line in iter(p.stdout.readline, b''): + if line.startswith(b"Starting long C integration ..."): + break + time.sleep(1) os.kill(p.pid,signal.SIGINT) - time.sleep(4) + time.sleep(1) cnt= 0 while p.poll() is None and cnt < ntries: # wait a little longer time.sleep(4) @@ -3935,9 +3938,12 @@ def test_orbit_c_sigint_planar(): stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - time.sleep(8) + for line in iter(p.stdout.readline, b''): + if line.startswith(b"Starting long C integration ..."): + break + time.sleep(1) os.kill(p.pid,signal.SIGINT) - time.sleep(4) + time.sleep(1) cnt= 0 while p.poll() is None and cnt < ntries: # wait a little longer time.sleep(4) @@ -3966,9 +3972,12 @@ def test_orbit_c_sigint_planardxdv(): stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - time.sleep(8) + for line in iter(p.stdout.readline, b''): + if line.startswith(b"Starting long C integration ..."): + break + time.sleep(1) os.kill(p.pid,signal.SIGINT) - time.sleep(4) + time.sleep(1) cnt= 0 while p.poll() is None and cnt < ntries: # wait a little longer time.sleep(4)