diff options
author | 2018-04-24 15:11:47 -0700 | |
---|---|---|
committer | 2018-04-24 16:24:43 -0700 | |
commit | 29fead7d492b3655ea876b1ddcbdf3719a91392d (patch) | |
tree | e5771648edbc91730c82c0940d1dbec734302956 /test/cpp/naming/utils/dns_resolver.py | |
parent | 2d894a8c3b6bd0a236f14c5630faced4caba0a55 (diff) |
Convert c-ares test runner from bash to python, so that it works on
windows
Diffstat (limited to 'test/cpp/naming/utils/dns_resolver.py')
-rwxr-xr-x | test/cpp/naming/utils/dns_resolver.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/test/cpp/naming/utils/dns_resolver.py b/test/cpp/naming/utils/dns_resolver.py index 6b272444e7..f0d2f7fe93 100755 --- a/test/cpp/naming/utils/dns_resolver.py +++ b/test/cpp/naming/utils/dns_resolver.py @@ -16,9 +16,16 @@ """Makes DNS queries for A records to specified servers""" import argparse -import signal +import threading +import time import twisted.internet.task as task import twisted.names.client as client +import twisted.internet.reactor as reactor + +def exit_after_timeout(timeout): + time.sleep(timeout) + print('Time limit reached. Forcing exit') + reactor.stop() def main(): argp = argparse.ArgumentParser(description='Make DNS queries for A records') @@ -31,7 +38,6 @@ def main(): argp.add_argument('-t', '--timeout', default=1, type=int, help=('Force process exit after this number of seconds.')) args = argp.parse_args() - signal.alarm(args.timeout) def OnResolverResultAvailable(result): answers, authority, additional = result for a in answers: @@ -42,6 +48,10 @@ def main(): deferred_result = resolver.lookupAddress(args.qname) deferred_result.addCallback(OnResolverResultAvailable) return deferred_result + # We can't use sigalarm on windows, so start a thread. + timeout_thread = threading.Thread(target=exit_after_timeout, args=[args.timeout]) + timeout_thread.setDaemon(True) + timeout_thread.start() task.react(BeginQuery, [args.qname]) if __name__ == '__main__': |