Skip to content

Commit

Permalink
Add 1 more test
Browse files Browse the repository at this point in the history
  • Loading branch information
Ben Albrecht committed Jun 9, 2022
1 parent 2cc1b98 commit 6bee2cf
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 3 deletions.
3 changes: 3 additions & 0 deletions smartsim/_core/launcher/step/localStep.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,9 @@ def get_launch_cmd(self):
launch_script_path = self.get_colocated_launch_script()
cmd.extend([bash, launch_script_path])

if self.run_settings.container:
cmd += self.run_settings.container._container_cmds()

# build executable
cmd.extend(self.run_settings.exe)
if self.run_settings.exe_args:
Expand Down
13 changes: 13 additions & 0 deletions tests/test_configs/check_dirs.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import os
from pathlib import Path

'''
Verify home directory only contains a single directory.
This script is intended to be run by a container test with a test directory
mounted into the $HOME directory.
'''

directories=os.listdir(str(Path.home()))
print(directories)
assert len(directories) == 1

34 changes: 31 additions & 3 deletions tests/test_containers.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import pytest
from shutil import which
from pathlib import Path
import os

from smartsim import Experiment, status
from smartsim._core.utils import installed_redisai_backends
Expand Down Expand Up @@ -49,6 +51,7 @@ def test_singularity_commands(fileutils):

@pytest.mark.skipif(not singularity_exists, reason="Test needs singularity to run")
def test_singularity_basic(fileutils):
'''Basic argument-less Singularity test'''
test_dir = fileutils.make_test_dir()

container = Singularity(containerURI)
Expand All @@ -65,9 +68,34 @@ def test_singularity_basic(fileutils):
exp.start(model, summary=False)

# get and confirm status
statuses = exp.get_status(model)
if not all([stat == status.STATUS_COMPLETED for stat in statuses]):
assert False # client ensemble failed
stat = exp.get_status(model)[0]
assert stat == status.STATUS_COMPLETED

print(exp.summary())


@pytest.mark.skipif(not singularity_exists, reason="Test needs singularity to run")
def test_singularity_args(fileutils):
'''Test combinations of args and mount arguments for Singularity'''
test_dir = fileutils.make_test_dir()
hometest_dir = os.path.join(str(Path.home()), 'test') # $HOME/test
mount_paths = {test_dir + '/singularity_args': hometest_dir}
container = Singularity(containerURI, args='--contain', mount=mount_paths)

exp = Experiment("singularity_args", launcher="local", exp_path=test_dir)

run_settings = exp.create_run_settings('python3', 'test/check_dirs.py',
container=container)
model = exp.create_model("singularity_args", run_settings)
script = fileutils.get_test_conf_path("check_dirs.py")
model.attach_generator_files(to_copy=[script])
exp.generate(model)

exp.start(model, summary=False)

# get and confirm status
stat = exp.get_status(model)[0]
assert stat == status.STATUS_COMPLETED

print(exp.summary())

Expand Down

0 comments on commit 6bee2cf

Please sign in to comment.