X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=buildscripts%2Foutput-distance.py;h=d52f99879cada1f7b33dccc2b11fc8dfecd103a6;hb=3edcb6ac1a9e7bdaa30e5886b6bdb99558bb839f;hp=a3c4df5cbaf9ca52ee255e0a386e4d0bf6bdd512;hpb=f0e8911e5a86748a9c70afcee42b6a3618dbef10;p=lilypond.git diff --git a/buildscripts/output-distance.py b/buildscripts/output-distance.py index a3c4df5cba..d52f99879c 100644 --- a/buildscripts/output-distance.py +++ b/buildscripts/output-distance.py @@ -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 ()) ################################################################ @@ -347,7 +347,10 @@ class FileLink: def text_record_string (self): return '%-30f %-20s\n' % (self.distance (), - self.name ()) + self.name () + + os.path.splitext (self.file_names[1])[1] + ) + def calc_distance (self): return 0.0 @@ -357,11 +360,18 @@ class FileLink: return self._distance + def source_file (self): + for ext in ('.ly', '.ly.txt'): + base = os.path.splitext (self.file_names[1])[0] + f = base + ext + if os.path.exists (f): + return f + + return '' def name (self): base = os.path.basename (self.file_names[1]) base = os.path.splitext (base)[0] - base = hash_to_original_name.get (base, base) base = os.path.splitext (base)[0] return base @@ -426,6 +436,7 @@ class FileCompareLink (FileLink): return 0.0 else: return 100.0; + def get_content (self, f): print 'reading', f @@ -433,6 +444,8 @@ class FileCompareLink (FileLink): return s + + class GitFileCompareLink (FileCompareLink): def get_cell (self, oldnew): str = self.contents[oldnew] @@ -451,6 +464,7 @@ class GitFileCompareLink (FileCompareLink): d = 1.0001 *options.threshold return d + class TextFileCompareLink (FileCompareLink): def calc_distance (self): @@ -509,7 +523,7 @@ class ProfileFileLink (FileCompareLink): dist = 0.0 factor = { - 'time': 1.0 , + 'time': 0.1, 'cells': 5.0, } @@ -563,12 +577,6 @@ class SignatureFileLink (FileLink): return d + orphan_distance - def source_file (self): - for ext in ('.ly', '.ly.txt'): - if os.path.exists (self.base_names[1] + ext): - return self.base_names[1] + ext - return '' - def add_file_compare (self, f1, f2): system_index = [] @@ -582,18 +590,6 @@ class SignatureFileLink (FileLink): self.base_names = (os.path.normpath (base1), os.path.normpath (base2)) - def note_original (match): - hash_to_original_name[os.path.basename (self.base_names[1])] = match.group (1) - return '' - - ## ugh: drop the .ly.txt - for ext in ('.ly', '.ly.txt'): - try: - re.sub (r'\\sourcefilename "([^"]+)"', - note_original, open (base1 + ext).read ()) - except IOError: - pass - s1 = read_signature_file (f1) s2 = read_signature_file (f2) @@ -611,12 +607,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) @@ -786,6 +787,23 @@ class ComparisonData: self.added = [] self.file_links = {} + def read_sources (self): + + ## ugh: drop the .ly.txt + for (key, val) in self.file_links.items (): + + def note_original (match, ln=val): + key = ln.name () + hash_to_original_name[key] = match.group (1) + return '' + + sf = val.source_file () + if sf: + re.sub (r'\\sourcefilename "([^"]+)"', + note_original, open (sf).read ()) + else: + print 'no source for', val + def compare_trees (self, dir1, dir2): self.compare_directories (dir1, dir2) @@ -801,7 +819,11 @@ class ComparisonData: self.compare_trees (d1, d2) def compare_directories (self, dir1, dir2): - for ext in ['signature', 'midi', 'log', 'profile', 'gittxt']: + for ext in ['signature', + 'midi', + 'log', + 'profile', + 'gittxt']: (paired, m1, m2) = paired_files (dir1, dir2, '*.' + ext) self.missing += [(dir1, m) for m in m1] @@ -943,6 +965,9 @@ class ComparisonData: def compare_trees (dir1, dir2, dest_dir, threshold): data = ComparisonData () data.compare_trees (dir1, dir2) + data.read_sources () + + data.print_results (threshold) if os.path.isdir (dest_dir): @@ -1085,7 +1110,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''' @@ -1199,6 +1224,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,