Source

sandbox/raymondh / test_diff / ctest.py

import itertools
import os
import pprint
import glob
import sys

verbose = False

def test(f1, f2, n):
    filt = " | egrep '^[*\-]+ .*[*\-]+$' > a.tmp"
    cmds = [
        "diff -C {n} {f1} {f2}" + filt,
        sys.executable + " ~/cpython/Tools/scripts/diff.py -l {n} -c {f1} {f2}" + filt,
    ]
    results = []
    for cmd in cmds:
        cmd = cmd.format(**locals())
        if verbose:
            print(cmd)
        os.system(cmd)
        with open('a.tmp') as f:
            result = f.read().replace('\n', '!').rstrip()
            results.append(result)
    print('{n}  {f1:14}  {f2:14}  {results!r}'.format(**locals()))
    assert results[0] == results[1]


filenames = glob.glob('*.txt')
for f1, f2 in itertools.product(filenames, repeat=2):
    for n in range(4):
        test(f1, f2, n)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.