Skip to content

Commit 765e4bd

Browse files
committed
Add new subsystem test for ZMQ+LSF
1 parent e9db25f commit 765e4bd

File tree

2 files changed

+51
-3
lines changed

2 files changed

+51
-3
lines changed

ci/testkomodo.sh

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,50 @@ run_everest_eightcells_test() {
9292
return $STATUS
9393
}
9494

95+
run_ert-zmq-lsf_test () {
96+
set -e
97+
if [[ "$CI_RUNNER_LABEL" == "azure" ]]; then
98+
echo "Don't run ert-zmq-lsf test on azure"
99+
return 0
100+
elif [[ "$CI_RUNNER_LABEL" == "onprem" ]]; then
101+
RUNNER_ROOT="/scratch/oompf/ert_zmq_lsf_tests"
102+
else
103+
echo "Unsupported runner label: $CI_RUNNER_LABEL"
104+
return 1
105+
fi
95106

107+
rm -rf "$RUNNER_ROOT"
108+
mkdir -p "$RUNNER_ROOT"
109+
run_path=$(mktemp -d -p "$RUNNER_ROOT")
110+
chmod ugo+rx "$run_path"
111+
112+
pushd "$run_path"
113+
114+
# Need to create a komodoenv on a network mapped drive for LSF etc.
115+
source "${_KOMODO_ROOT}"/"${_FULL_RELEASE_NAME}"/enable
116+
komodoenv --root "${_KOMODO_ROOT}" -r "${_FULL_RELEASE_NAME}" --no-update --force test-kenv
117+
source test-kenv/enable
118+
check_queue "$CI_RUNNER_LABEL"
119+
120+
# Install the package
121+
pip install --upgrade pip
122+
pip install ${CI_SOURCE_ROOT}[dev]
123+
124+
# release_name=$(echo "$_FULL_RELEASE_NAME" | cut --delimiter=- --fields=1)
125+
# set +o errexit
126+
127+
# Run the tests
128+
mkdir -p pytest-tmp
129+
basetemp="pytests-tmp"
130+
131+
echo "Created basetemp directory at: $basetemp"
132+
pytest -vvs --lsf --basetemp="$basetemp" ${CI_TEST_ROOT}/tests/ert/unit_tests/forward_model_runner/test_fm_dispatch_with_lsf.py
133+
return_code_ert_zmq_lsf_tests=$?
134+
echo "set folder $basetemp readable for all users"
135+
chmod -R a+rwx "$basetemp"
136+
# rm -rf ${RUNNER_ROOT} || true
137+
return $return_code_ert_zmq_lsf_tests
138+
}
96139

97140
start_tests() {
98141
export NO_PROXY=localhost,127.0.0.1
@@ -131,6 +174,9 @@ start_tests() {
131174
return_code_ert_scheduler_tests=$?
132175
rm -rf "$basetemp" || true
133176
return $return_code_ert_scheduler_tests
177+
elif [ "$CI_SUBSYSTEM_TEST" == "ert-zmq-lsf" ]; then
178+
run_ert-zmq-lsf_test
179+
return $?
134180
elif [ "$CI_SUBSYSTEM_TEST" == "opm-integration" ]; then
135181
run_ert_with_opm
136182
return $?
@@ -142,6 +188,6 @@ start_tests() {
142188
else
143189
echo "Error: Variable $CI_SUBSYSTEM_TEST did not match any testable subsystem"
144190
fi
145-
echo "Possible subsystems are: ert, everest, everest-eightcells, ert-limit-memory, ert-queue-system, opm-integration"
191+
echo "Possible subsystems are: ert, everest, everest-eightcells, ert-limit-memory, ert-queue-system, ert-zmq-lsf, opm-integration"
146192
return 1
147193
}

tests/ert/unit_tests/forward_model_runner/test_fm_dispatch_with_lsf.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ class TCPMockZMQServer(MockZMQServer):
1818
def __init__(self, signal=0, port_range=(51820, 51840)) -> None:
1919
super().__init__(signal)
2020
# Need to use public IP on some clusters
21-
self.host = get_ip_address()
21+
self.host = get_ip_address(prioritize_private=True)
22+
print(f"Using host {self.host}")
2223
self.port = port_range[0]
2324
self.min_port = port_range[0]
2425
self.max_port = port_range[1]
@@ -96,7 +97,7 @@ async def test_that_job_submitted_job_sends_start_and_success_events_to_zmq_serv
9697

9798
driver = LsfDriver()
9899

99-
fm_dispatch_path = shutil.which("fm_dispatch.py") or "fm_dispatch.py"
100+
fm_dispatch_path = shutil.which("fm_dispatch.py")
100101
await driver.submit(
101102
0, fm_dispatch_path, str(runpath.absolute()), runpath=runpath
102103
)
@@ -129,3 +130,4 @@ async def poll_until_done():
129130
event_types = {json.loads(msg).get("event_type") for msg in zmq_server.messages}
130131
assert "forward_model_step.start" in event_types
131132
assert "forward_model_step.success" in event_types
133+
assert False

0 commit comments

Comments
 (0)