From a4df56a052e0f5d01cf29844d4d9f8538096363f Mon Sep 17 00:00:00 2001
From: "Timothy A. Smith" <tasmith4@illinois.edu>
Date: Mon, 17 Jun 2019 12:11:21 -0500
Subject: [PATCH] move program/device fixtures inside test.py

---
 test.py | 51 +++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 41 insertions(+), 10 deletions(-)

diff --git a/test.py b/test.py
index 6b42fdd..3db55b6 100644
--- a/test.py
+++ b/test.py
@@ -16,12 +16,43 @@ from pyopencl.tools import (  # noqa
         pytest_generate_tests_for_pyopencl
         as pytest_generate_tests)
 
-import device_fixtures as device
-import program_fixtures as program
 import setup_fixtures as setup
 import kernel_fixtures as kernel
 
 
+_QUEUE = []
+
+
+def get_queue(ctx_factory):
+    if not _QUEUE:
+        setup_queue(ctx_factory)
+    return _QUEUE[0]
+
+
+def setup_queue(ctx_factory):
+    ctx = ctx_factory()
+    _QUEUE.append(cl.CommandQueue(ctx))
+
+
+_WENO_PRG = []
+
+
+def parse_weno():
+    fn = "WENO.F90"
+
+    with open(fn, "r") as infile:
+        infile_content = infile.read()
+
+    prg = lp.parse_transformed_fortran(infile_content, filename=fn)
+    _WENO_PRG.append(prg)
+
+
+def get_weno_program():
+    if not _WENO_PRG:
+        parse_weno()
+    return _WENO_PRG[0]
+
+
 def compare_arrays(a, b):
     assert a == approx(b)
 
@@ -117,8 +148,8 @@ def transform_compute_flux_derivative_gpu(queue, prg):
     ("2 1,4 1,8 2,12 3,64 11", "12 3,24 3,48 6,75.2 10.6,403.2 37.8", "z")
     ])
 def test_roe_uniform_grid(ctx_factory, states_str, fluxes_str, direction):
-    queue = device.get_queue(ctx_factory)
-    prg = program.get_weno()
+    queue = get_queue(ctx_factory)
+    prg = get_weno_program()
 
     params = setup.roe_params(nvars=5, ndim=3, direction=direction)
     states = setup.array_from_string(states_str)
@@ -132,8 +163,8 @@ def test_roe_uniform_grid(ctx_factory, states_str, fluxes_str, direction):
 
 
 def test_matvec(ctx_factory):
-    queue = device.get_queue(ctx_factory)
-    prg = program.get_weno()
+    queue = get_queue(ctx_factory)
+    prg = get_weno_program()
 
     a = setup.random_array(10, 10)
     b = setup.random_array(10)
@@ -145,8 +176,8 @@ def test_matvec(ctx_factory):
 
 #@pytest.mark.slow
 def test_compute_flux_derivatives(ctx_factory):
-    queue = device.get_queue(ctx_factory)
-    prg = program.get_weno()
+    queue = get_queue(ctx_factory)
+    prg = get_weno_program()
     prg = transform_compute_flux_derivative_basic(prg)
 
     params = setup.flux_derivative_params(ndim=3, nvars=5, n=10)
@@ -157,8 +188,8 @@ def test_compute_flux_derivatives(ctx_factory):
 
 #@pytest.mark.slow
 def test_compute_flux_derivatives_gpu(ctx_factory):
-    queue = device.get_queue(ctx_factory)
-    prg = program.get_weno()
+    queue = get_queue(ctx_factory)
+    prg = get_weno_program()
     prg = transform_compute_flux_derivative_gpu(queue, prg)
 
     params = setup.flux_derivative_params(ndim=3, nvars=5, n=10)
-- 
GitLab