Start libc++ python cleanup and consolidation.
Libc++ frequently creates and uses utilities written in python. Currently there are python modules under both libcxx/test and libcxx/util. My goal with these changes is to consolidate them into a single package under libcxx/utils/libcxx. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@294644 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
44
utils/not.py
Normal file
44
utils/not.py
Normal file
@@ -0,0 +1,44 @@
|
||||
#===----------------------------------------------------------------------===##
|
||||
#
|
||||
# The LLVM Compiler Infrastructure
|
||||
#
|
||||
# This file is dual licensed under the MIT and the University of Illinois Open
|
||||
# Source Licenses. See LICENSE.TXT for details.
|
||||
#
|
||||
#===----------------------------------------------------------------------===##
|
||||
|
||||
"""not.py is a utility for inverting the return code of commands.
|
||||
It acts similar to llvm/utils/not.
|
||||
ex: python /path/to/not.py ' echo hello
|
||||
echo $? // (prints 1)
|
||||
"""
|
||||
|
||||
import distutils.spawn
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
|
||||
def main():
|
||||
argv = list(sys.argv)
|
||||
del argv[0]
|
||||
if len(argv) > 0 and argv[0] == '--crash':
|
||||
del argv[0]
|
||||
expectCrash = True
|
||||
else:
|
||||
expectCrash = False
|
||||
if len(argv) == 0:
|
||||
return 1
|
||||
prog = distutils.spawn.find_executable(argv[0])
|
||||
if prog is None:
|
||||
sys.stderr.write('Failed to find program %s' % argv[0])
|
||||
return 1
|
||||
rc = subprocess.call(argv)
|
||||
if rc < 0:
|
||||
return 0 if expectCrash else 1
|
||||
if expectCrash:
|
||||
return 1
|
||||
return rc == 0
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
exit(main())
|
||||
Reference in New Issue
Block a user