runtests.js
tests are run in hierarchical order from top to bottom