Fail* result browser for pruning experiments.

Based on the database layout given by the pruner.
Run ./run.py -c <path to mysql.cnf>
(Default config ~/.my.cnf)

- Checks if objdump table exists
- Added view for results per instruction
- Added config file support for table details
- Overview data loaded at server startup
- Result type mapping configurable via config file

Based on Flask and MySQLdb

Change-Id: Ib49eac8f5c1e0ab23921aedb5bc53c34d0cde14d
This commit is contained in:
Martin Hoffmann
2013-09-26 14:02:36 +02:00
committed by Gerrit Code Review
parent b4f144745a
commit e4bf980b97
16 changed files with 1140 additions and 0 deletions

View File

@ -0,0 +1,39 @@
from flask import render_template,request
from app import app
import model
import data
@app.route('/')
@app.route('/index')
def index():
reload_overview = request.args.get('reload', False)
if reload_overview:
print "Reloading overview..."
model.reloadOverview()
return render_template("index.html", overview=model.getOverview(), objdump_there = model.objdumpExists())
@app.route('/code')
def code():
variant_id = request.args.get('variant_id', None)
resulttype = request.args.get('resulttype', None)
table = request.args.get('table', None)
res,restypes = model.getCode(table, variant_id, resulttype)
var_dets = model.getOverview().getVariantById(variant_id)
return render_template("code.html", results=res, resulttypes=restypes, variant_details=var_dets )
@app.route('/instr_details')
def instr_details():
table = request.args.get('table', None)
variant_id = request.args.get('variant_id', None)
instr_addr = request.args.get('instr_address', None)
resulttype = request.args.get('resulttype', None)
codeexcerpt = model.getCodeExcerpt(variant_id, instr_addr)
var_dets = model.getOverview().getVariantById(variant_id)
results = model.getResultsbyInstruction(table, variant_id, instr_addr, resulttype)
return render_template("instr_details.html", code=codeexcerpt, result=results, variant_details=var_dets)
@app.route('/about')
def about():
stat = model.showDBstatus()
return render_template("about.html", status=stat)