diff --git a/pykat/testing/test.py b/pykat/testing/test.py index fbd4894c84d9c75aef79bc9d3b9a1fa43ae3a219..d6a7d0ed0b660814cd232446488132f10d445134 100644 --- a/pykat/testing/test.py +++ b/pykat/testing/test.py @@ -230,9 +230,7 @@ class FinesseTestProcess(Thread): else: try: start = time.time() - - print "running", kat, FINESSE_EXE - + out,err = utils.runcmd([FINESSE_EXE, "--noheader", kat], cwd=SUITE_PATH) OUT_FILE = os.path.join(SUITE_PATH,basename + ".out") diff --git a/pykat/testing/web/templates/finesse_test_view.html b/pykat/testing/web/templates/finesse_test_view.html index 23e7d388e39084d2cf6c4d4954cc82d26784f612..738e26e06c540718f9ed09ef17e80119e22015e5 100644 --- a/pykat/testing/web/templates/finesse_test_view.html +++ b/pykat/testing/web/templates/finesse_test_view.html @@ -23,7 +23,7 @@ <li>{{ suite }}</li> <ul> {% for item in kats[suite] %} - <li><span style="display:inline-block;width: 300px">{{item[0]}}</span>Max rel diff = {{item[1]}}</li> + <li><span style="display:inline-block;width: 300px">{{item[0]}}</span><a href="/finesse/view/{{view_test_id}}/diff/{{suite}}/{{item[0]}}">View Diff</a> Max rel diff = {{item[1]}}</li> {% if item[2][0] != "" %} <ul> <li>stdout: <pre>{{item[2][0]}}</pre></li> diff --git a/pykat/testing/web/web_interface.py b/pykat/testing/web/web_interface.py index 8e78996d9dc024caa01840d06cc1ec759e4d2ae4..929f244e7ef9d6bbb3d59b990406c3d345215658 100644 --- a/pykat/testing/web/web_interface.py +++ b/pykat/testing/web/web_interface.py @@ -15,7 +15,7 @@ from pykat.testing.web import app from hashlib import md5 from CodernityDB.database_thread_safe import ThreadSafeDatabase from CodernityDB.database import RecordNotFound - +import numpy as np from pykat.testing.web.database_indices import TestIDIndex, SrcCommitIndex, KatTestIndex import os, sys, traceback @@ -533,7 +533,31 @@ def finesse_view_make(view_test_id, log): else: return "" + +@app.route('/finesse/view/<view_test_id>/diff/<suite>/<kat>/', methods=["GET"]) +def finesse_view_diff(view_test_id, suite, kat): + out = kat[:-4] + ".out" + REF_FILE = os.path.join(app.instance_path,"finesse_test","kat_test",suite,"reference",out) + OUT_FILE = os.path.join(app.instance_path,"tests",str(view_test_id),"outputs",suite,out) + + if not os.path.exists(REF_FILE): + raise Exception("Reference file " + REF_FILE + " not found") + + if not os.path.exists(OUT_FILE): + raise Exception("Output file " + OUT_FILE + " not found") + #ref_data = np.loadtxt(REF_FILE) + #out_data = np.loadtxt(OUT_FILE) + + import difflib + + ref = open(REF_FILE, 'U').readlines() + out = open(OUT_FILE, 'U').readlines() + + + return difflib.HtmlDiff().make_file(ref,out,REF_FILE,OUT_FILE) + + @app.route('/finesse/view/<view_test_id>/', methods=["GET"]) def finesse_view(view_test_id):