Added creating build/ directory for generated test files

Signed-off-by: Grzegorz Latosinski <glatosinski@antmicro.com>
diff --git a/tests/test_v2x.py b/tests/test_v2x.py
index f426fd8..a97841a 100644
--- a/tests/test_v2x.py
+++ b/tests/test_v2x.py
@@ -12,10 +12,24 @@
 
 from vtr_xml_utils import convert
 
+from distutils.dir_util import copy_tree
 
-@pytest.fixture(scope="session", autouse=True)
-def prepare_files(request):
-    mux_gen(outdir='tests/muxes/routing',
+TEST_TMP_SUFFIX = 'build/'
+
+
+def prepare_files():
+    # Copy all files for tests to the build/ directory
+    scriptdir = os.path.dirname(__file__)
+    testdir = os.path.join(os.path.dirname(scriptdir), TEST_TMP_SUFFIX)
+    os.makedirs(testdir, exist_ok=True)
+
+    for tdir in os.listdir(scriptdir):
+        s = os.path.join(scriptdir, tdir)
+        d = os.path.join(testdir, tdir)
+        if os.path.isdir(s):
+            copy_tree(s, d, update=1)
+
+    mux_gen(outdir=os.path.join(testdir, 'muxes/routing'),
             outfilename='rmux',
             datatype='routing',
             width=2,
@@ -24,7 +38,7 @@
             name_mux='RMUX',
             name_inputs='I0,I1'
             )
-    mux_gen(outdir='tests/vtr/lutff-pair/omux',
+    mux_gen(outdir=os.path.join(testdir, 'vtr/lutff-pair/omux'),
             outfilename='omux',
             datatype='routing',
             width=2,
@@ -34,9 +48,9 @@
             name_inputs='L,F'
             )
 
-    newpbfile = 'tests/vtr/dff/dff.pb_type.xml'
+    newpbfile = os.path.join(testdir, 'vtr/dff/dff.pb_type.xml')
     pbtypeout = vlog_to_pbtype.vlog_to_pbtype(
-        ['tests/vtr/dff/dff.sim.v'],
+        [os.path.join(testdir, 'vtr/dff/dff.sim.v')],
         newpbfile,
         None)
     with open(newpbfile, 'w') as model:
@@ -45,9 +59,9 @@
     with open(newpbfile, 'w') as model:
         model.write(convertedmodel)
 
-    newpbfile = 'tests/vtr/lutff-pair/ff/ff.pb_type.xml'
+    newpbfile = os.path.join(testdir, 'vtr/lutff-pair/ff/ff.pb_type.xml')
     pbtypeout = vlog_to_pbtype.vlog_to_pbtype(
-        ['tests/vtr/lutff-pair/ff/ff.sim.v'],
+        [os.path.join(testdir, 'vtr/lutff-pair/ff/ff.sim.v')],
         newpbfile,
         'DFF')
     with open(newpbfile, 'w') as model:
@@ -94,13 +108,17 @@
 
 
 def pytest_generate_tests(metafunc):
+    prepare_files()
+    scriptdir = os.path.dirname(__file__)
+    testdir = os.path.join(os.path.dirname(scriptdir), TEST_TMP_SUFFIX)
+
     if "modelcase" in metafunc.fixturenames:
-        models = get_test_goldens('model.xml', __file__)
+        models = get_test_goldens('model.xml', os.path.join(testdir, 'test'))
         metafunc.parametrize("modelcase",
                              models,
                              ids=[i['simfile'] for i in models])
     if "pbtypecase" in metafunc.fixturenames:
-        models = get_test_goldens('pb_type.xml', __file__)
+        models = get_test_goldens('pb_type.xml', os.path.join(testdir, 'test'))
         metafunc.parametrize("pbtypecase",
                              models,
                              ids=[i['simfile'] for i in models])
@@ -120,7 +138,7 @@
     testdatadir = os.path.dirname(modelfile) + '/'
     vlog_filename = modelcase['simfile']
     testname = vlog_filename.split('/')[-1].split('.')[0]
-    generatedmodelfile = testdatadir + testname + '.model.xml'
+    generatedmodelfile = os.path.join(testdatadir, testname) + '.model.xml'
     modelout = vlog_to_model.vlog_to_model([vlog_filename], None, None,
                                            generatedmodelfile)
     with open(generatedmodelfile, 'w') as model:
@@ -149,7 +167,7 @@
     testdatadir = os.path.dirname(testdatafile) + '/'
     vlog_filename = pbtypecase['simfile']
     testname = vlog_filename.split('/')[-1].split('.')[0]
-    generatedmodelfile = testdatadir + testname + '.pb_type.xml'
+    generatedmodelfile = os.path.join(testdatadir, testname) + '.pb_type.xml'
     pbtypeout = vlog_to_pbtype.vlog_to_pbtype([vlog_filename],
                                               generatedmodelfile,
                                               None)