Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimofey <t.danshin@corp.mail.ru>2016-02-08 15:51:36 +0300
committerSergey Yershov <yershov@corp.mail.ru>2016-03-23 16:16:59 +0300
commitd0c5b36c11cdc482a4c40502568b795017cf9f22 (patch)
treead6db89c68f31af8fe2e75d0bf410afe2626fd10
parent004b63425fbaab6bb0a02ad4ade111cd5fa19d82 (diff)
Create temp. folders for certain tests
Some tests fail when running in parallel because they compete for certain resources. To eliminate that situation we now create temporary folders for those tests and pass those folders as parameters.
-rw-r--r--tools/integration_tests_runner.py40
1 files changed, 30 insertions, 10 deletions
diff --git a/tools/integration_tests_runner.py b/tools/integration_tests_runner.py
index 2bcf234cf5..280938bf7f 100644
--- a/tools/integration_tests_runner.py
+++ b/tools/integration_tests_runner.py
@@ -1,12 +1,15 @@
from __future__ import print_function
+
+import logging
+import multiprocessing
from optparse import OptionParser
+from os import path
+import shutil
import subprocess
-import multiprocessing
+import tempfile
from threading import Lock
from threading import Thread
import traceback
-import logging
-from os import path
from Queue import Queue
@@ -17,17 +20,20 @@ from run_desktop_tests import tests_on_disk
__author__ = 't.danshin'
+TEMPFOLDER_TESTS = ["search_integration_tests"]
+
+
class IntegrationRunner:
def __init__(self):
self.process_cli()
self.proc_count = multiprocessing.cpu_count()
- logging.info("Number of processors is: {}".format(self.proc_count))
+ logging.info("Number of processors is: {nproc}".format(nproc=self.proc_count))
self.file_lock = Lock()
-
self.tests = Queue()
+
def run_tests(self):
for exec_file in self.runlist:
tests = self.get_tests_from_exec_file(exec_file, "--list_tests")[0]
@@ -58,17 +64,31 @@ class IntegrationRunner:
return
test_file, test = self.tests.get()
- self.exec_test(test_file, test)
+ self.exec_test(test_file, test, clean_env=(test_file in TEMPFOLDER_TESTS))
+
except:
logging.error(traceback.format_exc())
+ return
+
+ def exec_test(self, test_file, test, clean_env=False):
+ keys = '--filter={test}'.format(test=test)
+ if clean_env:
+ tmpdir = tempfile.mkdtemp()
+ logging.debug("Temp dir: {tmpdir}".format(tmpdir=tmpdir))
+
+ out, err, result = self.get_tests_from_exec_file(test_file, keys)
+
+ if clean_env:
+ try:
+ shutil.rmtree(tmpdir)
+ except:
+ logging.error("Failed to remove tempdir {tmpdir}".format(tmpdir=tmpdir))
- def exec_test(self, test_file, test):
- out, err, result = self.get_tests_from_exec_file(test_file, '--filter={test}'.format(test=test))
with self.file_lock:
- self.file.write("BEGIN: {}\n".format(test_file))
+ self.file.write("BEGIN: {file}\n".format(file=test_file))
self.file.write(str(err))
- self.file.write("\nEND: {} | result: {}\n\n".format(test_file, result))
+ self.file.write("\nEND: {file} | result: {res}\n\n".format(file=test_file, res=result))
self.file.flush()