def make_compare_entry(ifile, device, dpi, band): ofile = "%s.%s.%d.%d" % (ifile, device, dpi, band) print "creating entry: " + ofile + "...", sys.stdout.flush() gs = gstestgs.Ghostscript() gs.log_stdout = gsconf.log_stdout gs.log_stderr = gsconf.log_stderr gs.command = gsconf.baselinegs gs.infile = gsconf.comparefiledir + ifile gs.outfile = ofile gs.device = device gs.dpi = dpi gs.band = band if not gssum.exists(ofile): if gs.process(): try: gssum.add_file(ofile) rasterdb.put_file(ofile) os.unlink(ofile) print "done." except OSError: print "no output produced." else: print "error." else: print "exists."
def make_entry(testfile, device, dpi, band, revision, options): testfilepath = gsconf.comparefileall + testfile if not os.path.exists(testfilepath): print options.myself, "cannot find", "\"" + testfilepath + "\"" outputfile = "%s.%s.%d.%d" % (testfile, device, dpi, band) print "update_baseline.py: " + outputfile sys.stdout.flush() gs = gstestgs.Ghostscript() gs.gsroot = gsconf.installtree gs.command = gsconf.installtree + "bin/gs" if not os.path.exists(gs.command): print options.myself, "gs executable does not exist", gs.command return if gsconf.gs_stdout and gsconf.gs_stderr: gs.log_stdout = gsconf.logdir + gsconf.gs_stdout gs.log_stderr = gsconf.logdir + gsconf.gs_stderr gs.infile = testfilepath gs.outfile = outputfile gs.device = device gs.dpi = dpi gs.band = band if gs.process(): update_databases(outputfile, device, dpi, band, revision=revision, options=options) else: print options.myself, "error from gs.process", testfilepath, device, dpi, band
def runTest(self): if hasattr(self, "skip") and self.skip == 1: self.assert_(True) return outputfile = "%s.%s.%d.%d" % (self.file[string.rindex(self.file, '/') + 1:], self.device, self.dpi, self.band) gs = gstestgs.Ghostscript() gs.gsroot = self.gsroot gs.device = self.device gs.dpi = self.dpi gs.band = self.band gs.infile = self.file gs.outfile = outputfile if self.log_stdout: gs.log_stdout = self.log_stdout if self.log_stderr: gs.log_stderr = self.log_stderr if gs.process(): sum = gssum.make_sum(outputfile) else: sum = '' if os.path.exists(outputfile): shutil.move(outputfile, gsconf.datadir + "/raster.daily") # os.unlink(outputfile) if sum and self.track_daily: # add test result to daily database if gsconf.__dict__.has_key("checksumdb") and gsconf.checksumdb: dbname = gsconf.dailydir + gsconf.checksumdb # mhw +".db" else: dbname = gsconf.get_dailydb_name() gssum.add_file(outputfile, dbname=dbname, sum=sum) if not sum: message = myself + " output file " + outputfile + " was not created for input file: " + self.file self.fail(message) else: if gssum.exists(outputfile, gsconf.baselinedb): sum_baseline = gssum.get_sum(outputfile, gsconf.baselinedb) message = myself + ' checksum did not match baseline (' + outputfile + ') for input file: ' + self.file self.assertEqual(sum, sum_baseline, message) else: message = myself + " no baseline checksum (" + outputfile + ") for file: " + self.file self.fail(message)
def runTest(self): file1 = '%s.%s.%d.%d' % (self.file, self.device, self.dpi, self.band) file2 = '%s.%s.%d.%d.pdf' % (self.file, 'pdfwrite', self.dpi, self.band) file3 = '%s.pdfwrite.%s.%d.%d' % (self.file, self.device, self.dpi, self.band) gs = gstestgs.Ghostscript() gs.command = self.gs gs.dpi = self.dpi gs.band = self.band gs.infile = self.file gs.device = self.device if self.log_stdout: gs.log_stdout = self.log_stdout if self.log_stderr: gs.log_stderr = self.log_stderr # do PostScript->device (pbmraw, pgmraw, ppmraw, pkmraw) gs.outfile = file1 if not gs.process(): self.fail("non-zero exit code trying to rasterize " + self.file) # do PostScript->pdfwrite gs.device = 'pdfwrite' gs.dpi = None gs.outfile = file2 if not gs.process(): self.fail("non-zero exit code trying to distill " + self.file) # do PDF->device (pbmraw, pgmraw, ppmraw, pkmraw) gs.device = self.device gs.dpi = self.dpi gs.infile = file2 gs.outfile = file3 if not gs.process(): self.fail("non-zero exit code trying to rasterize " + file2) # fuzzy compare PostScript->device with PostScript->PDF->device ret = fuzzy_compare(file1, file3) os.unlink(file1) os.unlink(file2) os.unlink(file3) self.assert_(ret, "fuzzy match failed")
def make_pdfcompare_entry(dbname, ifile, device, dpi, band): ofile = "%s.pdf.%s.%d.%d" % (ifile, device, dpi, band) print "creating entry: " + ofile + "...", sys.stdout.flush() if gssum.exists(ofile, dbname): print "exists." return gs = gstestgs.Ghostscript() gs.gsroot = gsconf.gsroot gs.log_stdout = gsconf.gs_stdout gs.log_stderr = gsconf.gs_stderr gs.command = gsconf.headinstallpath gs.infile = gsconf.comparefiledir + ifile gs.dpi = dpi gs.band = band # make file->PDF tfile = ofile + ".pdf" gs.outfile = tfile gs.device = 'pdfwrite' gs.dpi = None if not gs.process(): print "error." return gs.infile = tfile gs.outfile = ofile gs.device = device gs.dpi = dpi if gs.process(): try: gssum.add_file(ofile, dbname) rasterdb.put_file(ofile) os.unlink(tfile) os.unlink(ofile) print "done." except OSError: print "no output produced." else: print "error."
def runTest(self): if hasattr(self, "skip") and self.skip: self.assert_(True) return file1 = '%s.%s.%d.%d.pdf' % (self.file[string.rindex(self.file, '/') + 1:], 'pdf', self.dpi, self.band) file2 = '%s.pdf.%s.%d.%d' % (self.file[string.rindex(self.file, '/') + 1:], self.device, self.dpi, self.band) gs = gstestgs.Ghostscript() gs.gsroot = self.gsroot gs.dpi = self.dpi gs.band = self.band gs.infile = self.file if self.log_stdout: gs.log_stdout = self.log_stdout if self.log_stderr: gs.log_stderr = self.log_stderr # do file->PDF conversion gs.device = 'pdfwrite' gs.dpi = None gs.outfile = file1 if not gs.process(): self.fail("non-zero exit code trying to create pdf file from " + self.file) # do PDF->device (pbmraw, pgmraw, ppmraw, pkmraw) gs.device = self.device gs.dpi = self.dpi gs.infile = file1 gs.outfile = file2 if not gs.process(): self.fail("non-zero exit code trying to rasterize " + file1) if os.path.exists(file1): shutil.move(file1, gsconf.datadir+"/raster.daily") # os.unlink(file1) else: self.fail("output file "+file1+" was not created for input file: " + file1) if os.path.exists(file2): sum = gssum.make_sum(file2) if not sum: self.fail("no checksum for output file "+file2+" was not created for input file: " + self.file) shutil.move(file2, gsconf.datadir+"/raster.daily") # os.unlink(file2) else: self.fail("output file "+file2+" was not created for input file: " + file2) # add test result to daily database if self.track_daily: if gsconf.__dict__.has_key("checksumdb") and gsconf.checksumdb: dbname=gsconf.dailydir+gsconf.checksumdb # mhw+".db" else: dbname=gsconf.get_dailydb_name() gssum.add_file(file2, dbname=dbname, sum=sum) else: outputfile=file2 if gssum.exists(outputfile,gsconf.baselinedb): sum_baseline=gssum.get_sum(outputfile,gsconf.baselinedb) message=myself+' checksum did not match baseline (' + outputfile + ') for input file: ' + self.file self.assertEqual(sum,sum_baseline,message) else: message = myself+" no baseline checksum (" + outputfile + ") for file: " + self.file self.fail(message)