+++ /dev/null
-# REQUIRES: curl
-# RUN: rm -rf %t
-# RUN: mkdir %t
-# # Query the python server for artifacts
-# RUN: env DEBUGINFOD_CACHE_PATH=%t %python %s --server-path %S/Inputs \
-# RUN: --tool-cmd 'llvm-debuginfod-find --dump --executable abcdef' | \
-# RUN: FileCheck %s --check-prefix=EXECUTABLE
-# RUN: env DEBUGINFOD_CACHE_PATH=%t %python %s --server-path %S/Inputs \
-# RUN: --tool-cmd 'llvm-debuginfod-find --dump --source=/directory/file.c abcdef' | \
-# RUN: FileCheck %s --check-prefix=SOURCE
-# RUN: env DEBUGINFOD_CACHE_PATH=%t %python %s --server-path %S/Inputs \
-# RUN: --tool-cmd 'llvm-debuginfod-find --dump --debuginfo abcdef' | \
-# RUN: FileCheck %s --check-prefix=DEBUGINFO
-
-# EXECUTABLE: fake_executable
-# SOURCE: int foo = 0;
-# DEBUGINFO: fake_debuginfo
-
-# # The artifacts should still be present in the cache without needing to query
-# # the server.
-# RUN: env DEBUGINFOD_CACHE_PATH=%t llvm-debuginfod-find --dump --executable abcdef | \
-# RUN: FileCheck %s --check-prefix=EXECUTABLE
-# RUN: env DEBUGINFOD_CACHE_PATH=%t llvm-debuginfod-find --dump \
-# RUN: --source=/directory/file.c abcdef | \
-# RUN: FileCheck %s --check-prefix=SOURCE
-# RUN: env DEBUGINFOD_CACHE_PATH=%t llvm-debuginfod-find --dump --debuginfo abcdef | \
-# RUN: FileCheck %s --check-prefix=DEBUGINFO
-
-
-# This script is used to test the debuginfod client within a host tool.
-# It first stands up a Python HTTP static file server and then executes the tool.
-# This way the tool can make debuginfod HTTP requests to the static file server.
-import argparse
-import threading
-import http.server
-import functools
-import subprocess
-import sys
-import os
-
-
-# Serves files at the server_path, then runs the tool with specified args.
-# Sets the DEBUGINFOD_CACHE_PATH env var to point at the given cache_directory.
-# Sets the DEBUGINFOD_URLS env var to point at the local server.
-def test_tool(server_path, tool_args):
- httpd = http.server.ThreadingHTTPServer(
- ('',0), functools.partial(
- http.server.SimpleHTTPRequestHandler,
- directory=server_path))
- port = httpd.server_port
- thread = threading.Thread(target=httpd.serve_forever)
- try:
- thread.start()
- env = os.environ
- env['DEBUGINFOD_URLS'] = 'http://localhost:%s' % port
- process = subprocess.Popen(
- tool_args, env=env)
- code = process.wait()
- if code != 0:
- print('nontrivial return code %s' % code)
- return 1
- finally:
- httpd.shutdown()
- thread.join()
- return 0
-
-def main():
- parser = argparse.ArgumentParser()
- parser.add_argument('--server-path', default='./')
- parser.add_argument('--tool-cmd', required=True, type=str)
- args = parser.parse_args()
- result = test_tool(args.server_path,
- args.tool_cmd.split())
- sys.exit(result)
-
-if __name__ == '__main__':
- main()