-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdatabase.py
80 lines (65 loc) · 2.86 KB
/
database.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import sqlite3
from profilling import profiling_main
from process_err_output import err_out_main
from process_llvmir import llvm_main
from process_std_output import std_out_main
from process_prog_out import prog_out_main
# initialize database
def initDB(db_name):
"""
Adds Tables to sql database
"""
conn = sqlite3.connect(db_name + '.db', timeout=15)
c = conn.cursor()
c.execute('CREATE TABLE IF NOT EXISTS ' \
'ErrorOutput (ID INTEGER PRIMARY KEY, ' \
'FiThreadIndex INTEGER,FiInstCount INTEGER,' \
'FiDynKernelIndex INTEGER, FiStaticKernelIndex INTEGER, ' \
'FiBit INTEGER,' \
'FiBambooIndex INTEGER, RuntimeThreadIndex INTEGER, ' \
'RuntimeInstCount INTEGER, RuntimeFiBit INTEGER, OriginalValue TEXT, ' \
'CorruptedValue TEXT,ErrorDetected TEXT)')
c.execute('CREATE TABLE IF NOT EXISTS ' \
'StdOutput (ID INTEGER PRIMARY KEY, ' \
'FiThreadIndex INTEGER,FiInstCount INTEGER,' \
'FiDynKernelIndex INTEGER, FiStaticKernelIndex INTEGER, ' \
'FiBit INTEGER,' \
'FiBambooIndex INTEGER, RuntimeThreadIndex INTEGER, ' \
'RuntimeInstCount INTEGER, RuntimeFiBit INTEGER, OriginalValue TEXT, ' \
'CorruptedValue TEXT)')
c.execute('CREATE TABLE IF NOT EXISTS ' \
'profiling (ID INTEGER PRIMARY KEY,ThreadIndex INTEGER, ' \
'InstructionCount INTEGER,DynamicKernelIndex INTEGER, ' \
'StaticKernelIndex INTEGER)')
c.execute('CREATE TABLE IF NOT EXISTS ' \
'LlvmOutput (ID INTEGER PRIMARY KEY,BambooIndex INTEGER, ' \
'KernelId INTEGER,KernelLine INTEGER)')
c.execute('CREATE TABLE IF NOT EXISTS ' \
'ProgOut (ID INTEGER PRIMARY KEY,fileIndex INTEGER, ' \
'FileCmp BOOLEAN NOT NULL CHECK (FileCmp IN (0,1)))')
return c, conn;
# main
def main():
benchmark_name = raw_input("Enter benchmark name:")
process = raw_input("Enter process type:").lower()
c, conn = initDB(benchmark_name)
if (process == "a"):
c, conn = profiling_main(c, conn, benchmark_name)
c, conn = err_out_main(c, conn, benchmark_name)
c, conn = llvm_main(c, conn, benchmark_name)
c, conn = std_out_main(c, conn, benchmark_name)
c, conn = prog_out_main(c, conn, benchmark_name)
elif (process == "p"):
c, conn = profiling_main(c, conn, benchmark_name)
elif (process == "e"):
c, conn = err_out_main(c, conn, benchmark_name)
elif (process == "l"):
c, conn = llvm_main(c, conn, benchmark_name)
elif (process == "s"):
c, conn = std_out_main(c, conn, benchmark_name)
elif (process == "pr"):
c, conn = prog_out_main(c, conn, benchmark_name)
else:
print "Wrong Input"
if __name__ == "__main__":
main()