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)
Ejemplo n.º 2
0
 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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
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
Ejemplo n.º 10
0
    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)
Ejemplo n.º 12
0
 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)