Devang Patel | 8802f0b | 2010-12-07 00:34:59 +0000 | [diff] [blame] | 1 | #!/usr/bin/python |
| 2 | |
| 3 | import os |
| 4 | import sys |
| 5 | |
| 6 | class BreakPoint: |
| 7 | def __init__(self, bp_name): |
| 8 | self.name = bp_name |
| 9 | self.values = {} |
| 10 | |
| 11 | def recordArgument(self, arg_name, value): |
| 12 | self.values[arg_name] = value |
| 13 | |
| 14 | def __repr__(self): |
| 15 | print self.name |
| 16 | items = self.values.items() |
| 17 | for i in range(len(items)): |
| 18 | print items[i][0]," = ",items[i][1] |
| 19 | return '' |
| 20 | |
| 21 | def __cmp__(self, other): |
| 22 | return cmp(self.values, other.values) |
| 23 | |
| 24 | def read_input(filename, dict): |
| 25 | f = open(filename, "r") |
| 26 | lines = f.readlines() |
| 27 | for l in range(len(lines)): |
| 28 | c = lines[l].split() |
| 29 | if c[0] == "#Argument": |
| 30 | bp = dict.get(c[2]) |
| 31 | if bp is None: |
| 32 | bp = BreakPoint(c[1]) |
| 33 | dict[c[2]] = bp |
| 34 | bp.recordArgument(c[3], c[4]) |
| 35 | |
| 36 | f.close() |
| 37 | return |
| 38 | |
| 39 | f1_breakpoints = {} |
| 40 | read_input(sys.argv[1], f1_breakpoints) |
| 41 | f1_items = f1_breakpoints.items() |
| 42 | |
| 43 | f2_breakpoints = {} |
| 44 | read_input(sys.argv[2], f2_breakpoints) |
| 45 | f2_items = f2_breakpoints.items() |
| 46 | |
| 47 | mismatch = 0 |
| 48 | for f2bp in range(len(f2_items)): |
| 49 | id = f2_items[f2bp][0] |
| 50 | bp = f2_items[f2bp][1] |
| 51 | bp1 = f1_breakpoints.get(id) |
| 52 | if bp1 is None: |
| 53 | print "bp is missing" |
| 54 | else: |
| 55 | if bp1 != bp: |
| 56 | mismatch = mismatch + 1 |
| 57 | |
| 58 | l2 = len(f2_items) |
| 59 | print "==========" |
| 60 | if l2 != 0: |
| 61 | print sys.argv[3]," success rate is", (l2-mismatch)*100/l2,"%" |
| 62 | else: |
| 63 | print sys.argv[3]," success rate is 100%" |
| 64 | print "==========" |