diff --git a/scripts/fix-test.py b/scripts/fix-test.py new file mode 100755 index 0000000..75f3167 --- /dev/null +++ b/scripts/fix-test.py @@ -0,0 +1,63 @@ +#!/usr/bin/python + +# Copyright (c) 2018 Google LLC +# All rights reserved. +# +# See the file COPYING in the top directory of this distribution for +# more information. +# +# THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +import sys +import re + +def process_file(path): + args = None + out = None + test = None + + lines = [] + + with open(path) as f: + for line in f.readlines(): + if line.startswith('#'): + lines.append(line) + continue + + m = re.match(r'../examples/(test[0-9]+) (.*) > tmp.out.*', line) + if m: + (test, args) = m.groups() + lines.append("./simple-test.sh `basename $0 .sh` %s %s\n" + % (test, args)) + continue + + m = re.match(r'../examples/(test[0-9]+) > tmp.out.*', line) + if m: + test = m.group(1) + args = "" + lines.append("./simple-test.sh `basename $0 .sh` %s\n" + % test) + + continue + + m = re.match(r'.*(test[0-9]+).out.*', line) + if m: + out = m.group(1) + + if not all([v != None for v in [out, test, args]]): + print "Failed to parse", path + print out, test, args + return + + with open(path, 'w') as f: + for line in lines: + f.write(line) + +for path in sys.argv[1:]: + process_file(path)