def test_concurrent_errors(self): logging.debug('') logging.debug('test_concurrent_errors') init_cluster(encrypted=True, allow_shell=True) self.generate_cases(force_errors=True) self.run_cases(sequential=False, forced_errors=True, retry=False) self.run_cases(sequential=False, forced_errors=True, retry=True)
def test_concurrent(self): # This can always test using a LocalAllocator (forked processes). # It can also use a ClusterAllocator if the environment looks OK. logging.debug('') logging.debug('test_concurrent') init_cluster(encrypted=True, allow_shell=True) self.run_cases(sequential=False)
def test_remote(self): logging.debug("") logging.debug("test_remote") init_cluster(allow_shell=True) dummy = "dummy_output" if os.path.exists(dummy): os.remove(dummy) extcode = set_as_top(ExternalCode()) extcode.timeout = 5 extcode.command = ["python", "sleep.py", "1", dummy] extcode.env_vars = {"SLEEP_DATA": "Hello world!"} extcode.external_files.extend( (FileMetadata(path="sleep.py", input=True), FileMetadata(path=dummy, output=True)) ) extcode.resources = {"n_cpus": 1} extcode.run() self.assertEqual(extcode.return_code, 0) self.assertEqual(extcode.timed_out, False) self.assertEqual(os.path.exists(dummy), True) try: with open(dummy, "r") as inp: data = inp.readline().rstrip() self.assertEqual(data, extcode.env_vars["SLEEP_DATA"]) finally: os.remove(dummy)
def test_remote(self): logging.debug('') logging.debug('test_remote') init_cluster(allow_shell=True) dummy = 'dummy_output' if os.path.exists(dummy): os.remove(dummy) extcode = set_as_top(ExternalCode()) extcode.timeout = 5 extcode.command = ['python', 'sleep.py', '1', dummy] extcode.env_vars = {'SLEEP_DATA': 'Hello world!'} extcode.external_files.extend( (FileMetadata(path='sleep.py', input=True), FileMetadata(path=dummy, output=True))) extcode.resources = {'n_cpus': 1} extcode.run() self.assertEqual(extcode.return_code, 0) self.assertEqual(extcode.timed_out, False) self.assertEqual(os.path.exists(dummy), True) try: with open(dummy, 'r') as inp: data = inp.readline().rstrip() self.assertEqual(data, extcode.env_vars['SLEEP_DATA']) finally: os.remove(dummy)
def test_remote(self): logging.debug('') logging.debug('test_remote') init_cluster(allow_shell=True) dummy = 'dummy_output' if os.path.exists(dummy): os.remove(dummy) extcode = set_as_top(ExternalCode()) extcode.timeout = 5 extcode.command = 'python sleep.py 1 %s' % dummy extcode.env_vars = {'SLEEP_DATA': 'Hello world!'} extcode.external_files.extend(( FileMetadata(path='sleep.py', input=True), FileMetadata(path=dummy, output=True) )) extcode.resources = {'n_cpus': 1} extcode.run() self.assertEqual(extcode.return_code, 0) self.assertEqual(extcode.timed_out, False) self.assertEqual(os.path.exists(dummy), True) try: with open(dummy, 'r') as inp: data = inp.readline().rstrip() self.assertEqual(data, extcode.env_vars['SLEEP_DATA']) finally: os.remove(dummy)
def setup_cluster(encrypted=True): """ Use openmdao.testing.cluster.init_cluster, but fix 'max_load'. """ name = init_cluster(encrypted, allow_shell=True) for allocator in ResourceAllocationManager.list_allocators(): if allocator.name == 'LocalHost': allocator.max_load = 1. return name
def test_remote(self): logging.debug('') logging.debug('test_remote') init_cluster(allow_shell=True) sleeper = set_as_top(Sleeper()) sleeper.env_filename = ENV_FILE sleeper.env_vars = {'SLEEP_DATA': 'Hello world!'} sleeper.external_files.append( FileMetadata(path=ENV_FILE, output=True)) sleeper.infile = FileRef(INP_FILE, sleeper, input=True) sleeper.timeout = 5 sleeper.resources = {'min_cpus': 1} sleeper.run() self.assertEqual(sleeper.return_code, 0) self.assertEqual(sleeper.timed_out, False) self.assertEqual(os.path.exists(ENV_FILE), True) with open(ENV_FILE, 'r') as inp: data = inp.readline().rstrip() self.assertEqual(data, sleeper.env_vars['SLEEP_DATA']) with sleeper.outfile.open() as inp: result = inp.read() self.assertEqual(result, INP_DATA) # Null input file. sleeper.stdin = '' assert_raises(self, 'sleeper.run()', globals(), locals(), ValueError, ": Remote execution requires stdin of DEV_NULL or" " filename, got ''") # Specified stdin, stdout, and join stderr. with open('sleep.in', 'w') as out: out.write('froboz is a pig!\n') sleeper.stdin = 'sleep.in' sleeper.stdout = 'sleep.out' sleeper.stderr = ExternalCode.STDOUT sleeper.run() # Null stderr. sleeper.stderr = None sleeper.run()
def test_unencrypted(self): logging.debug('') logging.debug('test_unencrypted') name = init_cluster(encrypted=False, allow_shell=True) self.model.driver.extra_resources = {'allocator': name} self.run_cases(sequential=False)
def test_concurrent(self): # This can always test using a LocalAllocator (forked processes). logging.debug("") logging.debug("test_concurrent") init_cluster(encrypted=True, allow_shell=True) self.run_cases(sequential=False)