mirror of
git://sourceware.org/git/libabigail.git
synced 2025-03-04 13:47:45 +00:00
Add a script to update the reference output of runtestreaddwarf
This script parses the output of runtestreaddwarf (that output is non-empty when the reference output *.abi files need updating, but when there is no ABI change error). As a result, the script emits a series of "cp <source-file> <destination-file>" command to issue, to update the reference output of the runtestreaddwarf test program. To use this script to update the reference output *.abi files for runtestreaddwarf, <build-dir>/tests/runtestreaddwarf > changed-output.txt python update-test-read-dwarf-output.py changed-output.txt > shell-update-commands.sh sh shell-update-commands.sh * tests/update-test-read-dwarf-output.py: New helper python program. Signed-off-by: Dodji Seketeli <dodji@redhat.com>
This commit is contained in:
parent
ed4b5d9396
commit
dc52d64609
67
tests/update-test-read-dwarf-output.py
Normal file
67
tests/update-test-read-dwarf-output.py
Normal file
@ -0,0 +1,67 @@
|
||||
#!/bin/python
|
||||
|
||||
# This program generates the copy commands you should use to update
|
||||
# the reference data for test <build-dir>/tests/runtestreaddwarf,
|
||||
# which source code is test-read-dwarf.cc. It takes in argument the
|
||||
# diff result emitted by <build-dir>/tests/runtestreaddwarf, and emits
|
||||
# on standard output a series of 'cp <src> <dest>' commands to execute
|
||||
# to update reference data of the test.
|
||||
|
||||
import fileinput
|
||||
import re
|
||||
import sys
|
||||
import getopt
|
||||
|
||||
|
||||
def display_usage():
|
||||
sys.stderr.write("usage: prog-name [options] <file-name|-->\n");
|
||||
sys.stderr.write(" options:\n");
|
||||
sys.stderr.write(" -h display this help\n");
|
||||
sys.stderr.write(" argument:\n");
|
||||
sys.stderr.write(" <file-name> the file to read from\n");
|
||||
sys.stderr.write(" if no argument, then reads from stdin\n");
|
||||
|
||||
sys.exit(2)
|
||||
|
||||
def main():
|
||||
input_file = None
|
||||
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], "hi", ["help"])
|
||||
except getopt.GetoptError as err:
|
||||
print str(err)
|
||||
display_usage()
|
||||
|
||||
for opt, arg in opts:
|
||||
if opt in ("-h", "--help"):
|
||||
display_usage()
|
||||
else:
|
||||
# unknown option.
|
||||
display_usage()
|
||||
|
||||
if input_file == None and len(args) and args[0] != None:
|
||||
input_file = open(args[0], 'r')
|
||||
elif input_file == None:
|
||||
input_file = sys.stdin
|
||||
|
||||
if input_file != None:
|
||||
process(input_file)
|
||||
else:
|
||||
display_usage()
|
||||
|
||||
|
||||
def process(input_file):
|
||||
source = ""
|
||||
dest = ""
|
||||
for line in input_file:
|
||||
m = re.match(r'^--- (.*?)\t', line)
|
||||
if m:
|
||||
dest = m.group(1)
|
||||
else:
|
||||
m = re.match(r'^\+\+\+ (.*?)\t', line)
|
||||
if m:
|
||||
source = m.group(1)
|
||||
sys.stdout.write("cp " + source + " " + dest + "\n");
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Reference in New Issue
Block a user