def prepare_job(job, command='hostname', pre_run=None, post_run=None): environs = [Environment(name='foo', modules=['testmod_foo'])] pre_run = pre_run or ['echo prerun'] post_run = post_run or ['echo postrun'] with rt.module_use('unittests/modules'): job.prepare([ *pre_run, job.launcher.run_command(job) + ' ' + command, post_run ], environs)
def test_load_user_modules(run_reframe, user_exec_ctx): with rt.module_use('unittests/modules'): returncode, stdout, stderr = run_reframe( more_options=['-m testmod_foo'], action='list') assert stdout != '' assert 'Traceback' not in stdout assert 'Traceback' not in stderr assert returncode == 0
def test_unload_module(run_reframe, user_exec_ctx): # This test is mostly for ensuring coverage. `run_reframe()` restores # the current environment, so it is not easy to verify that the modules # are indeed unloaded. However, this functionality is tested elsewhere # more exhaustively. ms = rt.runtime().modules_system if not fixtures.has_sane_modules_system(): pytest.skip('no modules system found') with rt.module_use('unittests/modules'): ms.load_module('testmod_foo') returncode, stdout, stderr = run_reframe( more_options=['-u testmod_foo'], action='list') ms.unload_module('testmod_foo') assert stdout != '' assert 'Traceback' not in stdout assert 'Traceback' not in stderr assert returncode == 0
def prepare(self): with rt.module_use('unittests/modules'): self.testjob.prepare(self.commands, self.environs)