SeattleTestbed / seash

Interactive vessel management tool
MIT License
0 stars 10 forks source link

seash unit tests hang #80

Closed aaaaalbert closed 10 years ago

aaaaalbert commented 10 years ago

When running unit tests for the whole seash module (or single tests), ut_seash_subprocess.py sets up a test nodemanager, and ut_seash_setup.py polls the advertise services for the test users' public key. Only when the user keys are advertised, the rest of the unit tests can be started. Otherwise, they will likely fail as they cannot find contact information for the test nodemanager.

As @us341, @choksi81, @XuefengHuang, and @asm582 have been reporting, the unit tests currently hang running the setup script. The problem is that the test user pubkeys are never found on the advertise services. I'm looking into the reasons for this now.

aaaaalbert commented 10 years ago

What a fun little bug! ut_seash_subprocess fails to start the test nodemanager (as the nodemanager repo, and thus nmmain.py, is not listed in seash's dependencies). Thus, the keys that ut_seash_setup waits for are never advertised, and it waits indefinitely.

When the nodemanager is started correctly, the problem does not appear. I'm thus adding it to the dependencies lists. I'll also make ut_seash_setup raise an error if the nodemanager appears to have a problem on startup (i.e. it or the Python interpreter prints to stderr).

There is a bigger issue hidden in this as well: utf's funcion test_module doesn't expect the _subprocess scripts of modules to ever fail. Thus, the subprocess/setup scripts cannot keep utf from starting a test run by raising errors.

aaaaalbert commented 10 years ago

I've documented utf's problem with errors in _subprocess / _setup scripts in SeattleTestbed/utf#53.