Mercurial > hg-stable
comparison tests/run-tests.py @ 13988:994ad067ac6e
run-tests: move interactive handling into runone
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Thu, 21 Apr 2011 18:19:45 -0500 |
parents | 55f4941f98c8 |
children | 55ba68a4dd28 |
comparison
equal
deleted
inserted
replaced
13987:e0f07847f8de | 13988:994ad067ac6e |
---|---|
644 skips.append((test, msg)) | 644 skips.append((test, msg)) |
645 else: | 645 else: |
646 print "\nSkipping %s: %s" % (testpath, msg) | 646 print "\nSkipping %s: %s" % (testpath, msg) |
647 return None | 647 return None |
648 | 648 |
649 def fail(msg): | 649 def fail(msg, ret): |
650 fails.append((test, msg)) | |
651 if not options.nodiff: | 650 if not options.nodiff: |
652 print "\nERROR: %s %s" % (testpath, msg) | 651 print "\nERROR: %s %s" % (testpath, msg) |
653 return None | 652 if not ret and options.interactive: |
653 print "Accept this change? [n] ", | |
654 answer = sys.stdin.readline().strip() | |
655 if answer.lower() in "y yes".split(): | |
656 if test.endswith(".t"): | |
657 rename(test + ".err", test) | |
658 else: | |
659 rename(test + ".err", test + ".out") | |
660 return | |
661 fails.append((test, msg)) | |
654 | 662 |
655 vlog("# Test", test) | 663 vlog("# Test", test) |
656 | 664 |
657 # create a fresh hgrc | 665 # create a fresh hgrc |
658 hgrc = open(HGRCPATH, 'w+') | 666 hgrc = open(HGRCPATH, 'w+') |
745 else: | 753 else: |
746 missing, failed = parsehghaveoutput(out) | 754 missing, failed = parsehghaveoutput(out) |
747 if not missing: | 755 if not missing: |
748 missing = ['irrelevant'] | 756 missing = ['irrelevant'] |
749 if failed: | 757 if failed: |
750 fail("hghave failed checking for %s" % failed[-1]) | 758 fail("hghave failed checking for %s" % failed[-1], ret) |
751 skipped = False | 759 skipped = False |
752 else: | 760 else: |
753 skip(missing[-1]) | 761 skip(missing[-1]) |
754 elif out != refout: | 762 elif out != refout: |
755 mark = '!' | 763 mark = '!' |
756 if ret == 'timeout': | 764 if ret == 'timeout': |
757 fail("timed out") | 765 fail("timed out", ret) |
758 elif ret: | 766 elif ret: |
759 fail("output changed and returned error code %d" % ret) | 767 fail("output changed and returned error code %d" % ret, ret) |
760 else: | 768 else: |
761 fail("output changed") | 769 fail("output changed", ret) |
762 if ret != 'timeout' and not options.nodiff: | 770 if ret != 'timeout' and not options.nodiff: |
763 if options.view: | 771 if options.view: |
764 os.system("%s %s %s" % (options.view, ref, err)) | 772 os.system("%s %s %s" % (options.view, ref, err)) |
765 else: | 773 else: |
766 showdiff(refout, out, ref, err) | 774 showdiff(refout, out, ref, err) |
767 ret = 1 | 775 ret = 1 |
768 elif ret: | 776 elif ret: |
769 mark = '!' | 777 mark = '!' |
770 fail("returned error code %d" % ret) | 778 fail("returned error code %d" % ret, ret) |
771 | 779 |
772 if not options.verbose: | 780 if not options.verbose: |
773 sys.stdout.write(mark) | 781 sys.stdout.write(mark) |
774 sys.stdout.flush() | 782 sys.stdout.flush() |
775 | 783 |
948 | 956 |
949 ret = runone(options, test, skips, fails) | 957 ret = runone(options, test, skips, fails) |
950 if ret is None: | 958 if ret is None: |
951 skipped += 1 | 959 skipped += 1 |
952 elif not ret: | 960 elif not ret: |
953 if options.interactive: | |
954 print "Accept this change? [n] ", | |
955 answer = sys.stdin.readline().strip() | |
956 if answer.lower() in "y yes".split(): | |
957 if test.endswith(".t"): | |
958 rename(test + ".err", test) | |
959 else: | |
960 rename(test + ".err", test + ".out") | |
961 tested += 1 | |
962 fails.pop() | |
963 continue | |
964 failed += 1 | 961 failed += 1 |
965 if options.first: | 962 if options.first: |
966 break | 963 break |
967 tested += 1 | 964 tested += 1 |
968 | 965 |