Esempio n. 1
0
 def deco(func):
     deco_list = [
         timeout_dec(timeout=timeout),
         unittest.skipIf(
             (not tools.check_environ_bool('YGG_ENABLE_EXAMPLE_TESTS')),
             "Example tests not enabled."),
     ]
     for i, k in enumerate(iter_over):
         v = x[i]
         flag = None
         msg = None
         if k == 'comm':
             flag = tools.is_comm_installed(v)
         elif k == 'language':
             flag = True
             for vv in get_example_languages(name, language=v):
                 if not tools.is_lang_installed(vv):
                     flag = False
                     break
         if flag is not None:
             if msg is None:
                 msg = "%s %s not installed." % (k.title(), v)
             deco_list.append(unittest.skipIf(not flag, msg))
     for v in deco_list:
         func = v(func)
     return func
Esempio n. 2
0
def test_YggInit_langauge():
    r"""Test access to YggInit via languages that call the Python interface."""
    for language in ['matlab', 'R']:
        print(language)
        if not is_lang_installed(language):
            continue
        do_send_recv(language=language)
Esempio n. 3
0
 def run_example(self):
     r"""This runs an example in the correct language."""
     if self.yaml is None:
         if self.name is not None:
             raise unittest.SkipTest("Could not locate example %s in language %s." %
                                     (self.name, self.language))
     else:
         # Copy platform specific makefile
         if self.language == 'make':
             makefile = os.path.join(self.yamldir, 'src', 'Makefile')
             if platform._is_win:  # pragma: windows
                 make_ext = '_windows'
             else:
                 make_ext = '_linux'
             shutil.copy(makefile + make_ext, makefile)
         # Check that language is installed
         for x in self.languages_tested:
             if not tools.is_lang_installed(x):
                 raise unittest.SkipTest("%s not installed." % x)
         # Run
         os.environ.update(self.env)
         self.runner = runner.get_runner(self.yaml, namespace=self.namespace)
         self.runner.run()
         if self.expects_error:
             assert(self.runner.error_flag)
         else:
             assert(not self.runner.error_flag)
         self.check_results()
         self.cleanup()
         # Remove copied makefile
         if self.language == 'make':
             makefile = os.path.join(self.yamldir, 'src', 'Makefile')
             if os.path.isfile(makefile):
                 os.remove(makefile)
Esempio n. 4
0
def test_update_config():
    r"""Test update_config."""
    test_cfg = os.path.join(tempfile.gettempdir(), 'test.cfg')
    assert (not os.path.isfile(test_cfg))
    if not tools.is_lang_installed('matlab'):  # pragma: no matlab
        assert_warns(RuntimeWarning, config.update_config, test_cfg)
    config.update_config(test_cfg)
    assert (os.path.isfile(test_cfg))
    os.remove(test_cfg)
Esempio n. 5
0
 def run_example(self):
     r"""This runs an example in the correct language."""
     assert (self.yaml is not None)
     assert (self.name is not None)
     # Check that language is installed
     for x in self.languages_tested:
         if not tools.is_lang_installed(x):
             raise unittest.SkipTest("%s not installed." % x)
         check_enabled_languages(x)
     # Copy platform specific makefile
     if self.language == 'make':
         makefile = os.path.join(self.yamldir, 'src', 'Makefile')
         if platform._is_win:  # pragma: windows
             makedrv = import_component('model', 'make')
             assert (makedrv.get_tool('compiler').toolname == 'nmake')
             make_ext = '_windows'
         else:
             make_ext = '_linux'
         shutil.copy(makefile + make_ext, makefile)
     # Check that comm is installed
     if self.comm in ['ipc', 'IPCComm']:
         from yggdrasil.communication.IPCComm import (ipcrm_queues,
                                                      ipc_queues)
         qlist = ipc_queues()
         if qlist:  # pragma: debug
             print('Existing queues:', qlist)
             ipcrm_queues()
     # Run
     os.environ.update(self.env)
     self.runner = runner.get_runner(self.yaml,
                                     namespace=self.namespace,
                                     production_run=True)
     self.runner.run()
     if self.expects_error:
         assert (self.runner.error_flag)
     else:
         assert (not self.runner.error_flag)
     try:
         self.check_results()
     except BaseException:  # pragma: debug
         self.runner.printStatus()
         raise
     finally:
         self.example_cleanup()
         # Remove copied makefile
         if self.language == 'make':
             makefile = os.path.join(self.yamldir, 'src', 'Makefile')
             if os.path.isfile(makefile):
                 os.remove(makefile)
         self.runner = None
Esempio n. 6
0
 def run(self):
     r"""Run the integration."""
     if not tools.check_environ_bool('YGG_ENABLE_DEMO_TESTS'):
         raise unittest.SkipTest("Demo tests not enabled.")
     for x in self.languages:
         check_enabled_languages(x)
         if not tools.is_lang_installed(x):
             raise unittest.SkipTest("%s not installed." % x)
     self.runner = runner.get_runner(self.yamls,
                                     namespace=self.name,
                                     production_run=True)
     self.runner.run()
     assert (not self.runner.error_flag)
     self.runner = None
Esempio n. 7
0
 def run_example(self):
     r"""This runs an example in the correct language."""
     if self.yaml is None:
         if self.name is not None:
             raise unittest.SkipTest("Could not locate example %s in language %s." %
                                     (self.name, self.language))
     else:
         # Copy platform specific makefile
         if self.language == 'make':
             makefile = os.path.join(self.yamldir, 'src', 'Makefile')
             if platform._is_win:  # pragma: windows
                 make_ext = '_windows'
             else:
                 make_ext = '_linux'
             shutil.copy(makefile + make_ext, makefile)
         # Check that language is installed
         for x in self.languages_tested:
             if not tools.is_lang_installed(x):
                 raise unittest.SkipTest("%s not installed." % x)
         # Check that comm is installed
         if self.comm in ['ipc', 'IPCComm']:
             from yggdrasil.communication.IPCComm import (
                 ipcrm_queues, ipc_queues)
             qlist = ipc_queues()
             if qlist:  # pragma: debug
                 print('Existing queues:', qlist)
                 ipcrm_queues()
         # Run
         os.environ.update(self.env)
         self.runner = runner.get_runner(self.yaml, namespace=self.namespace)
         self.runner.run()
         if self.expects_error:
             assert(self.runner.error_flag)
         else:
             assert(not self.runner.error_flag)
         try:
             self.check_results()
         finally:
             self.cleanup()
             # Remove copied makefile
             if self.language == 'make':
                 makefile = os.path.join(self.yamldir, 'src', 'Makefile')
                 if os.path.isfile(makefile):
                     os.remove(makefile)