From 87744d670167c27c516a3b3e960c49d85b72958e Mon Sep 17 00:00:00 2001 From: Daniel Brown <ddb@star.sr.bham.ac.uk> Date: Mon, 5 Aug 2013 19:06:55 +0100 Subject: [PATCH] added diff output for each test file --- pykat/testing/test.py | 4 +-- .../web/templates/finesse_test_view.html | 2 +- pykat/testing/web/web_interface.py | 26 ++++++++++++++++++- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/pykat/testing/test.py b/pykat/testing/test.py index fbd4894..d6a7d0e 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 23e7d38..738e26e 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 8e78996..929f244 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): -- GitLab