parse-testpi1.py revision 9a84db5a3ab471e75e3f257b86c81e7fee4d51ef
19a84db5a3ab471e75e3f257b86c81e7fee4d51efsubrata_modak# -*- coding: utf-8 -*- 29a84db5a3ab471e75e3f257b86c81e7fee4d51efsubrata_modak 3d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak################################################################################ 4d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## ## 5d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## Copyright © International Business Machines Corp., 2007, 2008 ## 6d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## ## 7d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## This program is free software; you can redistribute it and#or modify ## 8d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## it under the terms of the GNU General Public License as published by ## 9d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## the Free Software Foundation; either version 2 of the License, or ## 10d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## (at your option) any later version. ## 11d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## ## 12d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## This program is distributed in the hope that it will be useful, but ## 13d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ## 14d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ## 15d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## for more details. ## 16d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## ## 17d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## You should have received a copy of the GNU General Public License ## 18d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## along with this program; if not, write to the Free Software ## 19d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ## 20d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## ## 21d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## NAME: parse-testpi1.py ## 22d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## ## 23d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## DESCRIPTION: Log Parser for the testpi-1.c test ## 24d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## ## 25d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## AUTHOR: Chirag <chirag@linux.vnet.ibm.com ## 26d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak## ## 27d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak################################################################################ 28d93eb3eeece016658bce9504009c30b71458e34dsubrata_modak 296acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modakfrom scripts.parser import * 306acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modakimport re 316acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modakclass TestPi1(Log): 326acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak def __init__(self,filename): 336acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak Log.__init__(self,filename) 346acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak 356acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak def eval(self): 366acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak exp1= re.compile("pthread pol 0 pri 0") 376acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak exp2= re.compile(r'^Noise Thread') 386acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak exp3=re.compile("[1-9]\d{2,3}") 396acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak flag=False 406acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak for line in self.read(): 416acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak if exp1.search(line) and exp2.search(prev_line)and exp3.search(prev_line): 426acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak list=prev_line.split(" ") 436acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak if int(list[4])< 9900: 446acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak flag=True 456acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak else: 466acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak flag=False 476acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak 486acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak 496acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak 506acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak prev_line=line 516acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak return flag 526acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak 536acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modakdef main(): 546acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak if len(sys.argv) < 2: 556acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak sys.exit("Usage : ./%s <logname>" % sys.argv[0]) 566acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak else: 576acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak log_file = sys.argv[1] 586acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak log = TestPi1(log_file) 596acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak sys.exit("Result: %s " % (["FAIL", "PASS"][log.eval()])) 606acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak 616acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modakif __name__ == "__main__": 626acdc8efa73ceb0c3b515cd34c333d929e8b4273subrata_modak main() 63