blob: 1d9b8df625b14491c63fc48d32cb27d6669e09d1 [file] [log] [blame]
Devang Patel8802f0b2010-12-07 00:34:59 +00001#!/usr/bin/python
2
3import os
4import sys
5
6class BreakPoint:
7 def __init__(self, bp_name):
8 self.name = bp_name
9 self.values = {}
Devang Patel7dddad52010-12-09 23:18:58 +000010 self.var_values = {}
Devang Patel8802f0b2010-12-07 00:34:59 +000011
12 def recordArgument(self, arg_name, value):
13 self.values[arg_name] = value
14
Devang Patel7dddad52010-12-09 23:18:58 +000015 def recordVariable(self, var_name, var_value):
16 self.var_values[var_name] = var_value
17
Devang Patel8802f0b2010-12-07 00:34:59 +000018 def __repr__(self):
19 print self.name
20 items = self.values.items()
21 for i in range(len(items)):
22 print items[i][0]," = ",items[i][1]
23 return ''
24
Devang Patel7dddad52010-12-09 23:18:58 +000025 def compare_args(self, other):
Devang Patel8802f0b2010-12-07 00:34:59 +000026 return cmp(self.values, other.values)
27
Devang Patel7dddad52010-12-09 23:18:58 +000028 def compare_vars(self, other):
29 return cmp(self.var_values, other.var_values)
30
31 def __cmp__(self, other):
32 return cmp(self.values, other.values)
33
Devang Patel8802f0b2010-12-07 00:34:59 +000034def read_input(filename, dict):
35 f = open(filename, "r")
36 lines = f.readlines()
37 for l in range(len(lines)):
38 c = lines[l].split()
39 if c[0] == "#Argument":
40 bp = dict.get(c[2])
41 if bp is None:
42 bp = BreakPoint(c[1])
43 dict[c[2]] = bp
44 bp.recordArgument(c[3], c[4])
45
Devang Patel7dddad52010-12-09 23:18:58 +000046 if c[0] == "#Variables":
47 bp = dict.get(c[2])
48 if bp is None:
49 bp = BreakPoint(c[1])
50 dict[c[2]] = bp
51 bp.recordVariable(c[3], c[4])
52
Devang Patel8802f0b2010-12-07 00:34:59 +000053 f.close()
54 return
55
56f1_breakpoints = {}
57read_input(sys.argv[1], f1_breakpoints)
58f1_items = f1_breakpoints.items()
59
60f2_breakpoints = {}
61read_input(sys.argv[2], f2_breakpoints)
62f2_items = f2_breakpoints.items()
63
Devang Patel7dddad52010-12-09 23:18:58 +000064arg_mismatch = 0
65var_mismatch = 0
Devang Patel8802f0b2010-12-07 00:34:59 +000066for f2bp in range(len(f2_items)):
67 id = f2_items[f2bp][0]
68 bp = f2_items[f2bp][1]
69 bp1 = f1_breakpoints.get(id)
70 if bp1 is None:
71 print "bp is missing"
72 else:
Devang Patel7dddad52010-12-09 23:18:58 +000073 if bp1.compare_args(bp):
74 arg_mismatch = arg_mismatch + 1
75 if bp1.compare_vars(bp):
76 var_mismatch = var_mismatch + 1
Devang Patel8802f0b2010-12-07 00:34:59 +000077
78l2 = len(f2_items)
79print "=========="
80if l2 != 0:
Devang Patel7dddad52010-12-09 23:18:58 +000081 print sys.argv[3]," Argument success rate is", (l2-arg_mismatch)*100/l2,"%"
82 print sys.argv[3]," Variable success rate is", (l2-var_mismatch)*100/l2,"%"
Devang Patel8802f0b2010-12-07 00:34:59 +000083else:
84 print sys.argv[3]," success rate is 100%"
85print "=========="