Show
Ignore:
Timestamp:
10/06/08 00:22:07 (16 years ago)
Author:
jerome
Message:

Removed spaces at EOL.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pkpgcounter/trunk/tests/gstests.py

    r564 r3436  
    11#! /usr/bin/env python 
    2 # -*- coding: UTF-8 -*- 
     2# -*- coding: utf-8 -*- 
    33# 
    44# pkpgcounter : a generic Page Description Language parser 
     
    99# the Free Software Foundation, either version 3 of the License, or 
    1010# (at your option) any later version. 
    11 #  
     11# 
    1212# This program is distributed in the hope that it will be useful, 
    1313# but WITHOUT ANY WARRANTY; without even the implied warranty of 
    1414# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1515# GNU General Public License for more details. 
    16 #  
     16# 
    1717# You should have received a copy of the GNU General Public License 
    1818# along with this program.  If not, see <http://www.gnu.org/licenses/>. 
     
    4343        self.md5sum = self.computeChecksum() 
    4444        self.mastersize = None 
    45          
    46     def __del__(self) :     
     45 
     46    def __del__(self) : 
    4747        """Remove temporary file, if any.""" 
    4848        if self.tmp is not None : 
    4949            self.tmp.close() 
    50              
    51     def computeChecksum(self) :     
     50 
     51    def computeChecksum(self) : 
    5252        """Computes an MD5 checksum for the input file's content.""" 
    5353        checksum = md5.new() 
     
    6060            infile = sys.stdin 
    6161            istemp = True 
    62         else :     
     62        else : 
    6363            infile = open(self.inputfile, "rb") 
    64              
     64 
    6565        while True : 
    6666            data = infile.read(MEGABYTE) 
    6767            if not data : 
    6868                break 
    69             if istemp :     
     69            if istemp : 
    7070                self.tmp.write(data) 
    7171            checksum.update(data) 
    72              
    73         if istemp :     
    74             self.tmp.flush()     
     72 
     73        if istemp : 
     74            self.tmp.flush() 
    7575        else : 
    7676            infile.close() 
    77              
    78         return checksum.hexdigest()     
    79          
     77 
     78        return checksum.hexdigest() 
     79 
    8080    def getAvailableDevices(self) : 
    8181        """Returns a list of available GhostScript devices. 
    82          
     82 
    8383           The list is returned without any x11, bbox, nor ijs related device. 
    8484        """ 
     
    9393                                           and (not dev == "/nullpage") \ 
    9494                                           and (not dev == "/bbox") ] 
    95                 devices.sort()                            
     95                devices.sort() 
    9696                return devices 
    9797        return [] 
    98              
     98 
    9999    def getAvailableIJSPrintClasses(self) : 
    100100        """Returns a list of available IJS Print Classes. 
    101          
     101 
    102102           Currently the list is a static one and doesn't contain all the available print classes. 
    103103        """ 
    104         return [ "DJ3600", "DJ3320", "DJ9xx", "DJGenericVIP", "LJColor",  
     104        return [ "DJ3600", "DJ3320", "DJ9xx", "DJGenericVIP", "LJColor", 
    105105                 "DJ850", "DJ890", "DJ9xxVIP", "DJ8xx", "DJ540", "DJ660", 
    106106                 "DJ6xx", "DJ350", "DJ6xxPhoto", "DJ630", "DJ8x5", "DJ4100", 
     
    108108                 "Postscript", "LJJetReady", "LJMono", "LJFastRaster", 
    109109                 "LJZjsMono", ] 
    110              
     110 
    111111    def batchGeneration(self, infilename, devices, root, command) : 
    112112        """Loops over a set of devices calling a particular command.""" 
     
    121121            if os.path.exists(outfilename) and os.stat(outfilename).st_size : 
    122122                sys.stdout.write("Skipping %(outfilename)s : already exists.\n" % locals()) 
    123             else :     
     123            else : 
    124124                sys.stdout.write("Generating %(outfilename)s " % locals()) 
    125125                sys.stdout.flush() 
    126126                os.system(cmd) 
    127127                sys.stdout.write("\n") 
    128                  
     128 
    129129            if not os.path.exists(outfilename) : 
    130130                sys.stderr.write("ERROR : During the generation of %(outfilename)s\n" % locals()) 
    131             elif not os.stat(outfilename).st_size :     
     131            elif not os.stat(outfilename).st_size : 
    132132                sys.stderr.write("ERROR : Unsupported driver, impossible to generate %(outfilename)s\n" % locals()) 
    133133                os.remove(outfilename) 
    134             else :     
     134            else : 
    135135                self.results[outfilename] = { "command" : cmd, 
    136136                                              "device" : "%s" % (devprefix + device), 
     
    138138                                              "details" : None, 
    139139                                            } 
    140                  
     140 
    141141    def genTestSuite(self) : 
    142142        """Generate the testsuite.""" 
    143143        root = "testsuite.%s" % self.md5sum 
    144         self.batchGeneration(self.inputfile, self.getAvailableDevices(),  
    145                                         root,  
     144        self.batchGeneration(self.inputfile, self.getAvailableDevices(), 
     145                                        root, 
    146146                                        'gs -dQUIET -dBATCH -dNOPAUSE -dPARANOIDSAFER -sOutputFile="%(outfilename)s" -sDEVICE="%(device)s" "%(infilename)s"') 
    147                                      
    148         self.batchGeneration(self.inputfile, self.getAvailableIJSPrintClasses(),  
    149                                         "%(root)s.hpijs" % locals(),  
     147 
     148        self.batchGeneration(self.inputfile, self.getAvailableIJSPrintClasses(), 
     149                                        "%(root)s.hpijs" % locals(), 
    150150                                        'gs -dBATCH -dQUIET -dPARANOIDSAFER -dNOPAUSE -sDEVICE=ijs -sIjsServer=hpijs -dIjsUseOutputFD -sDeviceManufacturer="HEWLETT-PACKARD" -sDeviceModel="%(device)s" -sOutputFile="%(outfilename)s" "%(infilename)s"') 
    151                  
    152     def runPipe(self, cmd) :             
     151 
     152    def runPipe(self, cmd) : 
    153153        """Runs a command in a pipe, returns the command's output as a string.""" 
    154154        answerfd = os.popen(cmd, "r") 
    155155        try : 
    156156            return answerfd.read().strip() 
    157         finally :         
     157        finally : 
    158158            answerfd.close() 
    159          
    160     def computeSize(self, filename) :     
     159 
     160    def computeSize(self, filename) : 
    161161        """Computes the size in pages of a file in the testsuite.""" 
    162162        answer = self.runPipe('pkpgcounter "%(filename)s" 2>/dev/null' % locals()) 
    163163        try : 
    164164            return int(answer) 
    165         except (ValueError, TypeError) :     
     165        except (ValueError, TypeError) : 
    166166            return 0 
    167          
     167 
    168168    def runTests(self) : 
    169169        """Launches the page counting tests against the testsuite.""" 
     
    172172        if not mastersize : 
    173173            raise RuntimeError, "Unable to compute the size of the testsuite's master file %(masterfilename)s" % locals() 
    174         else :     
     174        else : 
    175175            sys.stdout.write("Master file's contains %(mastersize)i pages.\n" % locals()) 
    176176        testsuite = glob.glob("testsuite.*") 
     
    181181            if len(parts) > 3 : 
    182182                devname = ".".join(parts[2:]) 
    183             else :     
     183            else : 
    184184                devname = parts[-1] 
    185             result = self.results.setdefault(testfname, { "command" : "See above",  
    186                                                           "device" : devname,  
    187                                                           "result" : None,  
     185            result = self.results.setdefault(testfname, { "command" : "See above", 
     186                                                          "device" : devname, 
     187                                                          "result" : None, 
    188188                                                          "details" : None }) 
    189189            sys.stdout.write("Testing %(testfname)s ... " % locals()) 
     
    194194                    result["result"] = "UNSUPPORTED" 
    195195                    result["details"] = "Unsupported file format" 
    196                 else :     
     196                else : 
    197197                    result["result"] = "FAILED" 
    198198                    result["details"] = "Found %(size)i pages instead of %(mastersize)i\n" % locals() 
    199             else :     
     199            else : 
    200200                result["result"] = "SUPPORTED" 
    201201                result["details"] = None 
    202             sys.stdout.write("%s\n" % result["result"])     
     202            sys.stdout.write("%s\n" % result["result"]) 
    203203        self.supportedpct = 100.0 * len([True for r in self.results.values() if r["result"] == "SUPPORTED"]) / nbtests 
    204204        self.failedpct = 100.0 * len([True for r in self.results.values() if r["result"] == "FAILED"]) / nbtests 
    205205        self.unsupportedpct = 100.0 * len([True for r in self.results.values() if r["result"] == "UNSUPPORTED"]) / nbtests 
    206          
     206 
    207207    def genHTMLReport(self, filename) : 
    208208        """Generates an HTML report.""" 
     
    232232        for key in keys : 
    233233            value = self.results[key] 
    234             linecount += 1     
    235             if not (linecount % 2) :     
     234            linecount += 1 
     235            if not (linecount % 2) : 
    236236                linecolor = "#DEDEDE" 
    237             else :     
     237            else : 
    238238                linecolor = "#FFFFFF" 
    239             out.write('<tr bgcolor="%s">\n' % linecolor)     
     239            out.write('<tr bgcolor="%s">\n' % linecolor) 
    240240            if value["result"] == "SUPPORTED" : 
    241241                color = "#00FF00" 
    242             elif value["result"] == "UNSUPPORTED" :     
     242            elif value["result"] == "UNSUPPORTED" : 
    243243                color = "#FF0000" 
    244             else :     
     244            else : 
    245245                color = "orange" 
    246246            out.write('<td bgcolor="%s"><strong>%s</strong></td>\n' % (color, value["device"])) 
     
    250250        out.write("</table></body></html>\n") 
    251251        out.close() 
    252          
    253 def main() :         
     252 
     253def main() : 
    254254    """Main function.""" 
    255255    try : 
     
    259259            sys.stderr.write("usage : %s [inputfile.ps]\n" % sys.argv[0]) 
    260260            sys.exit(-1) 
    261         else :     
     261        else : 
    262262            testsuite = TestSuite(sys.argv[1]) 
    263263            testsuite.genTestSuite() 
    264264            testsuite.runTests() 
    265265            testsuite.genHTMLReport("%s.html" % testsuite.md5sum) 
    266     except KeyboardInterrupt :         
     266    except KeyboardInterrupt : 
    267267        sys.stderr.write("Interrupted at user's request !\n") 
    268          
     268 
    269269if __name__ == "__main__" : 
    270270    sys.exit(main()) 
    271          
     271