X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=buildscripts%2Foutput-distance.py;h=fed9aafcbe1b81a39e7f0f1b08e0f43eed4c8f7e;hb=5aba3336b881aacc84d35ac93064e93b33c3d873;hp=483fdb84b53cf32ef6411b8630b589b05f263557;hpb=a3765e1d290e5e49093e7ca7791bf3fe20be1726;p=lilypond.git diff --git a/buildscripts/output-distance.py b/buildscripts/output-distance.py index 483fdb84b5..fed9aafcbe 100644 --- a/buildscripts/output-distance.py +++ b/buildscripts/output-distance.py @@ -28,7 +28,7 @@ class TempDirectory: print 'dir is', self.dir def __del__ (self): print 'rm -rf %s' % self.dir - os.system ('rm -rf %s' % self.dir ) + os.system ('rm -rf %s' % self.dir) def __call__ (self): return self.dir @@ -91,7 +91,7 @@ def compare_png_images (old, new, dest_dir): system ("convert -depth 8 %(dir)s/diff.png -blur 0x3 -negate -channel alpha,blue -type TrueColorMatte -fx 'intensity' %(dir)s/matte.png" % locals ()) - system ("composite -quality 65 %(dir)s/matte.png %(new)s %(dest)s" % locals ()) + system ("composite -compose atop -quality 65 %(dir)s/matte.png %(new)s %(dest)s" % locals ()) ################################################################ @@ -436,7 +436,6 @@ class FileCompareLink (FileLink): return 0.0 else: return 100.0; - def get_content (self, f): print 'reading', f @@ -444,8 +443,6 @@ class FileCompareLink (FileLink): return s - - class GitFileCompareLink (FileCompareLink): def get_cell (self, oldnew): str = self.contents[oldnew] @@ -487,6 +484,11 @@ class TextFileCompareLink (FileCompareLink): str = '
%s
' % str return str +class LogFileCompareLink (TextFileCompareLink): + def get_content (self, f): + c = TextFileCompareLink.get_content (self, f) + c = re.sub ("\nProcessing `[^\n]+'\n", '', c) + return c class ProfileFileLink (FileCompareLink): def __init__ (self, f1, f2): @@ -523,7 +525,7 @@ class ProfileFileLink (FileCompareLink): dist = 0.0 factor = { - 'time': 1.0 , + 'time': 0.1, 'cells': 5.0, } @@ -577,8 +579,6 @@ class SignatureFileLink (FileLink): return d + orphan_distance - - def add_file_compare (self, f1, f2): system_index = [] @@ -609,12 +609,17 @@ class SignatureFileLink (FileLink): for f in glob.glob (pat): infile = f outfile = (dest_dir + '/' + f).replace ('.eps', '.png') - + data_option = '' + if options.local_data_dir: + data_option = ('-slilypond-datadir=%s/share/lilypond/current ' + % os.path.split(infile)[0]) + mkdir (os.path.split (outfile)[0]) cmd = ('gs -sDEVICE=png16m -dGraphicsAlphaBits=4 -dTextAlphaBits=4 ' + ' %(data_option)s ' ' -r101 ' ' -sOutputFile=%(outfile)s -dNOSAFER -dEPSCrop -q -dNOPAUSE ' - ' %(infile)s -c quit ' % locals ()) + ' %(infile)s -c quit ') % locals () files_created[oldnew].append (outfile) system (cmd) @@ -768,7 +773,7 @@ def paired_files (dir1, dir2, pattern): pairs = [] missing = [] - for f in files[0].keys (): + for f in files[0]: try: files[1].pop (f) pairs.append (f) @@ -842,7 +847,7 @@ class ComparisonData: ext = os.path.splitext (f1)[1] klasses = { '.midi': MidiFileLink, - '.log' : TextFileCompareLink, + '.log' : LogFileCompareLink, '.profile': ProfileFileLink, '.gittxt': GitFileCompareLink, } @@ -1107,7 +1112,7 @@ def test_basic_compare (): names = [d['name'] for d in dicts] - system ('lilypond -ddump-profile -dseparate-log-files -ddump-signatures --png -b eps ' + ' '.join (names)) + system ('lilypond -ddump-profile -dseparate-log-files -ddump-signatures --png -dbackend=eps ' + ' '.join (names)) multipage_str = r''' @@ -1126,7 +1131,6 @@ def test_basic_compare (): test_compare_signatures (names) def test_compare_signatures (names, timing=False): - import time times = 1 @@ -1221,6 +1225,13 @@ def main (): action="store_true", help="Create PNGs from EPSes") + + p.add_option ('--local-datadir', + dest="local_data_dir", + default=False, + action="store_true", + help='whether to use the share/lilypond/ directory in the test directory') + p.add_option ('-o', '--output-dir', dest="output_dir", default=None, @@ -1229,22 +1240,22 @@ def main (): help='where to put the test results [tree2/compare-tree1tree2]') global options - (options, a) = p.parse_args () + (options, args) = p.parse_args () if options.run_test: run_tests () sys.exit (0) - if len (a) != 2: + if len (args) != 2: p.print_usage() sys.exit (2) name = options.output_dir if not name: - name = a[0].replace ('/', '') - name = os.path.join (a[1], 'compare-' + shorten_string (name)) + name = args[0].replace ('/', '') + name = os.path.join (args[1], 'compare-' + shorten_string (name)) - compare_trees (a[0], a[1], name, options.threshold) + compare_trees (args[0], args[1], name, options.threshold) if __name__ == '__main__': main()