diff --git a/.github/workflows/charm4py.yml b/.github/workflows/charm4py.yml index 9169a977..b9564740 100644 --- a/.github/workflows/charm4py.yml +++ b/.github/workflows/charm4py.yml @@ -17,14 +17,21 @@ jobs: - name: build-charm4py run: | git fetch --unshallow # Need full repo for 'git describe' used by setup.py - pip3 install setuptools cython cffi greenlet numpy + pip3 install setuptools cython greenlet numpy git clone https://github.com/UIUC-PPL/charm charm_src/charm export CHARM_EXTRA_BUILD_OPTS="--enable-error-checking" export CHARM_BUILD_PROCESSES=2 - export CHARM4PY_BUILD_CFFI=1 python3 setup.py build_ext --inplace + export PYTHONPATH="$PWD" - name: test-charm4py run: | + git clone https://github.com/slm960323/task-bench.git + cd task-bench + cd core + make -j2 + export LD_LIBRARY_PATH=$(pwd):$LD_LIBRARY_PATH + cd ../../ export PYTHONPATH="$PWD" export CHARM4PY_TEST_NUM_PROCESSES=2 python3 auto_test.py + diff --git a/test_config.json b/test_config.json index 4c7054bb..1f5199b7 100644 --- a/test_config.json +++ b/test_config.json @@ -9,6 +9,15 @@ "force_min_processes": 4, "path": "tests/entry_methods/array_element_proxy.py" }, + { + "force_min_processes": 1, + "path": "tests/local_msg.py" + }, + { + "force_min_processes": 4, + "path": "task-bench/charm4py/task_bench.py", + "args": "-steps 4 -width 8 -type stencil_1d" + }, { "force_min_processes": 4, "path": "tests/entry_methods/group_element_proxy.py" diff --git a/tests/local_msg.py b/tests/local_msg.py new file mode 100644 index 00000000..c6368a0b --- /dev/null +++ b/tests/local_msg.py @@ -0,0 +1,29 @@ +from charm4py import charm, Chare, Array + +class Elem(Chare): + def __init__ (self, main_proxy): + self.main_proxy = main_proxy + + def recv(self, data): + data[0] = 100 + print("Chare :: data[0] = {}".format(data[0])) + self.main_proxy.done() + +class Main(Chare): + def __init__(self): + self.data = list(range(10)) + elem = Chare(Elem, args=[self.thisProxy]) + charm.awaitCreation(elem) + elem.recv(self.data) + + def done(self): + print("Main :: data[0] = {}".format(self.data[0])) + assert(self.data[0] == 0) + exit() + +def main(args): + m = Chare(Main) + charm.awaitCreation(m) + +charm.start(main) +