| #!/usr/bin/env python |
| # update-dependencies-bad.py - Fails on bad.swift -*- python -*- |
| # |
| # This source file is part of the Swift.org open source project |
| # |
| # Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors |
| # Licensed under Apache License v2.0 with Runtime Library Exception |
| # |
| # See https://swift.org/LICENSE.txt for license information |
| # See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors |
| # |
| # ---------------------------------------------------------------------------- |
| # |
| # Fails if the input file is named "bad.swift" or "crash.swift"; otherwise |
| # dispatches to update-dependencies.py. "crash.swift" results in an |
| # exit-by-SIGKILL |
| # |
| # ---------------------------------------------------------------------------- |
| |
| from __future__ import print_function |
| |
| import os |
| import shutil |
| import signal |
| import sys |
| |
| assert sys.argv[1] == '-frontend' |
| |
| primaryFile = sys.argv[sys.argv.index('-primary-file') + 1] |
| |
| if (os.path.basename(primaryFile) == 'bad.swift' or |
| os.path.basename(primaryFile) == 'crash.swift'): |
| print("Handled", os.path.basename(primaryFile)) |
| |
| # Replace the dependencies file with the input file. |
| try: |
| depsFile = sys.argv[sys.argv.index( |
| '-emit-reference-dependencies-path') + 1] |
| shutil.copyfile(primaryFile, depsFile) |
| except ValueError: |
| pass |
| |
| if os.path.basename(primaryFile) == 'bad.swift': |
| sys.exit(1) |
| else: |
| sys.stdout.flush() |
| os.kill(os.getpid(), signal.SIGKILL) |
| |
| execDir = os.path.dirname(os.path.abspath(__file__)) |
| exec(open(os.path.join(execDir, "update-dependencies.py")).read()) |