diff --git a/pykat/testing/test.py b/pykat/testing/test.py index 30d4b4062b00c95d768deada839ae58c6d4165fd..4d6f601268b1015cb87b20f4f473181fdc02ea68 100644 --- a/pykat/testing/test.py +++ b/pykat/testing/test.py @@ -126,7 +126,9 @@ class FinesseTestProcess(Thread): self.built = False BUILD_PATH = os.path.join(self.BASE_DIR, "build") - + + print "NOBUILD", self.nobuild + # Firstly we need to build the latest version of finesse if not self.nobuild: diff --git a/pykat/testing/utils.py b/pykat/testing/utils.py index ae8b361dfac7928c11910a00543892e9c3d18c1e..0e68a7f28417f13b1d48275aaf6f4c7935ad6c98 100644 --- a/pykat/testing/utils.py +++ b/pykat/testing/utils.py @@ -20,7 +20,7 @@ def runcmd(args, cwd="."): out, err = p.communicate() if p.returncode != 0: - print "STDERR: " + errk + print "STDERR: " + err print "STDOUT: " + out raise RunException(p.returncode, args, err, out) diff --git a/pykat/testing/web/templates/finesse_test.html b/pykat/testing/web/templates/finesse_test.html index 15fcfca385a5767fc970a81a01030607529e5de2..487dcfd524b324c1666a2d28b53c7b2288bdb9ee 100644 --- a/pykat/testing/web/templates/finesse_test.html +++ b/pykat/testing/web/templates/finesse_test.html @@ -67,7 +67,9 @@ </select> <input type="button" value="Refresh" id="btnGetLogs"/> + <br/> + <input type="checkbox" id="chkNoBuild" />Use previously built kat (Will built if it can't find any previous kats of the requested version)<br> <input type="button" value="Start new FINESSSE test" id="btnStartTest"/> <section class="container"> @@ -350,7 +352,8 @@ } list = $("#commit_list"); - data = JSON.stringify({"git_commit": list.val(), "kats":kats}); + + data = JSON.stringify({"git_commit": list.val(), "kats":kats, "nobuild":$('#chkNoBuild').is(':checked')}); $.ajax({ type: "POST", diff --git a/pykat/testing/web/web_interface.py b/pykat/testing/web/web_interface.py index 8ab97008868c9716dc8fb103f1a55111c5f5335e..51f174c7931421d722466a08711e8e827d799616 100644 --- a/pykat/testing/web/web_interface.py +++ b/pykat/testing/web/web_interface.py @@ -61,9 +61,9 @@ else: SRC_GIT_PATH = os.path.join(app.instance_path, "finesse_src",".git") # get HEAD commit to set as starting point for commit checker -latest_data = utils.git(["log","-2",'--pretty=format:"%H"'],cwd=SRC_GIT_PATH) - -latest_commit_id_tested = latest_data[0].split("\n")[1].replace('"',"").replace("\\","") +prev_commits = 10 +latest_data = utils.git(["log","-" + str(prev_commits),'--pretty=format:"%H"'],cwd=SRC_GIT_PATH) +latest_commit_id_tested = latest_data[0].split("\n")[prev_commits-1].replace('"',"").replace("\\","") print "loading web interface" @@ -327,10 +327,17 @@ def finesse_start_rerun(id): @app.route('/finesse/start_test', methods=["POST"]) def finesse_start_test(): + nobuild = False + + if "nobuild" in request.json: + if request.json["nobuild"] == True: + nobuild = True + else: + nobuild = False - return jsonify(__finesse_start_test(request.json["git_commit"], request.json["kats"])) + return jsonify(__finesse_start_test(request.json["git_commit"], request.json["kats"], nobuild)) -def __finesse_start_test(git_commit, kats): +def __finesse_start_test(git_commit, kats, nobuild=False): global current_test, test_id try: @@ -350,11 +357,31 @@ def __finesse_start_test(git_commit, kats): os.mkdir(TEST_RUN_PATH) + # if we are not building then check to see if we can find a previous version + # of kat and if so put it in the correct folder for the test to find + if nobuild: + if sys.platform == "win32": + EXE = ".exe" + else: + EXE = "" + + TEST_BUILD_PATH = os.path.join(TEST_RUN_PATH,"build") + KAT_EXE = os.path.join(app.instance_path, "kat_store", "kat_" + str(git_commit) + EXE) + + if os.path.exists(KAT_EXE): + print "using existing kat file " + KAT_EXE + utils.git(["clone","git://gitmaster.atlas.aei.uni-hannover.de/finesse/base.git",TEST_BUILD_PATH]) + KAT_NEW_EXE = os.path.join(TEST_BUILD_PATH,"kat" + EXE) + shutil.copyfile(KAT_EXE, KAT_NEW_EXE) + + + print "nobuild", nobuild + test = finesse_test.FinesseTestProcess(os.path.join(app.instance_path, "finesse_test"), TEST_RUN_PATH, git_commit, run_fast=False, kats=kats, test_id=test_id, - emails="", nobuild=False) + emails="", nobuild=nobuild) db.insert(dict(t="test", test_id=test.test_id,