[Pkg-javascript-commits] [node-tap] 85/186: replace slow tests with fast tests

Bastien Roucariès rouca at moszumanska.debian.org
Fri Dec 1 16:40:46 UTC 2017


This is an automated email from the git hooks/post-receive script.

rouca pushed a commit to branch master
in repository node-tap.

commit 4ce736880b64bdc3d5eb6ca5e53d7f973f349196
Author: isaacs <i at izs.me>
Date:   Fri Nov 10 17:22:55 2017 -0800

    replace slow tests with fast tests
---
 package.json                                       |    8 +-
 ...wn.js-TAP.test.js => test-spawn.js-TAP.test.js} |   12 +-
 ...-tap.js-TAP.test.js => test-tap.js-TAP.test.js} |  126 +--
 ...est.js-TAP.test.js => test-test.js-TAP.test.js} |  370 +++----
 {test => test-legacy}/asserts.js                   |    0
 {test => test-legacy}/buffer_compare.js            |    0
 {test => test-legacy}/common.js                    |    0
 {test => test-legacy}/coverage-checks.js           |    0
 {test => test-legacy}/coverage-export.js           |    0
 {test => test-legacy}/coverage-html-no-browser.js  |    0
 {test => test-legacy}/deep-strict.js               |    0
 {test => test-legacy}/deep.js                      |    0
 {test => test-legacy}/executable-scripts.js        |    0
 {test => test-legacy}/exit-code.js                 |    0
 {test => test-legacy}/expose-gc-test.js            |    0
 {test => test-legacy}/fixtures/assert.js           |    0
 {test => test-legacy}/fixtures/cat.js              |    0
 {test => test-legacy}/fixtures/dump-args.js        |    0
 .../fixtures/fail-correct-exit.js                  |    0
 {test => test-legacy}/fixtures/fail-exit.js        |    0
 {test => test-legacy}/fixtures/fail-zero-exit.js   |    0
 {test => test-legacy}/fixtures/gc-script.js        |    0
 {test => test-legacy}/fixtures/invalid-rc-file.yml |    0
 {test => test-legacy}/fixtures/never-finish.js     |    0
 {test => test-legacy}/fixtures/success.js          |    0
 {test => test-legacy}/fixtures/trivial-success.js  |    0
 .../fixtures/using-require-hook.faux               |    0
 .../fixtures/using-require-hook.js                 |    0
 {test => test-legacy}/fixtures/valid-rc-file.yml   |    0
 {test => test-legacy}/independent-timeouts.js      |    0
 {test => test-legacy}/nested-async.js              |    0
 {test => test-legacy}/nested-test.js               |    0
 {test => test-legacy}/non-enumerable-match.js      |    0
 {test => test-legacy}/only-non-tap-output.js       |    0
 {test => test-legacy}/rcfiles.js                   |    0
 {test => test-legacy}/require-hooks.js             |    0
 {test => test-legacy}/root-no-tests.js             |    0
 {test => test-legacy}/runner-bailout-args.js       |    0
 {test => test-legacy}/runner-colors.js             |    0
 {test => test-legacy}/runner-dashdash.js           |    0
 {test => test-legacy}/runner-epipe.js              |    0
 {test => test-legacy}/runner-jobs.js               |    0
 {test => test-legacy}/runner-no-cov-args.js        |    0
 {test => test-legacy}/runner-non-zero-exit.js      |    0
 {test => test-legacy}/runner-nyc-args.js           |    0
 {test => test-legacy}/runner-output-file.js        |    0
 {test => test-legacy}/runner-path-globbing.js      |    0
 {test => test-legacy}/runner-read-stdin.js         |    0
 {test => test-legacy}/runner-save-file.js          |    0
 {test => test-legacy}/runner-test-args.js          |    0
 {test => test-legacy}/runner-timeout.js            |    0
 {test => test-legacy}/runner-unknown-arg.js        |    0
 {test => test-legacy}/runner-usage.js              |    0
 {test => test-legacy}/runner-version.js            |    0
 .../runner-warn-covering-stdin.js                  |    0
 {test => test-legacy}/spawn-failures.js            |    0
 {test => test-legacy}/test-args.js                 |    0
 {test => test-legacy}/test-bail-buffer.js          |    0
 {test => test-legacy}/test-bail.js                 |    0
 {test => test-legacy}/test-buffer.js               |    0
 {test => test-legacy}/test-test.js                 |    0
 {test => test-legacy}/test.js                      |    0
 .../test/assert-at--bail--buffer.tap               |    0
 {test => test-legacy}/test/assert-at--bail.tap     |    0
 {test => test-legacy}/test/assert-at--buffer.tap   |    0
 {test => test-legacy}/test/assert-at.js            |    0
 {test => test-legacy}/test/assert-at.tap           |    0
 .../test/assert-todo-skip--buffer.tap              |    0
 {test => test-legacy}/test/assert-todo-skip.js     |    0
 {test => test-legacy}/test/assert-todo-skip.tap    |    0
 {test => test-legacy}/test/async--buffer.tap       |    0
 {test => test-legacy}/test/async.js                |    0
 {test => test-legacy}/test/async.tap               |    0
 .../test/bail-child--bail--buffer.tap              |    0
 {test => test-legacy}/test/bail-child--bail.tap    |    0
 {test => test-legacy}/test/bail-child--buffer.tap  |    0
 {test => test-legacy}/test/bail-child.js           |    0
 {test => test-legacy}/test/bail-child.tap          |    0
 .../test/bail-error-object--bail--buffer.tap       |    0
 .../test/bail-error-object--bail.tap               |    0
 .../test/bail-error-object--buffer.tap             |    0
 {test => test-legacy}/test/bail-error-object.js    |    0
 {test => test-legacy}/test/bail-error-object.tap   |    0
 .../test/bail-fail-spawn--bail--buffer.tap         |    0
 .../test/bail-fail-spawn--bail.tap                 |    0
 .../test/bail-fail-spawn--buffer.tap               |    0
 {test => test-legacy}/test/bail-fail-spawn.js      |    0
 {test => test-legacy}/test/bail-fail-spawn.tap     |    0
 .../test/bail-teardown--bail--buffer.tap           |    0
 {test => test-legacy}/test/bail-teardown--bail.tap |    0
 .../test/bail-teardown--buffer.tap                 |    0
 .../test/bail-teardown-async--bail--buffer.tap     |    0
 .../test/bail-teardown-async--bail.tap             |    0
 .../test/bail-teardown-async--buffer.tap           |    0
 {test => test-legacy}/test/bail-teardown-async.js  |    0
 {test => test-legacy}/test/bail-teardown-async.tap |    0
 {test => test-legacy}/test/bail-teardown.js        |    0
 {test => test-legacy}/test/bail-teardown.tap       |    0
 {test => test-legacy}/test/bailout--buffer.tap     |    0
 .../bailout-with-stuff-after--bail--buffer.tap     |    0
 .../test/bailout-with-stuff-after--bail.tap        |    0
 .../test/bailout-with-stuff-after--buffer.tap      |    0
 .../test/bailout-with-stuff-after.js               |    0
 .../test/bailout-with-stuff-after.tap              |    0
 {test => test-legacy}/test/bailout.js              |    0
 {test => test-legacy}/test/bailout.tap             |    0
 .../test/before-after-each--buffer.tap             |    0
 .../test/before-after-each-async--buffer.tap       |    0
 .../test/before-after-each-async.js                |    0
 .../test/before-after-each-async.tap               |    0
 .../test/before-after-each-plan--buffer.tap        |    0
 .../test/before-after-each-plan.js                 |    0
 .../test/before-after-each-plan.tap                |    0
 .../before-after-each-promise--bail--buffer.tap    |    0
 .../test/before-after-each-promise--bail.tap       |    0
 .../test/before-after-each-promise--buffer.tap     |    0
 .../test/before-after-each-promise.js              |    0
 .../test/before-after-each-promise.tap             |    0
 .../test/before-after-each-raise--bail--buffer.tap |    0
 .../test/before-after-each-raise--bail.tap         |    0
 .../test/before-after-each-raise--buffer.tap       |    0
 .../test/before-after-each-raise.js                |    0
 .../test/before-after-each-raise.tap               |    0
 .../test/before-after-each-throw--bail--buffer.tap |    0
 .../test/before-after-each-throw--bail.tap         |    0
 .../test/before-after-each-throw--buffer.tap       |    0
 .../test/before-after-each-throw.js                |    0
 .../test/before-after-each-throw.tap               |    0
 {test => test-legacy}/test/before-after-each.js    |    0
 {test => test-legacy}/test/before-after-each.tap   |    0
 .../test/buffer-yaml--bail--buffer.tap             |    0
 {test => test-legacy}/test/buffer-yaml--bail.tap   |    0
 {test => test-legacy}/test/buffer-yaml--buffer.tap |    0
 {test => test-legacy}/test/buffer-yaml.js          |    0
 {test => test-legacy}/test/buffer-yaml.tap         |    0
 {test => test-legacy}/test/buffered--buffer.tap    |    0
 {test => test-legacy}/test/buffered.js             |    0
 {test => test-legacy}/test/buffered.tap            |    0
 .../test/catch-tap-throws--bail--buffer.tap        |    0
 .../test/catch-tap-throws--bail.tap                |    0
 .../test/catch-tap-throws--buffer.tap              |    0
 {test => test-legacy}/test/catch-tap-throws.js     |    0
 {test => test-legacy}/test/catch-tap-throws.tap    |    0
 .../test/child-sigterm-after-end--buffer.tap       |    0
 .../test/child-sigterm-after-end.js                |    0
 .../test/child-sigterm-after-end.tap               |    0
 .../test/child-text-buffer--bail--buffer.tap       |    0
 .../test/child-text-buffer--bail.tap               |    0
 .../test/child-text-buffer--buffer.tap             |    0
 {test => test-legacy}/test/child-text-buffer.js    |    0
 {test => test-legacy}/test/child-text-buffer.tap   |    0
 .../test/child-text-indentsub--bail--buffer.tap    |    0
 .../test/child-text-indentsub--bail.tap            |    0
 .../test/child-text-indentsub--buffer.tap          |    0
 {test => test-legacy}/test/child-text-indentsub.js |    0
 .../test/child-text-indentsub.tap                  |    0
 .../test/child-text-sub--bail--buffer.tap          |    0
 .../test/child-text-sub--bail.tap                  |    0
 .../test/child-text-sub--buffer.tap                |    0
 {test => test-legacy}/test/child-text-sub.js       |    0
 {test => test-legacy}/test/child-text-sub.tap      |    0
 {test => test-legacy}/test/console-log--buffer.tap |    0
 {test => test-legacy}/test/console-log.js          |    0
 {test => test-legacy}/test/console-log.tap         |    0
 .../test/deferred-comment--buffer.tap              |    0
 {test => test-legacy}/test/deferred-comment.js     |    0
 {test => test-legacy}/test/deferred-comment.tap    |    0
 .../test/descendant-fail--bail--buffer.tap         |    0
 .../test/descendant-fail--bail.tap                 |    0
 .../test/descendant-fail--buffer.tap               |    0
 {test => test-legacy}/test/descendant-fail.js      |    0
 {test => test-legacy}/test/descendant-fail.tap     |    0
 .../test/does-not-throw-message--bail--buffer.tap  |    0
 .../test/does-not-throw-message--bail.tap          |    0
 .../test/does-not-throw-message--buffer.tap        |    0
 .../test/does-not-throw-message.js                 |    0
 .../test/does-not-throw-message.tap                |    0
 .../test/domain-escaping--bail--buffer.tap         |    0
 .../test/domain-escaping--bail.tap                 |    0
 .../test/domain-escaping--buffer.tap               |    0
 {test => test-legacy}/test/domain-escaping.js      |    0
 {test => test-legacy}/test/domain-escaping.tap     |    0
 .../test/emitter-match--bail--buffer.tap           |    0
 {test => test-legacy}/test/emitter-match--bail.tap |    0
 .../test/emitter-match--buffer.tap                 |    0
 {test => test-legacy}/test/emitter-match.js        |    0
 {test => test-legacy}/test/emitter-match.tap       |    0
 {test => test-legacy}/test/empty--buffer.tap       |    0
 {test => test-legacy}/test/empty.js                |    0
 {test => test-legacy}/test/empty.tap               |    0
 .../test/end-end--bail--buffer.tap                 |    0
 {test => test-legacy}/test/end-end--bail.tap       |    0
 {test => test-legacy}/test/end-end--buffer.tap     |    0
 {test => test-legacy}/test/end-end.js              |    0
 {test => test-legacy}/test/end-end.tap             |    0
 .../test/end-event-timing--buffer.tap              |    0
 {test => test-legacy}/test/end-event-timing.js     |    0
 {test => test-legacy}/test/end-event-timing.tap    |    0
 .../test/end-exception--bail--buffer.tap           |    0
 {test => test-legacy}/test/end-exception--bail.tap |    0
 .../test/end-exception--buffer.tap                 |    0
 {test => test-legacy}/test/end-exception.js        |    0
 {test => test-legacy}/test/end-exception.tap       |    0
 .../test/equivalent--bail--buffer.tap              |    0
 {test => test-legacy}/test/equivalent--bail.tap    |    0
 {test => test-legacy}/test/equivalent--buffer.tap  |    0
 {test => test-legacy}/test/equivalent.js           |    0
 {test => test-legacy}/test/equivalent.tap          |    0
 .../test/exit-on-bailout--bail--buffer.tap         |    0
 .../test/exit-on-bailout--bail.tap                 |    0
 .../test/exit-on-bailout--buffer.tap               |    0
 {test => test-legacy}/test/exit-on-bailout.js      |    0
 {test => test-legacy}/test/exit-on-bailout.tap     |    0
 .../test/exit-on-exit--buffer.tap                  |    0
 {test => test-legacy}/test/exit-on-exit.js         |    0
 {test => test-legacy}/test/exit-on-exit.tap        |    0
 {test => test-legacy}/test/grep--buffer.tap        |    0
 {test => test-legacy}/test/grep.js                 |    0
 {test => test-legacy}/test/grep.tap                |    0
 {test => test-legacy}/test/mocha-bdd--buffer.tap   |    0
 {test => test-legacy}/test/mocha-bdd.js            |    0
 {test => test-legacy}/test/mocha-bdd.tap           |    0
 .../test/mochalike--bail--buffer.tap               |    0
 {test => test-legacy}/test/mochalike--bail.tap     |    0
 {test => test-legacy}/test/mochalike--buffer.tap   |    0
 .../test/mochalike-ok--buffer.tap                  |    0
 {test => test-legacy}/test/mochalike-ok.js         |    0
 {test => test-legacy}/test/mochalike-ok.tap        |    0
 {test => test-legacy}/test/mochalike.js            |    0
 {test => test-legacy}/test/mochalike.tap           |    0
 .../test/nesting--bail--buffer.tap                 |    0
 {test => test-legacy}/test/nesting--bail.tap       |    0
 {test => test-legacy}/test/nesting--buffer.tap     |    0
 {test => test-legacy}/test/nesting.js              |    0
 {test => test-legacy}/test/nesting.tap             |    0
 .../test/no-diags--bail--buffer.tap                |    0
 {test => test-legacy}/test/no-diags--bail.tap      |    0
 {test => test-legacy}/test/no-diags--buffer.tap    |    0
 {test => test-legacy}/test/no-diags.js             |    0
 {test => test-legacy}/test/no-diags.tap            |    0
 .../test/non-tap-output--buffer.tap                |    0
 {test => test-legacy}/test/non-tap-output.js       |    0
 {test => test-legacy}/test/non-tap-output.tap      |    0
 .../test/not-ok--bail--buffer.tap                  |    0
 {test => test-legacy}/test/not-ok--bail.tap        |    0
 {test => test-legacy}/test/not-ok--buffer.tap      |    0
 .../test/not-ok-nested--bail--buffer.tap           |    0
 {test => test-legacy}/test/not-ok-nested--bail.tap |    0
 .../test/not-ok-nested--buffer.tap                 |    0
 {test => test-legacy}/test/not-ok-nested.js        |    0
 {test => test-legacy}/test/not-ok-nested.tap       |    0
 {test => test-legacy}/test/not-ok.js               |    0
 {test => test-legacy}/test/not-ok.tap              |    0
 {test => test-legacy}/test/ok--buffer.tap          |    0
 {test => test-legacy}/test/ok-diags--buffer.tap    |    0
 {test => test-legacy}/test/ok-diags.js             |    0
 {test => test-legacy}/test/ok-diags.tap            |    0
 .../test/ok-exit-fail--bail--buffer.tap            |    0
 {test => test-legacy}/test/ok-exit-fail--bail.tap  |    0
 .../test/ok-exit-fail--buffer.tap                  |    0
 {test => test-legacy}/test/ok-exit-fail.js         |    0
 {test => test-legacy}/test/ok-exit-fail.tap        |    0
 {test => test-legacy}/test/ok.js                   |    0
 {test => test-legacy}/test/ok.tap                  |    0
 {test => test-legacy}/test/only--buffer.tap        |    0
 {test => test-legacy}/test/only.js                 |    0
 {test => test-legacy}/test/only.tap                |    0
 .../test/pending-handles--bail--buffer.tap         |    0
 .../test/pending-handles--bail.tap                 |    0
 .../test/pending-handles--buffer.tap               |    0
 {test => test-legacy}/test/pending-handles.js      |    0
 {test => test-legacy}/test/pending-handles.tap     |    0
 {test => test-legacy}/test/plan-async--buffer.tap  |    0
 {test => test-legacy}/test/plan-async.js           |    0
 {test => test-legacy}/test/plan-async.tap          |    0
 .../test/plan-failures--bail--buffer.tap           |    0
 {test => test-legacy}/test/plan-failures--bail.tap |    0
 .../test/plan-failures--buffer.tap                 |    0
 {test => test-legacy}/test/plan-failures.js        |    0
 {test => test-legacy}/test/plan-failures.tap       |    0
 .../test/plan-too-many--bail--buffer.tap           |    0
 {test => test-legacy}/test/plan-too-many--bail.tap |    0
 .../test/plan-too-many--buffer.tap                 |    0
 {test => test-legacy}/test/plan-too-many.js        |    0
 {test => test-legacy}/test/plan-too-many.tap       |    0
 .../test/pragma--bail--buffer.tap                  |    0
 {test => test-legacy}/test/pragma--bail.tap        |    0
 {test => test-legacy}/test/pragma--buffer.tap      |    0
 {test => test-legacy}/test/pragma.js               |    0
 {test => test-legacy}/test/pragma.tap              |    0
 {test => test-legacy}/test/promise--buffer.tap     |    0
 .../test/promise-fails--bail--buffer.tap           |    0
 {test => test-legacy}/test/promise-fails--bail.tap |    0
 .../test/promise-fails--buffer.tap                 |    0
 {test => test-legacy}/test/promise-fails.js        |    0
 {test => test-legacy}/test/promise-fails.tap       |    0
 .../test/promise-plan--bail--buffer.tap            |    0
 {test => test-legacy}/test/promise-plan--bail.tap  |    0
 .../test/promise-plan--buffer.tap                  |    0
 {test => test-legacy}/test/promise-plan.js         |    0
 {test => test-legacy}/test/promise-plan.tap        |    0
 .../test/promise-return--bail--buffer.tap          |    0
 .../test/promise-return--bail.tap                  |    0
 .../test/promise-return--buffer.tap                |    0
 .../test/promise-return-mocha--bail--buffer.tap    |    0
 .../test/promise-return-mocha--bail.tap            |    0
 .../test/promise-return-mocha--buffer.tap          |    0
 {test => test-legacy}/test/promise-return-mocha.js |    0
 .../test/promise-return-mocha.tap                  |    0
 {test => test-legacy}/test/promise-return.js       |    0
 {test => test-legacy}/test/promise-return.tap      |    0
 {test => test-legacy}/test/promise.js              |    0
 {test => test-legacy}/test/promise.tap             |    0
 .../test/rejects--bail--buffer.tap                 |    0
 {test => test-legacy}/test/rejects--bail.tap       |    0
 {test => test-legacy}/test/rejects--buffer.tap     |    0
 {test => test-legacy}/test/rejects.js              |    0
 {test => test-legacy}/test/rejects.tap             |    0
 .../test/root-teardown--buffer.tap                 |    0
 {test => test-legacy}/test/root-teardown.js        |    0
 {test => test-legacy}/test/root-teardown.tap       |    0
 {test => test-legacy}/test/segv--bail--buffer.tap  |    0
 {test => test-legacy}/test/segv--bail.tap          |    0
 {test => test-legacy}/test/segv--buffer.tap        |    0
 {test => test-legacy}/test/segv.js                 |    0
 {test => test-legacy}/test/segv.tap                |    0
 {test => test-legacy}/test/skip--buffer.tap        |    0
 {test => test-legacy}/test/skip-all--buffer.tap    |    0
 {test => test-legacy}/test/skip-all.js             |    0
 {test => test-legacy}/test/skip-all.tap            |    0
 {test => test-legacy}/test/skip.js                 |    0
 {test => test-legacy}/test/skip.tap                |    0
 .../test/source-map-fail--bail--buffer.tap         |    0
 .../test/source-map-fail--bail.tap                 |    0
 .../test/source-map-fail--buffer.tap               |    0
 .../test/source-map-fail-bail.tap                  |    0
 {test => test-legacy}/test/source-map-fail.coffee  |    0
 {test => test-legacy}/test/source-map-fail.js      |    0
 {test => test-legacy}/test/source-map-fail.js.map  |    0
 {test => test-legacy}/test/source-map-fail.tap     |    0
 .../test/sparse-array--bail--buffer.tap            |    0
 {test => test-legacy}/test/sparse-array--bail.tap  |    0
 .../test/sparse-array--buffer.tap                  |    0
 {test => test-legacy}/test/sparse-array.js         |    0
 {test => test-legacy}/test/sparse-array.tap        |    0
 {test => test-legacy}/test/spawn--bail--buffer.tap |    0
 {test => test-legacy}/test/spawn--bail.tap         |    0
 {test => test-legacy}/test/spawn--buffer.tap       |    0
 {test => test-legacy}/test/spawn-empty--buffer.tap |    0
 {test => test-legacy}/test/spawn-empty.js          |    0
 {test => test-legacy}/test/spawn-empty.tap         |    0
 .../test/spawn-failures--bail--buffer.tap          |    0
 .../test/spawn-failures--bail.tap                  |    0
 .../test/spawn-failures--buffer.tap                |    0
 {test => test-legacy}/test/spawn-failures.js       |    0
 {test => test-legacy}/test/spawn-failures.tap      |    0
 .../test/spawn-stderr--buffer.tap                  |    0
 {test => test-legacy}/test/spawn-stderr.js         |    0
 {test => test-legacy}/test/spawn-stderr.tap        |    0
 {test => test-legacy}/test/spawn.js                |    0
 {test => test-legacy}/test/spawn.tap               |    0
 {test => test-legacy}/test/stdin--bail--buffer.tap |    0
 {test => test-legacy}/test/stdin--bail.tap         |    0
 {test => test-legacy}/test/stdin--buffer.tap       |    0
 {test => test-legacy}/test/stdin.js                |    0
 {test => test-legacy}/test/stdin.tap               |    0
 .../test/subtest-only-options--buffer.tap          |    0
 {test => test-legacy}/test/subtest-only-options.js |    0
 .../test/subtest-only-options.tap                  |    0
 .../test/subtest-preplan--buffer.tap               |    0
 {test => test-legacy}/test/subtest-preplan.js      |    0
 {test => test-legacy}/test/subtest-preplan.tap     |    0
 .../subtest-with-name-and-function--buffer.tap     |    0
 .../test/subtest-with-name-and-function.js         |    0
 .../test/subtest-with-name-and-function.tap        |    0
 .../test/subtest-with-name-and-options--buffer.tap |    0
 .../test/subtest-with-name-and-options.js          |    0
 .../test/subtest-with-name-and-options.tap         |    0
 .../test/subtest-with-only-a-function--buffer.tap  |    0
 .../test/subtest-with-only-a-function.js           |    0
 .../test/subtest-with-only-a-function.tap          |    0
 .../test/subtest-with-only-a-name--buffer.tap      |    0
 .../test/subtest-with-only-a-name.js               |    0
 .../test/subtest-with-only-a-name.tap              |    0
 .../subtest-with-options-and-function--buffer.tap  |    0
 .../test/subtest-with-options-and-function.js      |    0
 .../test/subtest-with-options-and-function.tap     |    0
 .../test/subtest-without-arguments--buffer.tap     |    0
 .../test/subtest-without-arguments.js              |    0
 .../test/subtest-without-arguments.tap             |    0
 .../test/sync-timeout--bail--buffer.tap            |    0
 {test => test-legacy}/test/sync-timeout--bail.tap  |    0
 .../test/sync-timeout--buffer.tap                  |    0
 {test => test-legacy}/test/sync-timeout.js         |    0
 {test => test-legacy}/test/sync-timeout.tap        |    0
 .../teardown-throw-autocomplete--bail--buffer.tap  |    0
 .../test/teardown-throw-autocomplete--bail.tap     |    0
 .../test/teardown-throw-autocomplete--buffer.tap   |    0
 .../test/teardown-throw-autocomplete.js            |    0
 .../test/teardown-throw-autocomplete.tap           |    0
 .../test/teardown-timing--buffer.tap               |    0
 .../test/teardown-timing-throws--bail--buffer.tap  |    0
 .../test/teardown-timing-throws--bail.tap          |    0
 .../test/teardown-timing-throws--buffer.tap        |    0
 .../test/teardown-timing-throws.js                 |    0
 .../test/teardown-timing-throws.tap                |    0
 {test => test-legacy}/test/teardown-timing.js      |    0
 {test => test-legacy}/test/teardown-timing.tap     |    0
 {test => test-legacy}/test/throw--bail--buffer.tap |    0
 {test => test-legacy}/test/throw--bail.tap         |    0
 {test => test-legacy}/test/throw--buffer.tap       |    0
 .../test/throw-root--bail--buffer.tap              |    0
 {test => test-legacy}/test/throw-root--bail.tap    |    0
 {test => test-legacy}/test/throw-root--buffer.tap  |    0
 {test => test-legacy}/test/throw-root.js           |    0
 {test => test-legacy}/test/throw-root.tap          |    0
 .../test/throw-twice--bail--buffer.tap             |    0
 {test => test-legacy}/test/throw-twice--bail.tap   |    0
 {test => test-legacy}/test/throw-twice--buffer.tap |    0
 {test => test-legacy}/test/throw-twice.js          |    0
 {test => test-legacy}/test/throw-twice.tap         |    0
 {test => test-legacy}/test/throw.js                |    0
 {test => test-legacy}/test/throw.tap               |    0
 .../test/throws--bail--buffer.tap                  |    0
 {test => test-legacy}/test/throws--bail.tap        |    0
 {test => test-legacy}/test/throws--buffer.tap      |    0
 .../test/throws-and-plans--bail--buffer.tap        |    0
 .../test/throws-and-plans--bail.tap                |    0
 .../test/throws-and-plans--buffer.tap              |    0
 {test => test-legacy}/test/throws-and-plans.js     |    0
 {test => test-legacy}/test/throws-and-plans.tap    |    0
 {test => test-legacy}/test/throws.js               |    0
 {test => test-legacy}/test/throws.tap              |    0
 .../test/timeout--bail--buffer.tap                 |    0
 {test => test-legacy}/test/timeout--bail.tap       |    0
 {test => test-legacy}/test/timeout--buffer.tap     |    0
 .../test/timeout-via-runner--bail--buffer.tap      |    0
 .../test/timeout-via-runner--bail.tap              |    0
 .../test/timeout-via-runner--buffer.tap            |    0
 ...out-via-runner-ignore-sigterm--bail--buffer.tap |    0
 .../timeout-via-runner-ignore-sigterm--bail.tap    |    0
 .../timeout-via-runner-ignore-sigterm--buffer.tap  |    0
 .../test/timeout-via-runner-ignore-sigterm.js      |    0
 .../test/timeout-via-runner-ignore-sigterm.tap     |    0
 .../timeout-via-runner-no-plan--bail--buffer.tap   |    0
 .../test/timeout-via-runner-no-plan--bail.tap      |    0
 .../test/timeout-via-runner-no-plan--buffer.tap    |    0
 .../test/timeout-via-runner-no-plan.js             |    0
 .../test/timeout-via-runner-no-plan.tap            |    0
 {test => test-legacy}/test/timeout-via-runner.js   |    0
 {test => test-legacy}/test/timeout-via-runner.tap  |    0
 {test => test-legacy}/test/timeout.js              |    0
 {test => test-legacy}/test/timeout.tap             |    0
 {test => test-legacy}/test/todo--buffer.tap        |    0
 {test => test-legacy}/test/todo.js                 |    0
 {test => test-legacy}/test/todo.tap                |    0
 .../test/type-function--bail--buffer.tap           |    0
 {test => test-legacy}/test/type-function--bail.tap |    0
 .../test/type-function--buffer.tap                 |    0
 {test => test-legacy}/test/type-function.js        |    0
 {test => test-legacy}/test/type-function.tap       |    0
 .../test/unfinished--bail--buffer.tap              |    0
 {test => test-legacy}/test/unfinished--bail.tap    |    0
 {test => test-legacy}/test/unfinished--buffer.tap  |    0
 .../test/unfinished-empty--bail--buffer.tap        |    0
 .../test/unfinished-empty--bail.tap                |    0
 .../test/unfinished-empty--buffer.tap              |    0
 {test => test-legacy}/test/unfinished-empty.js     |    0
 {test => test-legacy}/test/unfinished-empty.tap    |    0
 .../test/unfinished-promise--bail--buffer.tap      |    0
 .../test/unfinished-promise--bail.tap              |    0
 .../test/unfinished-promise--buffer.tap            |    0
 {test => test-legacy}/test/unfinished-promise.js   |    0
 {test => test-legacy}/test/unfinished-promise.tap  |    0
 {test => test-legacy}/test/unfinished.js           |    0
 {test => test-legacy}/test/unfinished.tap          |    0
 .../test/unhandled-rejection--bail--buffer.tap     |    0
 .../test/unhandled-rejection--bail.tap             |    0
 .../test/unhandled-rejection--buffer.tap           |    0
 {test => test-legacy}/test/unhandled-rejection.js  |    0
 {test => test-legacy}/test/unhandled-rejection.tap |    0
 {test => test-legacy}/throw-after-end.js           |    0
 {test => test-legacy}/throws-arg-ordering.js       |    0
 {unit => test}/base.js                             |    2 +-
 {unit => test}/clean-yaml-object.js                |    0
 {unit => test}/diags.js                            |    0
 {unit => test}/extra-from-error.js                 |   10 +-
 {unit => test}/mocha.js                            |    0
 {unit => test}/obj-to-yaml.js                      |    0
 {unit => test}/parse-test-args.js                  |    0
 {unit => test}/point.js                            |    0
 {unit => test}/run.js                              |    0
 {unit => test}/snapshot.js                         |    0
 {unit => test}/spawn.js                            |    0
 {unit => test}/stack.js                            |    4 +-
 {unit => test}/stdin.js                            |    0
 {unit => test}/synonyms.js                         |    0
 {unit => test}/tap.js                              |    0
 test/test.js                                       | 1034 ++++++++++++++++----
 unit/test.js                                       |  874 -----------------
 500 files changed, 1114 insertions(+), 1326 deletions(-)

diff --git a/package.json b/package.json
index 75a53a4..3378150 100644
--- a/package.json
+++ b/package.json
@@ -50,10 +50,10 @@
   "repository": "https://github.com/tapjs/node-tap.git",
   "scripts": {
     "regen-fixtures": "node scripts/generate-test-test.js test/test/*.js",
-    "snap": "TAP_SNAPSHOT=1 node bin/run.js unit/*.js",
-    "unit": "node bin/run.js unit/*.js --100 --nyc-arg=--include='(lib|bin)'/*.js",
-    "test": "node bin/run.js test/*.* --coverage -t3600 -sfails",
-    "smoke": "node bin/run.js --node-arg=test/test.js test/test/*.js -j2",
+    "snap": "TAP_SNAPSHOT=1 node bin/run.js test/*.js",
+    "test": "node bin/run.js test/*.js --100 -J",
+    "test-legacy": "node bin/run.js test-legacy/*.* --coverage -t3600 -sfails",
+    "smoke": "node bin/run.js --node-arg=test-legacy/test.js test-legacy/test/*.js -j2",
     "posttest": "standard lib test",
     "t": "node bin/run.js test/*.* -sfails.txt",
     "preversion": "npm test",
diff --git a/tap-snapshots/unit-spawn.js-TAP.test.js b/tap-snapshots/test-spawn.js-TAP.test.js
similarity index 65%
rename from tap-snapshots/unit-spawn.js-TAP.test.js
rename to tap-snapshots/test-spawn.js-TAP.test.js
index 1c5e129..99aa82e 100644
--- a/tap-snapshots/unit-spawn.js-TAP.test.js
+++ b/tap-snapshots/test-spawn.js-TAP.test.js
@@ -1,5 +1,5 @@
 'use strict'
-exports[`unit/spawn.js TAP timeout KILL > undefined 1`] = `
+exports[`test/spawn.js TAP timeout KILL > undefined 1`] = `
 SIGTERM
 
 not ok 1 - timeout!
@@ -11,29 +11,29 @@ not ok 1 - timeout!
 
 `
 
-exports[`unit/spawn.js TAP skip stuff > undefined 1`] = `
+exports[`test/spawn.js TAP skip stuff > undefined 1`] = `
 TAP version 13
 ok 1 - skipper # SKIP {
     1..0
     # {time}
 }
 
-# Subtest: node ./unit/spawn.js skip-reason
+# Subtest: node ./test/spawn.js skip-reason
     1..0 # for no raisins
     # {time}
-ok 2 - node ./unit/spawn.js skip-reason # SKIP for no raisins
+ok 2 - node ./test/spawn.js skip-reason # SKIP for no raisins
 
 
 `
 
-exports[`unit/spawn.js TAP using proc event > undefined 1`] = `
+exports[`test/spawn.js TAP using proc event > undefined 1`] = `
 TAP version 13
 ok
 1..1
 
 `
 
-exports[`unit/spawn.js TAP failure to spawn > undefined 1`] = `
+exports[`test/spawn.js TAP failure to spawn > undefined 1`] = `
 
 not ok 1 - spawn something that does not exist ENOENT
   ---
diff --git a/tap-snapshots/unit-tap.js-TAP.test.js b/tap-snapshots/test-tap.js-TAP.test.js
similarity index 58%
rename from tap-snapshots/unit-tap.js-TAP.test.js
rename to tap-snapshots/test-tap.js-TAP.test.js
index 56344c1..e8af938 100644
--- a/tap-snapshots/unit-tap.js-TAP.test.js
+++ b/tap-snapshots/test-tap.js-TAP.test.js
@@ -1,9 +1,9 @@
 'use strict'
-exports[`unit/tap.js TAP ok > exit status 1`] = `
+exports[`test/tap.js TAP ok > exit status 1`] = `
 { code: 0, signal: null }
 `
 
-exports[`unit/tap.js TAP ok > stdout 1`] = `
+exports[`test/tap.js TAP ok > stdout 1`] = `
 TAP version 13
 ok 1 - fine
 1..1
@@ -11,22 +11,22 @@ ok 1 - fine
 
 `
 
-exports[`unit/tap.js TAP ok > stderr 1`] = `
+exports[`test/tap.js TAP ok > stderr 1`] = `
 
 `
 
-exports[`unit/tap.js TAP notOk > exit status 1`] = `
+exports[`test/tap.js TAP notOk > exit status 1`] = `
 { code: 1, signal: null }
 `
 
-exports[`unit/tap.js TAP notOk > stdout 1`] = `
+exports[`test/tap.js TAP notOk > stdout 1`] = `
 TAP version 13
 not ok 1 - expected
   ---
   at:
     line: #
     column: #
-    file: unit/tap.js
+    file: test/tap.js
     function: notOk
   stack: |
     {STACK}
@@ -40,44 +40,44 @@ not ok 1 - expected
 
 `
 
-exports[`unit/tap.js TAP notOk > stderr 1`] = `
+exports[`test/tap.js TAP notOk > stderr 1`] = `
 
 `
 
-exports[`unit/tap.js TAP bail > exit status 1`] = `
+exports[`test/tap.js TAP bail > exit status 1`] = `
 { code: 1, signal: null }
 `
 
-exports[`unit/tap.js TAP bail > stdout 1`] = `
+exports[`test/tap.js TAP bail > stdout 1`] = `
 TAP version 13
 Bail out! cannot proceed
 
 `
 
-exports[`unit/tap.js TAP bail > stderr 1`] = `
+exports[`test/tap.js TAP bail > stderr 1`] = `
 
 `
 
-exports[`unit/tap.js TAP plan 0 > exit status 1`] = `
+exports[`test/tap.js TAP plan 0 > exit status 1`] = `
 { code: 0, signal: null }
 `
 
-exports[`unit/tap.js TAP plan 0 > stdout 1`] = `
+exports[`test/tap.js TAP plan 0 > stdout 1`] = `
 TAP version 13
 1..0 # skip it all
 # {time}
 
 `
 
-exports[`unit/tap.js TAP plan 0 > stderr 1`] = `
+exports[`test/tap.js TAP plan 0 > stderr 1`] = `
 
 `
 
-exports[`unit/tap.js TAP plan unsatisied > exit status 1`] = `
+exports[`test/tap.js TAP plan unsatisied > exit status 1`] = `
 { code: 1, signal: null }
 `
 
-exports[`unit/tap.js TAP plan unsatisied > stdout 1`] = `
+exports[`test/tap.js TAP plan unsatisied > stdout 1`] = `
 TAP version 13
 1..99
 # test count(0) != plan(99)
@@ -86,15 +86,15 @@ TAP version 13
 
 `
 
-exports[`unit/tap.js TAP plan unsatisied > stderr 1`] = `
+exports[`test/tap.js TAP plan unsatisied > stderr 1`] = `
 
 `
 
-exports[`unit/tap.js TAP too much > exit status 1`] = `
+exports[`test/tap.js TAP too much > exit status 1`] = `
 { code: 1, signal: null }
 `
 
-exports[`unit/tap.js TAP too much > stdout 1`] = `
+exports[`test/tap.js TAP too much > stdout 1`] = `
 TAP version 13
 1..1
 ok 1 - a little
@@ -102,7 +102,7 @@ ok 1 - a little
 
 `
 
-exports[`unit/tap.js TAP too much > stderr 1`] = `
+exports[`test/tap.js TAP too much > stderr 1`] = `
 
 Error: test count exceeds plan
     {STACK}
@@ -110,11 +110,11 @@ Error: test count exceeds plan
 
 `
 
-exports[`unit/tap.js TAP stdout epipe > exit status 1`] = `
+exports[`test/tap.js TAP stdout epipe > exit status 1`] = `
 { code: 0, signal: null }
 `
 
-exports[`unit/tap.js TAP stdout epipe > stdout 1`] = `
+exports[`test/tap.js TAP stdout epipe > stdout 1`] = `
 TAP version 13
 ok 1 - this is fine
 1..1
@@ -122,15 +122,15 @@ ok 1 - this is fine
 
 `
 
-exports[`unit/tap.js TAP stdout epipe > stderr 1`] = `
+exports[`test/tap.js TAP stdout epipe > stderr 1`] = `
 
 `
 
-exports[`unit/tap.js TAP close even if exiting hard > exit status 1`] = `
+exports[`test/tap.js TAP close even if exiting hard > exit status 1`] = `
 { code: 0, signal: null }
 `
 
-exports[`unit/tap.js TAP close even if exiting hard > stdout 1`] = `
+exports[`test/tap.js TAP close even if exiting hard > stdout 1`] = `
 TAP version 13
 ok 1 - make sure, really
 1..1
@@ -138,15 +138,15 @@ ok 1 - make sure, really
 
 `
 
-exports[`unit/tap.js TAP close even if exiting hard > stderr 1`] = `
+exports[`test/tap.js TAP close even if exiting hard > stderr 1`] = `
 
 `
 
-exports[`unit/tap.js TAP unhandled promise > exit status 1`] = `
+exports[`test/tap.js TAP unhandled promise > exit status 1`] = `
 { code: 1, signal: null }
 `
 
-exports[`unit/tap.js TAP unhandled promise > stdout 1`] = `
+exports[`test/tap.js TAP unhandled promise > stdout 1`] = `
 TAP version 13
 ok 1 - fine, i promise
 not ok 2 - broken
@@ -154,7 +154,7 @@ not ok 2 - broken
   at:
     line: #
     column: #
-    file: unit/tap.js
+    file: test/tap.js
     function: unhandled promise
   stack: |
     {STACK}
@@ -169,15 +169,15 @@ not ok 2 - broken
 
 `
 
-exports[`unit/tap.js TAP unhandled promise > stderr 1`] = `
+exports[`test/tap.js TAP unhandled promise > stderr 1`] = `
 
 `
 
-exports[`unit/tap.js TAP teardown event loop > exit status 1`] = `
+exports[`test/tap.js TAP teardown event loop > exit status 1`] = `
 { code: 0, signal: null }
 `
 
-exports[`unit/tap.js TAP teardown event loop > stdout 1`] = `
+exports[`test/tap.js TAP teardown event loop > stdout 1`] = `
 TAP version 13
 ok 1 - fine
 1..1
@@ -185,15 +185,15 @@ ok 1 - fine
 
 `
 
-exports[`unit/tap.js TAP teardown event loop > stderr 1`] = `
+exports[`test/tap.js TAP teardown event loop > stderr 1`] = `
 
 `
 
-exports[`unit/tap.js TAP teardown throw > exit status 1`] = `
+exports[`test/tap.js TAP teardown throw > exit status 1`] = `
 { code: 1, signal: null }
 `
 
-exports[`unit/tap.js TAP teardown throw > stdout 1`] = `
+exports[`test/tap.js TAP teardown throw > stdout 1`] = `
 TAP version 13
 ok 1 - x
 1..1
@@ -201,7 +201,7 @@ ok 1 - x
 
 `
 
-exports[`unit/tap.js TAP teardown throw > stderr 1`] = `
+exports[`test/tap.js TAP teardown throw > stderr 1`] = `
 
 Error: poop
     {STACK}
@@ -209,18 +209,18 @@ Error: poop
 
 `
 
-exports[`unit/tap.js TAP process.exitCode polyfill > exit status 1`] = `
+exports[`test/tap.js TAP process.exitCode polyfill > exit status 1`] = `
 { code: 1, signal: null }
 `
 
-exports[`unit/tap.js TAP process.exitCode polyfill > stdout 1`] = `
+exports[`test/tap.js TAP process.exitCode polyfill > stdout 1`] = `
 TAP version 13
 not ok 1 - v0.10.420
   ---
   at:
     line: #
     column: #
-    file: unit/tap.js
+    file: test/tap.js
     function: process.exitCode polyfill
   stack: |
     {STACK}
@@ -234,15 +234,15 @@ not ok 1 - v0.10.420
 
 `
 
-exports[`unit/tap.js TAP process.exitCode polyfill > stderr 1`] = `
+exports[`test/tap.js TAP process.exitCode polyfill > stderr 1`] = `
 
 `
 
-exports[`unit/tap.js TAP TAP_DEBUG=1 > exit status 1`] = `
+exports[`test/tap.js TAP TAP_DEBUG=1 > exit status 1`] = `
 { code: 0, signal: null }
 `
 
-exports[`unit/tap.js TAP TAP_DEBUG=1 > stdout 1`] = `
+exports[`test/tap.js TAP TAP_DEBUG=1 > stdout 1`] = `
 TAP version 13
 # this is fine
 1..0
@@ -250,7 +250,7 @@ TAP version 13
 
 `
 
-exports[`unit/tap.js TAP TAP_DEBUG=1 > stderr 1`] = `
+exports[`test/tap.js TAP TAP_DEBUG=1 > stderr 1`] = `
 TAP {PID} TAP: PROCESSING(TAP) 2
 TAP {PID} TAP: > STRING
 TAP {PID} TAP: LINE "TAP version 13\\n"
@@ -272,18 +272,18 @@ TAP {PID} TAP: done processing [] false
 
 `
 
-exports[`unit/tap.js TAP NODE_DEBUG=tap > exit status 1`] = `
+exports[`test/tap.js TAP NODE_DEBUG=tap > exit status 1`] = `
 { code: 0, signal: null }
 `
 
-exports[`unit/tap.js TAP NODE_DEBUG=tap > stdout 1`] = `
+exports[`test/tap.js TAP NODE_DEBUG=tap > stdout 1`] = `
 TAP version 13
 1..0
 # {time}
 
 `
 
-exports[`unit/tap.js TAP NODE_DEBUG=tap > stderr 1`] = `
+exports[`test/tap.js TAP NODE_DEBUG=tap > stderr 1`] = `
 TAP {PID} TAP: END implicit=true
 TAP {PID} TAP: PROCESSING(TAP) 3
 TAP {PID} TAP: > STRING
@@ -300,11 +300,11 @@ TAP {PID} TAP: done processing [] false
 
 `
 
-exports[`unit/tap.js TAP TAP_GREP > exit status 1`] = `
+exports[`test/tap.js TAP TAP_GREP > exit status 1`] = `
 { code: 0, signal: null }
 `
 
-exports[`unit/tap.js TAP TAP_GREP > stdout 1`] = `
+exports[`test/tap.js TAP TAP_GREP > stdout 1`] = `
 TAP version 13
 # Subtest: axo
     ok 1 - yellow # SKIP filter: /^y$/i
@@ -331,15 +331,15 @@ ok 2 - nope # SKIP filter: /x/
 
 `
 
-exports[`unit/tap.js TAP TAP_GREP > stderr 1`] = `
+exports[`test/tap.js TAP TAP_GREP > stderr 1`] = `
 
 `
 
-exports[`unit/tap.js TAP TAP_GREP_INVERT > exit status 1`] = `
+exports[`test/tap.js TAP TAP_GREP_INVERT > exit status 1`] = `
 { code: 0, signal: null }
 `
 
-exports[`unit/tap.js TAP TAP_GREP_INVERT > stdout 1`] = `
+exports[`test/tap.js TAP TAP_GREP_INVERT > stdout 1`] = `
 TAP version 13
 # Subtest: yes this one
     ok 1 - Y # SKIP filter out: /^y$/i
@@ -366,15 +366,15 @@ ok 2 - axo # SKIP filter out: /x/
 
 `
 
-exports[`unit/tap.js TAP TAP_GREP_INVERT > stderr 1`] = `
+exports[`test/tap.js TAP TAP_GREP_INVERT > stderr 1`] = `
 
 `
 
-exports[`unit/tap.js TAP TAP_ONLY > exit status 1`] = `
+exports[`test/tap.js TAP TAP_ONLY > exit status 1`] = `
 { code: 0, signal: null }
 `
 
-exports[`unit/tap.js TAP TAP_ONLY > stdout 1`] = `
+exports[`test/tap.js TAP TAP_ONLY > stdout 1`] = `
 TAP version 13
 # Subtest: only this one
     1..0
@@ -387,15 +387,15 @@ ok 2 - not this one # SKIP filter: only
 
 `
 
-exports[`unit/tap.js TAP TAP_ONLY > stderr 1`] = `
+exports[`test/tap.js TAP TAP_ONLY > stderr 1`] = `
 
 `
 
-exports[`unit/tap.js TAP timeout sigterm > exit status 1`] = `
+exports[`test/tap.js TAP timeout sigterm > exit status 1`] = `
 { code: null, signal: 'SIGTERM' }
 `
 
-exports[`unit/tap.js TAP timeout sigterm > stdout 1`] = `
+exports[`test/tap.js TAP timeout sigterm > stdout 1`] = `
 TAP version 13
 ok 1 - fine
 not ok 2 - timeout!
@@ -413,15 +413,15 @@ not ok 2 - timeout!
 
 `
 
-exports[`unit/tap.js TAP timeout sigterm > stderr 1`] = `
+exports[`test/tap.js TAP timeout sigterm > stderr 1`] = `
 
 `
 
-exports[`unit/tap.js TAP timeout sigterm with handle > exit status 1`] = `
+exports[`test/tap.js TAP timeout sigterm with handle > exit status 1`] = `
 { code: null, signal: 'SIGTERM' }
 `
 
-exports[`unit/tap.js TAP timeout sigterm with handle > stdout 1`] = `
+exports[`test/tap.js TAP timeout sigterm with handle > stdout 1`] = `
 TAP version 13
 ok 1 - fine
 not ok 2 - timeout!
@@ -441,15 +441,15 @@ not ok 2 - timeout!
 
 `
 
-exports[`unit/tap.js TAP timeout sigterm with handle > stderr 1`] = `
+exports[`test/tap.js TAP timeout sigterm with handle > stderr 1`] = `
 
 `
 
-exports[`unit/tap.js TAP timeout sigterm many times > exit status 1`] = `
+exports[`test/tap.js TAP timeout sigterm many times > exit status 1`] = `
 { code: null, signal: 'SIGTERM' }
 `
 
-exports[`unit/tap.js TAP timeout sigterm many times > stdout 1`] = `
+exports[`test/tap.js TAP timeout sigterm many times > stdout 1`] = `
 TAP version 13
 ok 1 - fine
 not ok 2 - timeout!
@@ -469,6 +469,6 @@ not ok 2 - timeout!
 
 `
 
-exports[`unit/tap.js TAP timeout sigterm many times > stderr 1`] = `
+exports[`test/tap.js TAP timeout sigterm many times > stderr 1`] = `
 
 `
diff --git a/tap-snapshots/unit-test.js-TAP.test.js b/tap-snapshots/test-test.js-TAP.test.js
similarity index 79%
rename from tap-snapshots/unit-test.js-TAP.test.js
rename to tap-snapshots/test-test.js-TAP.test.js
index ec13883..a283c8f 100644
--- a/tap-snapshots/unit-test.js-TAP.test.js
+++ b/tap-snapshots/test-test.js-TAP.test.js
@@ -1,89 +1,89 @@
 'use strict'
-exports[`unit/test.js TAP short output checks no plan no options > no plan 1`] = `
+exports[`test/test.js TAP short output checks no plan no options > no plan 1`] = `
 TAP version 13
 ok 1 - this is fine
 1..1
 
 `
 
-exports[`unit/test.js TAP short output checks no plan buffered > no plan 1`] = `
+exports[`test/test.js TAP short output checks no plan buffered > no plan 1`] = `
 TAP version 13
 ok 1 - this is fine
 1..1
 
 `
 
-exports[`unit/test.js TAP short output checks no plan bailout > no plan 1`] = `
+exports[`test/test.js TAP short output checks no plan bailout > no plan 1`] = `
 TAP version 13
 ok 1 - this is fine
 1..1
 
 `
 
-exports[`unit/test.js TAP short output checks no plan runOnly > no plan 1`] = `
+exports[`test/test.js TAP short output checks no plan runOnly > no plan 1`] = `
 TAP version 13
 ok 1 - this is fine
 1..1
 
 `
 
-exports[`unit/test.js TAP short output checks plan no options > plan 1`] = `
+exports[`test/test.js TAP short output checks plan no options > plan 1`] = `
 TAP version 13
 1..1
 ok 1 - this is fine
 
 `
 
-exports[`unit/test.js TAP short output checks plan buffered > plan 1`] = `
+exports[`test/test.js TAP short output checks plan buffered > plan 1`] = `
 TAP version 13
 1..1
 ok 1 - this is fine
 
 `
 
-exports[`unit/test.js TAP short output checks plan bailout > plan 1`] = `
+exports[`test/test.js TAP short output checks plan bailout > plan 1`] = `
 TAP version 13
 1..1
 ok 1 - this is fine
 
 `
 
-exports[`unit/test.js TAP short output checks plan runOnly > plan 1`] = `
+exports[`test/test.js TAP short output checks plan runOnly > plan 1`] = `
 TAP version 13
 1..1
 ok 1 - this is fine
 
 `
 
-exports[`unit/test.js TAP short output checks comment no options > comment 1`] = `
+exports[`test/test.js TAP short output checks comment no options > comment 1`] = `
 TAP version 13
 # this is fine
 1..0
 
 `
 
-exports[`unit/test.js TAP short output checks comment buffered > comment 1`] = `
+exports[`test/test.js TAP short output checks comment buffered > comment 1`] = `
 TAP version 13
 # this is fine
 1..0
 
 `
 
-exports[`unit/test.js TAP short output checks comment bailout > comment 1`] = `
+exports[`test/test.js TAP short output checks comment bailout > comment 1`] = `
 TAP version 13
 # this is fine
 1..0
 
 `
 
-exports[`unit/test.js TAP short output checks comment runOnly > comment 1`] = `
+exports[`test/test.js TAP short output checks comment runOnly > comment 1`] = `
 TAP version 13
 # this is fine
 1..0
 
 `
 
-exports[`unit/test.js TAP short output checks pragma no options > pragma 1`] = `
+exports[`test/test.js TAP short output checks pragma no options > pragma 1`] = `
 TAP version 13
 pragma +strict
 pragma -strict
@@ -91,7 +91,7 @@ pragma -strict
 
 `
 
-exports[`unit/test.js TAP short output checks pragma buffered > pragma 1`] = `
+exports[`test/test.js TAP short output checks pragma buffered > pragma 1`] = `
 TAP version 13
 pragma +strict
 pragma -strict
@@ -99,7 +99,7 @@ pragma -strict
 
 `
 
-exports[`unit/test.js TAP short output checks pragma bailout > pragma 1`] = `
+exports[`test/test.js TAP short output checks pragma bailout > pragma 1`] = `
 TAP version 13
 pragma +strict
 pragma -strict
@@ -107,7 +107,7 @@ pragma -strict
 
 `
 
-exports[`unit/test.js TAP short output checks pragma runOnly > pragma 1`] = `
+exports[`test/test.js TAP short output checks pragma runOnly > pragma 1`] = `
 TAP version 13
 pragma +strict
 pragma -strict
@@ -115,14 +115,14 @@ pragma -strict
 
 `
 
-exports[`unit/test.js TAP short output checks todo no options > todo 1`] = `
+exports[`test/test.js TAP short output checks todo no options > todo 1`] = `
 TAP version 13
 not ok 1 - i will do this later # TODO
   ---
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: todo
   source: |
     tt.notOk(true, 'i will do this later', { todo: true })
@@ -133,7 +133,7 @@ not ok 2 - expect falsey value # TODO later
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: todo
   source: |
     tt.notOk(true, { todo: 'later' })
@@ -149,14 +149,14 @@ ok 6 - i did not do this later # SKIP
 
 `
 
-exports[`unit/test.js TAP short output checks todo buffered > todo 1`] = `
+exports[`test/test.js TAP short output checks todo buffered > todo 1`] = `
 TAP version 13
 not ok 1 - i will do this later # TODO
   ---
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: todo
   source: |
     tt.notOk(true, 'i will do this later', { todo: true })
@@ -167,7 +167,7 @@ not ok 2 - expect falsey value # TODO later
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: todo
   source: |
     tt.notOk(true, { todo: 'later' })
@@ -183,14 +183,14 @@ ok 6 - i did not do this later # SKIP
 
 `
 
-exports[`unit/test.js TAP short output checks todo bailout > todo 1`] = `
+exports[`test/test.js TAP short output checks todo bailout > todo 1`] = `
 TAP version 13
 not ok 1 - i will do this later # TODO
   ---
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: todo
   source: |
     tt.notOk(true, 'i will do this later', { todo: true })
@@ -201,7 +201,7 @@ not ok 2 - expect falsey value # TODO later
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: todo
   source: |
     tt.notOk(true, { todo: 'later' })
@@ -217,14 +217,14 @@ ok 6 - i did not do this later # SKIP
 
 `
 
-exports[`unit/test.js TAP short output checks todo runOnly > todo 1`] = `
+exports[`test/test.js TAP short output checks todo runOnly > todo 1`] = `
 TAP version 13
 not ok 1 - i will do this later # TODO
   ---
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: todo
   source: |
     tt.notOk(true, 'i will do this later', { todo: true })
@@ -235,7 +235,7 @@ not ok 2 - expect falsey value # TODO later
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: todo
   source: |
     tt.notOk(true, { todo: 'later' })
@@ -251,7 +251,7 @@ ok 6 - i did not do this later # SKIP filter: only
 
 `
 
-exports[`unit/test.js TAP short output checks only no options > only 1`] = `
+exports[`test/test.js TAP short output checks only no options > only 1`] = `
 TAP version 13
 # "run this with a comment" has \`only\` set but all tests run
 # Subtest: run this with a comment
@@ -271,7 +271,7 @@ ok 3 - run this with a comment # {time}
 
 `
 
-exports[`unit/test.js TAP short output checks only buffered > only 1`] = `
+exports[`test/test.js TAP short output checks only buffered > only 1`] = `
 TAP version 13
 # "run this with a comment" has \`only\` set but all tests run
 # Subtest: run this with a comment
@@ -291,7 +291,7 @@ ok 3 - run this with a comment # {time}
 
 `
 
-exports[`unit/test.js TAP short output checks only bailout > only 1`] = `
+exports[`test/test.js TAP short output checks only bailout > only 1`] = `
 TAP version 13
 # "run this with a comment" has \`only\` set but all tests run
 # Subtest: run this with a comment
@@ -311,7 +311,7 @@ ok 3 - run this with a comment # {time}
 
 `
 
-exports[`unit/test.js TAP short output checks only runOnly > only 1`] = `
+exports[`test/test.js TAP short output checks only runOnly > only 1`] = `
 TAP version 13
 # "run this with a comment" has \`only\` set but all tests run
 # Subtest: run this with a comment
@@ -331,7 +331,7 @@ ok 3 - run this with a comment # {time}
 
 `
 
-exports[`unit/test.js TAP short output checks no plan fail no options > no plan fail 1`] = `
+exports[`test/test.js TAP short output checks no plan fail no options > no plan fail 1`] = `
 TAP version 13
 not ok 1 - this is fine
 not ok 2 - (unnamed test) # TODO
@@ -339,7 +339,7 @@ not ok 2 - (unnamed test) # TODO
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: no plan fail
   source: |
     tt.fail({ todo: true })
@@ -350,7 +350,7 @@ not ok 3 - this is fine
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: no plan fail
   stack: |
     {STACK}
@@ -364,7 +364,7 @@ not ok 3 - this is fine
 
 `
 
-exports[`unit/test.js TAP short output checks no plan fail buffered > no plan fail 1`] = `
+exports[`test/test.js TAP short output checks no plan fail buffered > no plan fail 1`] = `
 TAP version 13
 not ok 1 - this is fine
 not ok 2 - (unnamed test) # TODO
@@ -372,7 +372,7 @@ not ok 2 - (unnamed test) # TODO
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: no plan fail
   source: |
     tt.fail({ todo: true })
@@ -383,7 +383,7 @@ not ok 3 - this is fine
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: no plan fail
   stack: |
     {STACK}
@@ -397,14 +397,14 @@ not ok 3 - this is fine
 
 `
 
-exports[`unit/test.js TAP short output checks no plan fail bailout > no plan fail 1`] = `
+exports[`test/test.js TAP short output checks no plan fail bailout > no plan fail 1`] = `
 TAP version 13
 not ok 1 - this is fine
 Bail out! # this is fine
 BAILOUT: "# this is fine"
 `
 
-exports[`unit/test.js TAP short output checks no plan fail runOnly > no plan fail 1`] = `
+exports[`test/test.js TAP short output checks no plan fail runOnly > no plan fail 1`] = `
 TAP version 13
 not ok 1 - this is fine
 not ok 2 - (unnamed test) # TODO
@@ -412,7 +412,7 @@ not ok 2 - (unnamed test) # TODO
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: no plan fail
   source: |
     tt.fail({ todo: true })
@@ -423,7 +423,7 @@ not ok 3 - this is fine
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: no plan fail
   stack: |
     {STACK}
@@ -437,7 +437,7 @@ not ok 3 - this is fine
 
 `
 
-exports[`unit/test.js TAP short output checks plan fail no options > plan fail 1`] = `
+exports[`test/test.js TAP short output checks plan fail no options > plan fail 1`] = `
 TAP version 13
 1..1 # expect some failure here
 not ok 1 - this is fine
@@ -445,7 +445,7 @@ not ok 1 - this is fine
 
 `
 
-exports[`unit/test.js TAP short output checks plan fail buffered > plan fail 1`] = `
+exports[`test/test.js TAP short output checks plan fail buffered > plan fail 1`] = `
 TAP version 13
 1..1 # expect some failure here
 not ok 1 - this is fine
@@ -453,7 +453,7 @@ not ok 1 - this is fine
 
 `
 
-exports[`unit/test.js TAP short output checks plan fail bailout > plan fail 1`] = `
+exports[`test/test.js TAP short output checks plan fail bailout > plan fail 1`] = `
 TAP version 13
 1..1 # expect some failure here
 not ok 1 - this is fine
@@ -461,7 +461,7 @@ Bail out! # this is fine
 BAILOUT: "# this is fine"
 `
 
-exports[`unit/test.js TAP short output checks plan fail runOnly > plan fail 1`] = `
+exports[`test/test.js TAP short output checks plan fail runOnly > plan fail 1`] = `
 TAP version 13
 1..1 # expect some failure here
 not ok 1 - this is fine
@@ -469,7 +469,7 @@ not ok 1 - this is fine
 
 `
 
-exports[`unit/test.js TAP short output checks fail then end no options > fail then end 1`] = `
+exports[`test/test.js TAP short output checks fail then end no options > fail then end 1`] = `
 TAP version 13
 # Subtest: child
     not ok 1 - this is not ok
@@ -477,7 +477,7 @@ TAP version 13
       at:
         line: #
         column: #
-        file: unit/test.js
+        file: test/test.js
         type: Test
         function: tt.test.tt
       stack: |
@@ -495,7 +495,7 @@ not ok 1 - child # {time}
 
 `
 
-exports[`unit/test.js TAP short output checks fail then end buffered > fail then end 1`] = `
+exports[`test/test.js TAP short output checks fail then end buffered > fail then end 1`] = `
 TAP version 13
 # Subtest: child
     not ok 1 - this is not ok
@@ -503,7 +503,7 @@ TAP version 13
       at:
         line: #
         column: #
-        file: unit/test.js
+        file: test/test.js
         type: Test
         function: tt.test.tt
       stack: |
@@ -521,7 +521,7 @@ not ok 1 - child # {time}
 
 `
 
-exports[`unit/test.js TAP short output checks fail then end bailout > fail then end 1`] = `
+exports[`test/test.js TAP short output checks fail then end bailout > fail then end 1`] = `
 TAP version 13
 # Subtest: child
     not ok 1 - this is not ok
@@ -529,7 +529,7 @@ TAP version 13
       at:
         line: #
         column: #
-        file: unit/test.js
+        file: test/test.js
         type: Test
         function: tt.test.tt
       stack: |
@@ -542,7 +542,7 @@ TAP version 13
 BAILOUT: "# this is not ok"
 `
 
-exports[`unit/test.js TAP short output checks fail then end runOnly > fail then end 1`] = `
+exports[`test/test.js TAP short output checks fail then end runOnly > fail then end 1`] = `
 TAP version 13
 ok 1 - child # SKIP filter: only
 1..1
@@ -550,115 +550,115 @@ ok 1 - child # SKIP filter: only
 
 `
 
-exports[`unit/test.js TAP short output checks planned skip no options > planned skip 1`] = `
+exports[`test/test.js TAP short output checks planned skip no options > planned skip 1`] = `
 TAP version 13
 1..0 # skip this one
 
 `
 
-exports[`unit/test.js TAP short output checks planned skip buffered > planned skip 1`] = `
+exports[`test/test.js TAP short output checks planned skip buffered > planned skip 1`] = `
 TAP version 13
 1..0 # skip this one
 
 `
 
-exports[`unit/test.js TAP short output checks planned skip bailout > planned skip 1`] = `
+exports[`test/test.js TAP short output checks planned skip bailout > planned skip 1`] = `
 TAP version 13
 1..0 # skip this one
 
 `
 
-exports[`unit/test.js TAP short output checks planned skip runOnly > planned skip 1`] = `
+exports[`test/test.js TAP short output checks planned skip runOnly > planned skip 1`] = `
 TAP version 13
 1..0 # skip this one
 
 `
 
-exports[`unit/test.js TAP short output checks multi-plan throws no options > multi-plan throws 1`] = `
+exports[`test/test.js TAP short output checks multi-plan throws no options > multi-plan throws 1`] = `
 TAP version 13
 1..1
 ok 1 - expected to throw
 
 `
 
-exports[`unit/test.js TAP short output checks multi-plan throws buffered > multi-plan throws 1`] = `
+exports[`test/test.js TAP short output checks multi-plan throws buffered > multi-plan throws 1`] = `
 TAP version 13
 1..1
 ok 1 - expected to throw
 
 `
 
-exports[`unit/test.js TAP short output checks multi-plan throws bailout > multi-plan throws 1`] = `
+exports[`test/test.js TAP short output checks multi-plan throws bailout > multi-plan throws 1`] = `
 TAP version 13
 1..1
 ok 1 - expected to throw
 
 `
 
-exports[`unit/test.js TAP short output checks multi-plan throws runOnly > multi-plan throws 1`] = `
+exports[`test/test.js TAP short output checks multi-plan throws runOnly > multi-plan throws 1`] = `
 TAP version 13
 1..1
 ok 1 - expected to throw
 
 `
 
-exports[`unit/test.js TAP short output checks negative plan throws no options > negative plan throws 1`] = `
+exports[`test/test.js TAP short output checks negative plan throws no options > negative plan throws 1`] = `
 TAP version 13
 ok 1 - expected to throw
 1..1
 
 `
 
-exports[`unit/test.js TAP short output checks negative plan throws buffered > negative plan throws 1`] = `
+exports[`test/test.js TAP short output checks negative plan throws buffered > negative plan throws 1`] = `
 TAP version 13
 ok 1 - expected to throw
 1..1
 
 `
 
-exports[`unit/test.js TAP short output checks negative plan throws bailout > negative plan throws 1`] = `
+exports[`test/test.js TAP short output checks negative plan throws bailout > negative plan throws 1`] = `
 TAP version 13
 ok 1 - expected to throw
 1..1
 
 `
 
-exports[`unit/test.js TAP short output checks negative plan throws runOnly > negative plan throws 1`] = `
+exports[`test/test.js TAP short output checks negative plan throws runOnly > negative plan throws 1`] = `
 TAP version 13
 ok 1 - expected to throw
 1..1
 
 `
 
-exports[`unit/test.js TAP short output checks expect fail no options > expect fail 1`] = `
+exports[`test/test.js TAP short output checks expect fail no options > expect fail 1`] = `
 TAP version 13
 1..1
 ok 1 - this is fine
 
 `
 
-exports[`unit/test.js TAP short output checks expect fail buffered > expect fail 1`] = `
+exports[`test/test.js TAP short output checks expect fail buffered > expect fail 1`] = `
 TAP version 13
 1..1
 ok 1 - this is fine
 
 `
 
-exports[`unit/test.js TAP short output checks expect fail bailout > expect fail 1`] = `
+exports[`test/test.js TAP short output checks expect fail bailout > expect fail 1`] = `
 TAP version 13
 1..1
 ok 1 - this is fine
 
 `
 
-exports[`unit/test.js TAP short output checks expect fail runOnly > expect fail 1`] = `
+exports[`test/test.js TAP short output checks expect fail runOnly > expect fail 1`] = `
 TAP version 13
 1..1
 ok 1 - this is fine
 
 `
 
-exports[`unit/test.js TAP short output checks sub no options > sub 1`] = `
+exports[`test/test.js TAP short output checks sub no options > sub 1`] = `
 TAP version 13
 ok 1 - named child # {time} {
     ok 1 - this is fine
@@ -682,7 +682,7 @@ ok 3 - promisey # {time}
 
 `
 
-exports[`unit/test.js TAP short output checks sub buffered > sub 1`] = `
+exports[`test/test.js TAP short output checks sub buffered > sub 1`] = `
 TAP version 13
 ok 1 - named child # {time} {
     ok 1 - this is fine
@@ -706,7 +706,7 @@ ok 3 - promisey # {time}
 
 `
 
-exports[`unit/test.js TAP short output checks sub bailout > sub 1`] = `
+exports[`test/test.js TAP short output checks sub bailout > sub 1`] = `
 TAP version 13
 ok 1 - named child # {time} {
     ok 1 - this is fine
@@ -730,7 +730,7 @@ ok 3 - promisey # {time}
 
 `
 
-exports[`unit/test.js TAP short output checks sub runOnly > sub 1`] = `
+exports[`test/test.js TAP short output checks sub runOnly > sub 1`] = `
 TAP version 13
 ok 1 - named child # SKIP filter: only
 ok 2 - named_function # SKIP filter: only
@@ -740,7 +740,7 @@ ok 3 - promisey # SKIP filter: only
 
 `
 
-exports[`unit/test.js TAP short output checks parallel sub no options > parallel sub 1`] = `
+exports[`test/test.js TAP short output checks parallel sub no options > parallel sub 1`] = `
 TAP version 13
 1..2
 ok 1 - slow child # {time} {
@@ -755,7 +755,7 @@ ok 2 - fast child # {time} {
 
 `
 
-exports[`unit/test.js TAP short output checks parallel sub buffered > parallel sub 1`] = `
+exports[`test/test.js TAP short output checks parallel sub buffered > parallel sub 1`] = `
 TAP version 13
 1..2
 ok 1 - slow child # {time} {
@@ -770,7 +770,7 @@ ok 2 - fast child # {time} {
 
 `
 
-exports[`unit/test.js TAP short output checks parallel sub bailout > parallel sub 1`] = `
+exports[`test/test.js TAP short output checks parallel sub bailout > parallel sub 1`] = `
 TAP version 13
 1..2
 ok 1 - slow child # {time} {
@@ -785,7 +785,7 @@ ok 2 - fast child # {time} {
 
 `
 
-exports[`unit/test.js TAP short output checks parallel sub runOnly > parallel sub 1`] = `
+exports[`test/test.js TAP short output checks parallel sub runOnly > parallel sub 1`] = `
 TAP version 13
 1..2
 ok 1 - slow child # SKIP filter: only
@@ -794,7 +794,7 @@ ok 2 - fast child # SKIP filter: only
 
 `
 
-exports[`unit/test.js TAP short output checks reasoned bailout no options > reasoned bailout 1`] = `
+exports[`test/test.js TAP short output checks reasoned bailout no options > reasoned bailout 1`] = `
 TAP version 13
 # Subtest
     ok 1 - this is fine
@@ -802,7 +802,7 @@ TAP version 13
 BAILOUT: "not fine"
 `
 
-exports[`unit/test.js TAP short output checks reasoned bailout buffered > reasoned bailout 1`] = `
+exports[`test/test.js TAP short output checks reasoned bailout buffered > reasoned bailout 1`] = `
 TAP version 13
 # Subtest
     ok 1 - this is fine
@@ -810,7 +810,7 @@ TAP version 13
 BAILOUT: "not fine"
 `
 
-exports[`unit/test.js TAP short output checks reasoned bailout bailout > reasoned bailout 1`] = `
+exports[`test/test.js TAP short output checks reasoned bailout bailout > reasoned bailout 1`] = `
 TAP version 13
 # Subtest
     ok 1 - this is fine
@@ -818,7 +818,7 @@ TAP version 13
 BAILOUT: "not fine"
 `
 
-exports[`unit/test.js TAP short output checks reasoned bailout runOnly > reasoned bailout 1`] = `
+exports[`test/test.js TAP short output checks reasoned bailout runOnly > reasoned bailout 1`] = `
 TAP version 13
 ok 1 - (unnamed test) # SKIP filter: only
 1..1
@@ -826,7 +826,7 @@ ok 1 - (unnamed test) # SKIP filter: only
 
 `
 
-exports[`unit/test.js TAP short output checks unreasonable bailout no options > unreasonable bailout 1`] = `
+exports[`test/test.js TAP short output checks unreasonable bailout no options > unreasonable bailout 1`] = `
 TAP version 13
 # Subtest
     ok 1 - this is fine
@@ -834,7 +834,7 @@ TAP version 13
 
 `
 
-exports[`unit/test.js TAP short output checks unreasonable bailout buffered > unreasonable bailout 1`] = `
+exports[`test/test.js TAP short output checks unreasonable bailout buffered > unreasonable bailout 1`] = `
 TAP version 13
 # Subtest
     ok 1 - this is fine
@@ -842,7 +842,7 @@ TAP version 13
 
 `
 
-exports[`unit/test.js TAP short output checks unreasonable bailout bailout > unreasonable bailout 1`] = `
+exports[`test/test.js TAP short output checks unreasonable bailout bailout > unreasonable bailout 1`] = `
 TAP version 13
 # Subtest
     ok 1 - this is fine
@@ -850,7 +850,7 @@ TAP version 13
 
 `
 
-exports[`unit/test.js TAP short output checks unreasonable bailout runOnly > unreasonable bailout 1`] = `
+exports[`test/test.js TAP short output checks unreasonable bailout runOnly > unreasonable bailout 1`] = `
 TAP version 13
 ok 1 - (unnamed test) # SKIP filter: only
 1..1
@@ -858,7 +858,7 @@ ok 1 - (unnamed test) # SKIP filter: only
 
 `
 
-exports[`unit/test.js TAP short output checks bailout after end no options > bailout after end 1`] = `
+exports[`test/test.js TAP short output checks bailout after end no options > bailout after end 1`] = `
 TAP version 13
 # Subtest
     ok 1 - this is fine
@@ -867,7 +867,7 @@ Bail out! not fine
 BAILOUT: "not fine"
 `
 
-exports[`unit/test.js TAP short output checks bailout after end buffered > bailout after end 1`] = `
+exports[`test/test.js TAP short output checks bailout after end buffered > bailout after end 1`] = `
 TAP version 13
 # Subtest
     ok 1 - this is fine
@@ -876,7 +876,7 @@ Bail out! not fine
 BAILOUT: "not fine"
 `
 
-exports[`unit/test.js TAP short output checks bailout after end bailout > bailout after end 1`] = `
+exports[`test/test.js TAP short output checks bailout after end bailout > bailout after end 1`] = `
 TAP version 13
 # Subtest
     ok 1 - this is fine
@@ -885,7 +885,7 @@ Bail out! not fine
 BAILOUT: "not fine"
 `
 
-exports[`unit/test.js TAP short output checks bailout after end runOnly > bailout after end 1`] = `
+exports[`test/test.js TAP short output checks bailout after end runOnly > bailout after end 1`] = `
 TAP version 13
 ok 1 - (unnamed test) # SKIP filter: only
 1..1
@@ -893,7 +893,7 @@ ok 1 - (unnamed test) # SKIP filter: only
 
 `
 
-exports[`unit/test.js TAP short output checks diags no options > diags 1`] = `
+exports[`test/test.js TAP short output checks diags no options > diags 1`] = `
 TAP version 13
 ok 1 - has diags
   ---
@@ -918,7 +918,7 @@ not ok 6 - fails without diag
 
 `
 
-exports[`unit/test.js TAP short output checks diags buffered > diags 1`] = `
+exports[`test/test.js TAP short output checks diags buffered > diags 1`] = `
 TAP version 13
 ok 1 - has diags
   ---
@@ -943,7 +943,7 @@ not ok 6 - fails without diag
 
 `
 
-exports[`unit/test.js TAP short output checks diags bailout > diags 1`] = `
+exports[`test/test.js TAP short output checks diags bailout > diags 1`] = `
 TAP version 13
 ok 1 - has diags
   ---
@@ -955,7 +955,7 @@ Bail out! # fails without diag
 BAILOUT: "# fails without diag"
 `
 
-exports[`unit/test.js TAP short output checks diags runOnly > diags 1`] = `
+exports[`test/test.js TAP short output checks diags runOnly > diags 1`] = `
 TAP version 13
 ok 1 - has diags
   ---
@@ -980,14 +980,14 @@ not ok 6 - fails without diag
 
 `
 
-exports[`unit/test.js TAP short output checks gentle thrower no options > gentle thrower 1`] = `
+exports[`test/test.js TAP short output checks gentle thrower no options > gentle thrower 1`] = `
 TAP version 13
 not ok 1 - ok
   ---
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: Object.gentle thrower
   stack: |
     {STACK}
@@ -1000,14 +1000,14 @@ not ok 1 - ok
 
 `
 
-exports[`unit/test.js TAP short output checks gentle thrower buffered > gentle thrower 1`] = `
+exports[`test/test.js TAP short output checks gentle thrower buffered > gentle thrower 1`] = `
 TAP version 13
 not ok 1 - ok
   ---
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: Object.gentle thrower
   stack: |
     {STACK}
@@ -1020,14 +1020,14 @@ not ok 1 - ok
 
 `
 
-exports[`unit/test.js TAP short output checks gentle thrower bailout > gentle thrower 1`] = `
+exports[`test/test.js TAP short output checks gentle thrower bailout > gentle thrower 1`] = `
 TAP version 13
 not ok 1 - ok
   ---
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: Object.gentle thrower
   stack: |
     {STACK}
@@ -1039,7 +1039,7 @@ Bail out! # ok
 BAILOUT: "# ok"
 `
 
-exports[`unit/test.js TAP short output checks gentle thrower runOnly > gentle thrower 1`] = `
+exports[`test/test.js TAP short output checks gentle thrower runOnly > gentle thrower 1`] = `
 TAP version 13
 not ok 1 - ok
   ---
@@ -1047,7 +1047,7 @@ not ok 1 - ok
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: Object.gentle thrower
   stack: |
     {STACK}
@@ -1060,7 +1060,7 @@ not ok 1 - ok
 
 `
 
-exports[`unit/test.js TAP short output checks child thrower no options > child thrower 1`] = `
+exports[`test/test.js TAP short output checks child thrower no options > child thrower 1`] = `
 TAP version 13
 # Subtest: child test
     not ok 1 - ok
@@ -1070,7 +1070,7 @@ TAP version 13
       at:
         line: #
         column: #
-        file: unit/test.js
+        file: test/test.js
         function: Test.tt.test.tt
       test: child test
       source: |
@@ -1086,7 +1086,7 @@ not ok 1 - child test # {time}
 
 `
 
-exports[`unit/test.js TAP short output checks child thrower buffered > child thrower 1`] = `
+exports[`test/test.js TAP short output checks child thrower buffered > child thrower 1`] = `
 TAP version 13
 # Subtest: child test
     not ok 1 - ok
@@ -1096,7 +1096,7 @@ TAP version 13
       at:
         line: #
         column: #
-        file: unit/test.js
+        file: test/test.js
         function: Test.tt.test.tt
       test: child test
       source: |
@@ -1112,7 +1112,7 @@ not ok 1 - child test # {time}
 
 `
 
-exports[`unit/test.js TAP short output checks child thrower bailout > child thrower 1`] = `
+exports[`test/test.js TAP short output checks child thrower bailout > child thrower 1`] = `
 TAP version 13
 # Subtest: child test
     not ok 1 - ok
@@ -1122,7 +1122,7 @@ TAP version 13
       at:
         line: #
         column: #
-        file: unit/test.js
+        file: test/test.js
         function: Test.tt.test.tt
       test: child test
       source: |
@@ -1133,7 +1133,7 @@ TAP version 13
 BAILOUT: "# ok"
 `
 
-exports[`unit/test.js TAP short output checks child thrower runOnly > child thrower 1`] = `
+exports[`test/test.js TAP short output checks child thrower runOnly > child thrower 1`] = `
 TAP version 13
 ok 1 - child test # SKIP filter: only
 1..1
@@ -1141,7 +1141,7 @@ ok 1 - child test # SKIP filter: only
 
 `
 
-exports[`unit/test.js TAP short output checks child end event thrower no options > child end event thrower 1`] = `
+exports[`test/test.js TAP short output checks child end event thrower no options > child end event thrower 1`] = `
 TAP version 13
 # Subtest
     1..1
@@ -1156,7 +1156,7 @@ not ok 2 - beep
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: Test.<anonymous>
   source: |
     throw new Error('beep')
@@ -1167,7 +1167,7 @@ not ok 2 - beep
 
 `
 
-exports[`unit/test.js TAP short output checks child end event thrower buffered > child end event thrower 1`] = `
+exports[`test/test.js TAP short output checks child end event thrower buffered > child end event thrower 1`] = `
 TAP version 13
 # Subtest
     1..1
@@ -1182,7 +1182,7 @@ not ok 2 - beep
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: Test.<anonymous>
   source: |
     throw new Error('beep')
@@ -1193,7 +1193,7 @@ not ok 2 - beep
 
 `
 
-exports[`unit/test.js TAP short output checks child end event thrower bailout > child end event thrower 1`] = `
+exports[`test/test.js TAP short output checks child end event thrower bailout > child end event thrower 1`] = `
 TAP version 13
 # Subtest
     1..1
@@ -1208,7 +1208,7 @@ not ok 2 - beep
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: Test.<anonymous>
   source: |
     throw new Error('beep')
@@ -1218,7 +1218,7 @@ Bail out! # beep
 BAILOUT: "# beep"
 `
 
-exports[`unit/test.js TAP short output checks child end event thrower runOnly > child end event thrower 1`] = `
+exports[`test/test.js TAP short output checks child end event thrower runOnly > child end event thrower 1`] = `
 TAP version 13
 ok 1 - (unnamed test) # SKIP filter: only
 1..1
@@ -1226,7 +1226,7 @@ ok 1 - (unnamed test) # SKIP filter: only
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff error > error 1`] = `
+exports[`test/test.js TAP assertions and weird stuff error > error 1`] = `
 TAP version 13
 ok 1 - this is not an error
 not ok 2 - this error is poop
@@ -1239,7 +1239,7 @@ not ok 2 - this error is poop
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: error
   stack: |
     {STACK}
@@ -1257,7 +1257,7 @@ not ok 3 - fail: poop
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: error
   stack: |
     {STACK}
@@ -1271,7 +1271,7 @@ not ok 4 - this error is "poop"
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: error
   stack: |
     {STACK}
@@ -1285,7 +1285,7 @@ not ok 5 - non-Error error encountered
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: error
   stack: |
     {STACK}
@@ -1301,7 +1301,7 @@ ok 7 - should not error
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff equal > equal 1`] = `
+exports[`test/test.js TAP assertions and weird stuff equal > equal 1`] = `
 TAP version 13
 not ok 1 - should be equal
   ---
@@ -1311,7 +1311,7 @@ not ok 1 - should be equal
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: equal
   stack: |
     {STACK}
@@ -1332,7 +1332,7 @@ not ok 4 - should be equal
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: equal
   stack: |
     {STACK}
@@ -1346,7 +1346,7 @@ not ok 4 - should be equal
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff not > not 1`] = `
+exports[`test/test.js TAP assertions and weird stuff not > not 1`] = `
 TAP version 13
 ok 1 - should not be equal
 ok 2 - should not be equal # SKIP
@@ -1358,7 +1358,7 @@ not ok 3 - one is not one
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: not
   stack: |
     {STACK}
@@ -1373,7 +1373,7 @@ ok 4 - should not be equal
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff same > same 1`] = `
+exports[`test/test.js TAP assertions and weird stuff same > same 1`] = `
 TAP version 13
 ok 1 - should be equivalent
 ok 2 - should be equivalent
@@ -1392,7 +1392,7 @@ not ok 7 - this one fails
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: same
   stack: |
     {STACK}
@@ -1414,7 +1414,7 @@ not ok 9 - should be equivalent strictly
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: same
   stack: |
     {STACK}
@@ -1438,7 +1438,7 @@ not ok 15 - this one fails
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: same
   stack: |
     {STACK}
@@ -1452,7 +1452,7 @@ not ok 15 - this one fails
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff match > match 1`] = `
+exports[`test/test.js TAP assertions and weird stuff match > match 1`] = `
 TAP version 13
 ok 1 - should match pattern provided
 not ok 2 - should match pattern provided
@@ -1466,7 +1466,7 @@ not ok 2 - should match pattern provided
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: match
   stack: |
     {STACK}
@@ -1486,7 +1486,7 @@ not ok 4 - should match pattern provided # TODO
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: match
   source: |
     tt.match({ a: 'b', c: /asdf/ }, { a: 'asdf', c: 1 },
@@ -1503,7 +1503,7 @@ not ok 5 - should not match pattern provided
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: match
   stack: |
     {STACK}
@@ -1523,7 +1523,7 @@ not ok 7 - a message
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: match
   stack: |
     {STACK}
@@ -1538,7 +1538,7 @@ ok 8 - should not match pattern provided # TODO
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff type > type 1`] = `
+exports[`test/test.js TAP assertions and weird stuff type > type 1`] = `
 TAP version 13
 not ok 1 - this fails
   ---
@@ -1548,7 +1548,7 @@ not ok 1 - this fails
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: type
   stack: |
     {STACK}
@@ -1566,7 +1566,7 @@ not ok 5 - fails, anonymously
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: type
   stack: |
     {STACK}
@@ -1585,7 +1585,7 @@ not ok 9 - fail: arrows are not objects
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: type
   stack: |
     {STACK}
@@ -1601,7 +1601,7 @@ ok 12 - type is EventEmitter
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff throws > throws 1`] = `
+exports[`test/test.js TAP assertions and weird stuff throws > throws 1`] = `
 TAP version 13
 ok 1 - expected to throw
 ok 2 - expected to throw
@@ -1617,7 +1617,7 @@ not ok 10 - fail: does not throw actually
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: throws
   stack: |
     {STACK}
@@ -1636,7 +1636,7 @@ ok 14 - todo # TODO
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff doesNotThrow > doesNotThrow 1`] = `
+exports[`test/test.js TAP assertions and weird stuff doesNotThrow > doesNotThrow 1`] = `
 TAP version 13
 ok 1 - this is fine
 ok 2 - expected to not throw # TODO
@@ -1647,7 +1647,7 @@ not ok 5 - fail
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: tt.doesNotThrow
   stack: |
     {STACK}
@@ -1662,7 +1662,7 @@ not ok 5 - fail
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff rejects > rejects 1`] = `
+exports[`test/test.js TAP assertions and weird stuff rejects > rejects 1`] = `
 TAP version 13
 ok 1 - promise # {time} {
     ok 1 - promise
@@ -1761,7 +1761,7 @@ not ok 19 - fail: passing promise # {time} {
       at:
         line: #
         column: #
-        file: unit/test.js
+        file: test/test.js
         function: rejects
       found: 420
       source: |
@@ -1778,7 +1778,7 @@ not ok 19 - fail: passing promise # {time} {
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff resolves > resolves 1`] = `
+exports[`test/test.js TAP assertions and weird stuff resolves > resolves 1`] = `
 TAP version 13
 ok 1 - expect resolving Promise # {time} {
     ok 1 - expect resolving Promise
@@ -1812,7 +1812,7 @@ not ok 5 - fail: no promise # {time} {
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff resolveMatch > resolveMatch 1`] = `
+exports[`test/test.js TAP assertions and weird stuff resolveMatch > resolveMatch 1`] = `
 TAP version 13
 ok 1 - expect resolving Promise # {time} {
     ok 1 - should match pattern provided
@@ -1851,7 +1851,7 @@ not ok 5 - fail: no promise # {time} {
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff test after end fails > test after end fails 1`] = `
+exports[`test/test.js TAP assertions and weird stuff test after end fails > test after end fails 1`] = `
 TAP version 13
 1..0
 STDERR:
@@ -1861,7 +1861,7 @@ Error: test after end() was called
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff plan excess > plan excess 1`] = `
+exports[`test/test.js TAP assertions and weird stuff plan excess > plan excess 1`] = `
 TAP version 13
 1..1
 ok 1 - fine
@@ -1872,7 +1872,7 @@ Error: test count exceeds plan
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff plan excess, ignored when failing > plan excess, ignored when failing 1`] = `
+exports[`test/test.js TAP assertions and weird stuff plan excess, ignored when failing > plan excess, ignored when failing 1`] = `
 TAP version 13
 1..1
 not ok 1 - expected fail
@@ -1880,7 +1880,7 @@ not ok 1 - expected fail
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff using the assertAt field > using the assertAt field 1`] = `
+exports[`test/test.js TAP assertions and weird stuff using the assertAt field > using the assertAt field 1`] = `
 TAP version 13
 1..1
 not ok 1 - expect fail
@@ -1888,7 +1888,7 @@ not ok 1 - expect fail
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     type: global
     function: baz
   source: |
@@ -1899,7 +1899,7 @@ not ok 1 - expect fail
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff using the assertStack field > using the assertStack field 1`] = `
+exports[`test/test.js TAP assertions and weird stuff using the assertStack field > using the assertStack field 1`] = `
 TAP version 13
 1..1
 not ok 1 - expect fail
@@ -1909,7 +1909,7 @@ not ok 1 - expect fail
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: baz
   source: |
     const baz = () => { tt.assertStack = stack.captureString(80); bar() }
@@ -1919,14 +1919,14 @@ not ok 1 - expect fail
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff printResult > printResult 1`] = `
+exports[`test/test.js TAP assertions and weird stuff printResult > printResult 1`] = `
 TAP version 13
 ok 1 - this is fine
 1..1
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff printResult after plan end > printResult after plan end 1`] = `
+exports[`test/test.js TAP assertions and weird stuff printResult after plan end > printResult after plan end 1`] = `
 TAP version 13
 1..0
 STDERR:
@@ -1936,7 +1936,7 @@ Error: test after end() was called
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff plan, child test, explicit end > plan, child test, explicit end 1`] = `
+exports[`test/test.js TAP assertions and weird stuff plan, child test, explicit end > plan, child test, explicit end 1`] = `
 TAP version 13
 1..1
 # Subtest
@@ -1946,7 +1946,7 @@ ok 1 # {time}
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff end multiple times > end multiple times 1`] = `
+exports[`test/test.js TAP assertions and weird stuff end multiple times > end multiple times 1`] = `
 TAP version 13
 1..1
 ok 1 - yes
@@ -1957,14 +1957,14 @@ Error: test end() method called more than once
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff error event with domainEmitter re-throws > error event with domainEmitter re-throws 1`] = `
+exports[`test/test.js TAP assertions and weird stuff error event with domainEmitter re-throws > error event with domainEmitter re-throws 1`] = `
 TAP version 13
 ok 1 - the better to this.threw you with
 1..1
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff thrower after end > thrower after end 1`] = `
+exports[`test/test.js TAP assertions and weird stuff thrower after end > thrower after end 1`] = `
 TAP version 13
 # Subtest: child
     1..1
@@ -1978,7 +1978,7 @@ not ok 2 - catch it in the parent
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: Test.tt.test.tt
   test: child
   source: |
@@ -1990,7 +1990,7 @@ not ok 2 - catch it in the parent
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff child breaks a promise > child breaks a promise 1`] = `
+exports[`test/test.js TAP assertions and weird stuff child breaks a promise > child breaks a promise 1`] = `
 TAP version 13
 # Subtest: child
     not ok 1 - poop
@@ -2000,7 +2000,7 @@ TAP version 13
       at:
         line: #
         column: #
-        file: unit/test.js
+        file: test/test.js
         function: Promise
       test: child
       source: |
@@ -2016,7 +2016,7 @@ not ok 1 - child # {time}
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff child teardown throw > child teardown throw 1`] = `
+exports[`test/test.js TAP assertions and weird stuff child teardown throw > child teardown throw 1`] = `
 TAP version 13
 # Subtest: child
     1..0
@@ -2029,7 +2029,7 @@ not ok 2 - fail
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     function: Test.tt.teardown
   test: child
   source: |
@@ -2041,7 +2041,7 @@ not ok 2 - fail
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff fullname without main > fullname without main 1`] = `
+exports[`test/test.js TAP assertions and weird stuff fullname without main > fullname without main 1`] = `
 TAP version 13
 # Subtest: child
     ok 1 - child
@@ -2053,14 +2053,14 @@ ok 2
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff comment after end > comment after end 1`] = `
+exports[`test/test.js TAP assertions and weird stuff comment after end > comment after end 1`] = `
 TAP version 13
 1..0
 # this is fine
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff grep > grep 1`] = `
+exports[`test/test.js TAP assertions and weird stuff grep > grep 1`] = `
 TAP version 13
 # Subtest: parent
     ok 1 - do not run this # SKIP filter: /x$/
@@ -2095,7 +2095,7 @@ ok 1 - parent # {time}
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff grepInvert > grepInvert 1`] = `
+exports[`test/test.js TAP assertions and weird stuff grepInvert > grepInvert 1`] = `
 TAP version 13
 # Subtest: parent
     ok 1 - do not run this x # SKIP filter out: /x$/
@@ -2130,7 +2130,7 @@ ok 1 - parent # {time}
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff autoEnd > autoEnd 1`] = `
+exports[`test/test.js TAP assertions and weird stuff autoEnd > autoEnd 1`] = `
 TAP version 13
 # Subtest: this should automatically end
     ok 1 - this is fine
@@ -2177,7 +2177,7 @@ not ok 6 - cannot create subtest after parent test end # {time}
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff endAll with test children > endAll with test children 1`] = `
+exports[`test/test.js TAP assertions and weird stuff endAll with test children > endAll with test children 1`] = `
 TAP version 13
 # Subtest: this is the test that never ends
     # Subtest: it goes on and on my friend
@@ -2191,7 +2191,7 @@ TAP version 13
               at:
                 line: #
                 column: #
-                file: unit/test.js
+                file: test/test.js
                 function: Test.tt.test.tt
               source: |
                 tt.test('misbehaving child', () => new Promise(()=>{}))
@@ -2215,7 +2215,7 @@ not ok 1 - this is the test that never ends # {time}
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff endAll with stdin > endAll with stdin 1`] = `
+exports[`test/test.js TAP assertions and weird stuff endAll with stdin > endAll with stdin 1`] = `
 TAP version 13
 # Subtest: /dev/stdin
     ok - but not ended
@@ -2231,7 +2231,7 @@ not ok 1 - /dev/stdin # {time}
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff endAll with bailout > endAll with bailout 1`] = `
+exports[`test/test.js TAP assertions and weird stuff endAll with bailout > endAll with bailout 1`] = `
 TAP version 13
 # Subtest: child
     not ok 1 - not fine
@@ -2239,7 +2239,7 @@ TAP version 13
       at:
         line: #
         column: #
-        file: unit/test.js
+        file: test/test.js
         type: Test
         function: tt.test.tt
       stack: |
@@ -2253,7 +2253,7 @@ Bail out! # not fine
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff bailout with indented subs > bailout with indented subs 1`] = `
+exports[`test/test.js TAP assertions and weird stuff bailout with indented subs > bailout with indented subs 1`] = `
 TAP version 13
 # Subtest: 1
     1..0
@@ -2264,7 +2264,7 @@ Bail out! whoops
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff bailout with buffered subs > bailout with buffered subs 1`] = `
+exports[`test/test.js TAP assertions and weird stuff bailout with buffered subs > bailout with buffered subs 1`] = `
 TAP version 13
 ok 1 - 1 # {time} {
     1..0
@@ -2274,7 +2274,7 @@ Bail out! whoops
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff silent subs > silent subs 1`] = `
+exports[`test/test.js TAP assertions and weird stuff silent subs > silent subs 1`] = `
 TAP version 13
 # Subtest: child
     1..0
@@ -2288,7 +2288,7 @@ ok 2 - child 2 # {time}
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff beforeEach afterEach > beforeEach afterEach 1`] = `
+exports[`test/test.js TAP assertions and weird stuff beforeEach afterEach > beforeEach afterEach 1`] = `
 TAP version 13
 # Subtest: child
     # Subtest: grandkid
@@ -2310,7 +2310,7 @@ parent ae child
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff timeout expiration > timeout expiration 1`] = `
+exports[`test/test.js TAP assertions and weird stuff timeout expiration > timeout expiration 1`] = `
 TAP version 13
 # Subtest: get lost buf=false
     not ok 1 - timeout!
@@ -2352,7 +2352,7 @@ not ok 2 - get lost buf=true # {time}
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff timeout with subs > timeout with subs 1`] = `
+exports[`test/test.js TAP assertions and weird stuff timeout with subs > timeout with subs 1`] = `
 TAP version 13
 # Subtest: get lost buf=false
     # Subtest: carry on
@@ -2402,7 +2402,7 @@ not ok 2 - get lost buf=true # {time}
 
 `
 
-exports[`unit/test.js TAP assertions and weird stuff timeout at the last tick > timeout at the last tick 1`] = `
+exports[`test/test.js TAP assertions and weird stuff timeout at the last tick > timeout at the last tick 1`] = `
 TAP version 13
 # Subtest: work it harder buf=false
     1..1
@@ -2437,7 +2437,7 @@ not ok 4 - timeout!
 
 `
 
-exports[`unit/test.js TAP addAssert > using the custom isUrl assertion 1`] = `
+exports[`test/test.js TAP addAssert > using the custom isUrl assertion 1`] = `
 TAP version 13
 not ok 1 - expect a valid http/https url
   ---
@@ -2462,7 +2462,7 @@ not ok 1 - expect a valid http/https url
   at:
     line: #
     column: #
-    file: unit/test.js
+    file: test/test.js
     type: Test
     function: t.test.t
   stack: |
@@ -2479,7 +2479,7 @@ ok 3 - expect a valid http/https url # SKIP
 
 `
 
-exports[`unit/test.js TAP snapshots > saving the snapshot 1`] = `
+exports[`test/test.js TAP snapshots > saving the snapshot 1`] = `
 TAP version 13
 # Subtest: child test
     ok 1 - an object
@@ -2493,7 +2493,7 @@ ok 1 - child test # {time}
 
 `
 
-exports[`unit/test.js TAP snapshots > verifying the snapshot 1`] = `
+exports[`test/test.js TAP snapshots > verifying the snapshot 1`] = `
 TAP version 13
 # Subtest: child test
     ok 1 - an object
diff --git a/test/asserts.js b/test-legacy/asserts.js
similarity index 100%
rename from test/asserts.js
rename to test-legacy/asserts.js
diff --git a/test/buffer_compare.js b/test-legacy/buffer_compare.js
similarity index 100%
rename from test/buffer_compare.js
rename to test-legacy/buffer_compare.js
diff --git a/test/common.js b/test-legacy/common.js
similarity index 100%
rename from test/common.js
rename to test-legacy/common.js
diff --git a/test/coverage-checks.js b/test-legacy/coverage-checks.js
similarity index 100%
rename from test/coverage-checks.js
rename to test-legacy/coverage-checks.js
diff --git a/test/coverage-export.js b/test-legacy/coverage-export.js
similarity index 100%
rename from test/coverage-export.js
rename to test-legacy/coverage-export.js
diff --git a/test/coverage-html-no-browser.js b/test-legacy/coverage-html-no-browser.js
similarity index 100%
rename from test/coverage-html-no-browser.js
rename to test-legacy/coverage-html-no-browser.js
diff --git a/test/deep-strict.js b/test-legacy/deep-strict.js
similarity index 100%
rename from test/deep-strict.js
rename to test-legacy/deep-strict.js
diff --git a/test/deep.js b/test-legacy/deep.js
similarity index 100%
rename from test/deep.js
rename to test-legacy/deep.js
diff --git a/test/executable-scripts.js b/test-legacy/executable-scripts.js
similarity index 100%
rename from test/executable-scripts.js
rename to test-legacy/executable-scripts.js
diff --git a/test/exit-code.js b/test-legacy/exit-code.js
similarity index 100%
rename from test/exit-code.js
rename to test-legacy/exit-code.js
diff --git a/test/expose-gc-test.js b/test-legacy/expose-gc-test.js
similarity index 100%
rename from test/expose-gc-test.js
rename to test-legacy/expose-gc-test.js
diff --git a/test/fixtures/assert.js b/test-legacy/fixtures/assert.js
similarity index 100%
rename from test/fixtures/assert.js
rename to test-legacy/fixtures/assert.js
diff --git a/test/fixtures/cat.js b/test-legacy/fixtures/cat.js
similarity index 100%
rename from test/fixtures/cat.js
rename to test-legacy/fixtures/cat.js
diff --git a/test/fixtures/dump-args.js b/test-legacy/fixtures/dump-args.js
similarity index 100%
rename from test/fixtures/dump-args.js
rename to test-legacy/fixtures/dump-args.js
diff --git a/test/fixtures/fail-correct-exit.js b/test-legacy/fixtures/fail-correct-exit.js
similarity index 100%
rename from test/fixtures/fail-correct-exit.js
rename to test-legacy/fixtures/fail-correct-exit.js
diff --git a/test/fixtures/fail-exit.js b/test-legacy/fixtures/fail-exit.js
similarity index 100%
rename from test/fixtures/fail-exit.js
rename to test-legacy/fixtures/fail-exit.js
diff --git a/test/fixtures/fail-zero-exit.js b/test-legacy/fixtures/fail-zero-exit.js
similarity index 100%
rename from test/fixtures/fail-zero-exit.js
rename to test-legacy/fixtures/fail-zero-exit.js
diff --git a/test/fixtures/gc-script.js b/test-legacy/fixtures/gc-script.js
similarity index 100%
rename from test/fixtures/gc-script.js
rename to test-legacy/fixtures/gc-script.js
diff --git a/test/fixtures/invalid-rc-file.yml b/test-legacy/fixtures/invalid-rc-file.yml
similarity index 100%
rename from test/fixtures/invalid-rc-file.yml
rename to test-legacy/fixtures/invalid-rc-file.yml
diff --git a/test/fixtures/never-finish.js b/test-legacy/fixtures/never-finish.js
similarity index 100%
rename from test/fixtures/never-finish.js
rename to test-legacy/fixtures/never-finish.js
diff --git a/test/fixtures/success.js b/test-legacy/fixtures/success.js
similarity index 100%
rename from test/fixtures/success.js
rename to test-legacy/fixtures/success.js
diff --git a/test/fixtures/trivial-success.js b/test-legacy/fixtures/trivial-success.js
similarity index 100%
rename from test/fixtures/trivial-success.js
rename to test-legacy/fixtures/trivial-success.js
diff --git a/test/fixtures/using-require-hook.faux b/test-legacy/fixtures/using-require-hook.faux
similarity index 100%
rename from test/fixtures/using-require-hook.faux
rename to test-legacy/fixtures/using-require-hook.faux
diff --git a/test/fixtures/using-require-hook.js b/test-legacy/fixtures/using-require-hook.js
similarity index 100%
rename from test/fixtures/using-require-hook.js
rename to test-legacy/fixtures/using-require-hook.js
diff --git a/test/fixtures/valid-rc-file.yml b/test-legacy/fixtures/valid-rc-file.yml
similarity index 100%
rename from test/fixtures/valid-rc-file.yml
rename to test-legacy/fixtures/valid-rc-file.yml
diff --git a/test/independent-timeouts.js b/test-legacy/independent-timeouts.js
similarity index 100%
rename from test/independent-timeouts.js
rename to test-legacy/independent-timeouts.js
diff --git a/test/nested-async.js b/test-legacy/nested-async.js
similarity index 100%
rename from test/nested-async.js
rename to test-legacy/nested-async.js
diff --git a/test/nested-test.js b/test-legacy/nested-test.js
similarity index 100%
rename from test/nested-test.js
rename to test-legacy/nested-test.js
diff --git a/test/non-enumerable-match.js b/test-legacy/non-enumerable-match.js
similarity index 100%
rename from test/non-enumerable-match.js
rename to test-legacy/non-enumerable-match.js
diff --git a/test/only-non-tap-output.js b/test-legacy/only-non-tap-output.js
similarity index 100%
rename from test/only-non-tap-output.js
rename to test-legacy/only-non-tap-output.js
diff --git a/test/rcfiles.js b/test-legacy/rcfiles.js
similarity index 100%
rename from test/rcfiles.js
rename to test-legacy/rcfiles.js
diff --git a/test/require-hooks.js b/test-legacy/require-hooks.js
similarity index 100%
rename from test/require-hooks.js
rename to test-legacy/require-hooks.js
diff --git a/test/root-no-tests.js b/test-legacy/root-no-tests.js
similarity index 100%
rename from test/root-no-tests.js
rename to test-legacy/root-no-tests.js
diff --git a/test/runner-bailout-args.js b/test-legacy/runner-bailout-args.js
similarity index 100%
rename from test/runner-bailout-args.js
rename to test-legacy/runner-bailout-args.js
diff --git a/test/runner-colors.js b/test-legacy/runner-colors.js
similarity index 100%
rename from test/runner-colors.js
rename to test-legacy/runner-colors.js
diff --git a/test/runner-dashdash.js b/test-legacy/runner-dashdash.js
similarity index 100%
rename from test/runner-dashdash.js
rename to test-legacy/runner-dashdash.js
diff --git a/test/runner-epipe.js b/test-legacy/runner-epipe.js
similarity index 100%
rename from test/runner-epipe.js
rename to test-legacy/runner-epipe.js
diff --git a/test/runner-jobs.js b/test-legacy/runner-jobs.js
similarity index 100%
rename from test/runner-jobs.js
rename to test-legacy/runner-jobs.js
diff --git a/test/runner-no-cov-args.js b/test-legacy/runner-no-cov-args.js
similarity index 100%
rename from test/runner-no-cov-args.js
rename to test-legacy/runner-no-cov-args.js
diff --git a/test/runner-non-zero-exit.js b/test-legacy/runner-non-zero-exit.js
similarity index 100%
rename from test/runner-non-zero-exit.js
rename to test-legacy/runner-non-zero-exit.js
diff --git a/test/runner-nyc-args.js b/test-legacy/runner-nyc-args.js
similarity index 100%
rename from test/runner-nyc-args.js
rename to test-legacy/runner-nyc-args.js
diff --git a/test/runner-output-file.js b/test-legacy/runner-output-file.js
similarity index 100%
rename from test/runner-output-file.js
rename to test-legacy/runner-output-file.js
diff --git a/test/runner-path-globbing.js b/test-legacy/runner-path-globbing.js
similarity index 100%
rename from test/runner-path-globbing.js
rename to test-legacy/runner-path-globbing.js
diff --git a/test/runner-read-stdin.js b/test-legacy/runner-read-stdin.js
similarity index 100%
rename from test/runner-read-stdin.js
rename to test-legacy/runner-read-stdin.js
diff --git a/test/runner-save-file.js b/test-legacy/runner-save-file.js
similarity index 100%
rename from test/runner-save-file.js
rename to test-legacy/runner-save-file.js
diff --git a/test/runner-test-args.js b/test-legacy/runner-test-args.js
similarity index 100%
rename from test/runner-test-args.js
rename to test-legacy/runner-test-args.js
diff --git a/test/runner-timeout.js b/test-legacy/runner-timeout.js
similarity index 100%
rename from test/runner-timeout.js
rename to test-legacy/runner-timeout.js
diff --git a/test/runner-unknown-arg.js b/test-legacy/runner-unknown-arg.js
similarity index 100%
rename from test/runner-unknown-arg.js
rename to test-legacy/runner-unknown-arg.js
diff --git a/test/runner-usage.js b/test-legacy/runner-usage.js
similarity index 100%
rename from test/runner-usage.js
rename to test-legacy/runner-usage.js
diff --git a/test/runner-version.js b/test-legacy/runner-version.js
similarity index 100%
rename from test/runner-version.js
rename to test-legacy/runner-version.js
diff --git a/test/runner-warn-covering-stdin.js b/test-legacy/runner-warn-covering-stdin.js
similarity index 100%
rename from test/runner-warn-covering-stdin.js
rename to test-legacy/runner-warn-covering-stdin.js
diff --git a/test/spawn-failures.js b/test-legacy/spawn-failures.js
similarity index 100%
rename from test/spawn-failures.js
rename to test-legacy/spawn-failures.js
diff --git a/test/test-args.js b/test-legacy/test-args.js
similarity index 100%
rename from test/test-args.js
rename to test-legacy/test-args.js
diff --git a/test/test-bail-buffer.js b/test-legacy/test-bail-buffer.js
similarity index 100%
rename from test/test-bail-buffer.js
rename to test-legacy/test-bail-buffer.js
diff --git a/test/test-bail.js b/test-legacy/test-bail.js
similarity index 100%
rename from test/test-bail.js
rename to test-legacy/test-bail.js
diff --git a/test/test-buffer.js b/test-legacy/test-buffer.js
similarity index 100%
rename from test/test-buffer.js
rename to test-legacy/test-buffer.js
diff --git a/test/test-test.js b/test-legacy/test-test.js
similarity index 100%
rename from test/test-test.js
rename to test-legacy/test-test.js
diff --git a/test/test.js b/test-legacy/test.js
similarity index 100%
copy from test/test.js
copy to test-legacy/test.js
diff --git a/test/test/assert-at--bail--buffer.tap b/test-legacy/test/assert-at--bail--buffer.tap
similarity index 100%
rename from test/test/assert-at--bail--buffer.tap
rename to test-legacy/test/assert-at--bail--buffer.tap
diff --git a/test/test/assert-at--bail.tap b/test-legacy/test/assert-at--bail.tap
similarity index 100%
rename from test/test/assert-at--bail.tap
rename to test-legacy/test/assert-at--bail.tap
diff --git a/test/test/assert-at--buffer.tap b/test-legacy/test/assert-at--buffer.tap
similarity index 100%
rename from test/test/assert-at--buffer.tap
rename to test-legacy/test/assert-at--buffer.tap
diff --git a/test/test/assert-at.js b/test-legacy/test/assert-at.js
similarity index 100%
rename from test/test/assert-at.js
rename to test-legacy/test/assert-at.js
diff --git a/test/test/assert-at.tap b/test-legacy/test/assert-at.tap
similarity index 100%
rename from test/test/assert-at.tap
rename to test-legacy/test/assert-at.tap
diff --git a/test/test/assert-todo-skip--buffer.tap b/test-legacy/test/assert-todo-skip--buffer.tap
similarity index 100%
rename from test/test/assert-todo-skip--buffer.tap
rename to test-legacy/test/assert-todo-skip--buffer.tap
diff --git a/test/test/assert-todo-skip.js b/test-legacy/test/assert-todo-skip.js
similarity index 100%
rename from test/test/assert-todo-skip.js
rename to test-legacy/test/assert-todo-skip.js
diff --git a/test/test/assert-todo-skip.tap b/test-legacy/test/assert-todo-skip.tap
similarity index 100%
rename from test/test/assert-todo-skip.tap
rename to test-legacy/test/assert-todo-skip.tap
diff --git a/test/test/async--buffer.tap b/test-legacy/test/async--buffer.tap
similarity index 100%
rename from test/test/async--buffer.tap
rename to test-legacy/test/async--buffer.tap
diff --git a/test/test/async.js b/test-legacy/test/async.js
similarity index 100%
rename from test/test/async.js
rename to test-legacy/test/async.js
diff --git a/test/test/async.tap b/test-legacy/test/async.tap
similarity index 100%
rename from test/test/async.tap
rename to test-legacy/test/async.tap
diff --git a/test/test/bail-child--bail--buffer.tap b/test-legacy/test/bail-child--bail--buffer.tap
similarity index 100%
rename from test/test/bail-child--bail--buffer.tap
rename to test-legacy/test/bail-child--bail--buffer.tap
diff --git a/test/test/bail-child--bail.tap b/test-legacy/test/bail-child--bail.tap
similarity index 100%
rename from test/test/bail-child--bail.tap
rename to test-legacy/test/bail-child--bail.tap
diff --git a/test/test/bail-child--buffer.tap b/test-legacy/test/bail-child--buffer.tap
similarity index 100%
rename from test/test/bail-child--buffer.tap
rename to test-legacy/test/bail-child--buffer.tap
diff --git a/test/test/bail-child.js b/test-legacy/test/bail-child.js
similarity index 100%
rename from test/test/bail-child.js
rename to test-legacy/test/bail-child.js
diff --git a/test/test/bail-child.tap b/test-legacy/test/bail-child.tap
similarity index 100%
rename from test/test/bail-child.tap
rename to test-legacy/test/bail-child.tap
diff --git a/test/test/bail-error-object--bail--buffer.tap b/test-legacy/test/bail-error-object--bail--buffer.tap
similarity index 100%
rename from test/test/bail-error-object--bail--buffer.tap
rename to test-legacy/test/bail-error-object--bail--buffer.tap
diff --git a/test/test/bail-error-object--bail.tap b/test-legacy/test/bail-error-object--bail.tap
similarity index 100%
rename from test/test/bail-error-object--bail.tap
rename to test-legacy/test/bail-error-object--bail.tap
diff --git a/test/test/bail-error-object--buffer.tap b/test-legacy/test/bail-error-object--buffer.tap
similarity index 100%
rename from test/test/bail-error-object--buffer.tap
rename to test-legacy/test/bail-error-object--buffer.tap
diff --git a/test/test/bail-error-object.js b/test-legacy/test/bail-error-object.js
similarity index 100%
rename from test/test/bail-error-object.js
rename to test-legacy/test/bail-error-object.js
diff --git a/test/test/bail-error-object.tap b/test-legacy/test/bail-error-object.tap
similarity index 100%
rename from test/test/bail-error-object.tap
rename to test-legacy/test/bail-error-object.tap
diff --git a/test/test/bail-fail-spawn--bail--buffer.tap b/test-legacy/test/bail-fail-spawn--bail--buffer.tap
similarity index 100%
rename from test/test/bail-fail-spawn--bail--buffer.tap
rename to test-legacy/test/bail-fail-spawn--bail--buffer.tap
diff --git a/test/test/bail-fail-spawn--bail.tap b/test-legacy/test/bail-fail-spawn--bail.tap
similarity index 100%
rename from test/test/bail-fail-spawn--bail.tap
rename to test-legacy/test/bail-fail-spawn--bail.tap
diff --git a/test/test/bail-fail-spawn--buffer.tap b/test-legacy/test/bail-fail-spawn--buffer.tap
similarity index 100%
rename from test/test/bail-fail-spawn--buffer.tap
rename to test-legacy/test/bail-fail-spawn--buffer.tap
diff --git a/test/test/bail-fail-spawn.js b/test-legacy/test/bail-fail-spawn.js
similarity index 100%
rename from test/test/bail-fail-spawn.js
rename to test-legacy/test/bail-fail-spawn.js
diff --git a/test/test/bail-fail-spawn.tap b/test-legacy/test/bail-fail-spawn.tap
similarity index 100%
rename from test/test/bail-fail-spawn.tap
rename to test-legacy/test/bail-fail-spawn.tap
diff --git a/test/test/bail-teardown--bail--buffer.tap b/test-legacy/test/bail-teardown--bail--buffer.tap
similarity index 100%
rename from test/test/bail-teardown--bail--buffer.tap
rename to test-legacy/test/bail-teardown--bail--buffer.tap
diff --git a/test/test/bail-teardown--bail.tap b/test-legacy/test/bail-teardown--bail.tap
similarity index 100%
rename from test/test/bail-teardown--bail.tap
rename to test-legacy/test/bail-teardown--bail.tap
diff --git a/test/test/bail-teardown--buffer.tap b/test-legacy/test/bail-teardown--buffer.tap
similarity index 100%
rename from test/test/bail-teardown--buffer.tap
rename to test-legacy/test/bail-teardown--buffer.tap
diff --git a/test/test/bail-teardown-async--bail--buffer.tap b/test-legacy/test/bail-teardown-async--bail--buffer.tap
similarity index 100%
rename from test/test/bail-teardown-async--bail--buffer.tap
rename to test-legacy/test/bail-teardown-async--bail--buffer.tap
diff --git a/test/test/bail-teardown-async--bail.tap b/test-legacy/test/bail-teardown-async--bail.tap
similarity index 100%
rename from test/test/bail-teardown-async--bail.tap
rename to test-legacy/test/bail-teardown-async--bail.tap
diff --git a/test/test/bail-teardown-async--buffer.tap b/test-legacy/test/bail-teardown-async--buffer.tap
similarity index 100%
rename from test/test/bail-teardown-async--buffer.tap
rename to test-legacy/test/bail-teardown-async--buffer.tap
diff --git a/test/test/bail-teardown-async.js b/test-legacy/test/bail-teardown-async.js
similarity index 100%
rename from test/test/bail-teardown-async.js
rename to test-legacy/test/bail-teardown-async.js
diff --git a/test/test/bail-teardown-async.tap b/test-legacy/test/bail-teardown-async.tap
similarity index 100%
rename from test/test/bail-teardown-async.tap
rename to test-legacy/test/bail-teardown-async.tap
diff --git a/test/test/bail-teardown.js b/test-legacy/test/bail-teardown.js
similarity index 100%
rename from test/test/bail-teardown.js
rename to test-legacy/test/bail-teardown.js
diff --git a/test/test/bail-teardown.tap b/test-legacy/test/bail-teardown.tap
similarity index 100%
rename from test/test/bail-teardown.tap
rename to test-legacy/test/bail-teardown.tap
diff --git a/test/test/bailout--buffer.tap b/test-legacy/test/bailout--buffer.tap
similarity index 100%
rename from test/test/bailout--buffer.tap
rename to test-legacy/test/bailout--buffer.tap
diff --git a/test/test/bailout-with-stuff-after--bail--buffer.tap b/test-legacy/test/bailout-with-stuff-after--bail--buffer.tap
similarity index 100%
rename from test/test/bailout-with-stuff-after--bail--buffer.tap
rename to test-legacy/test/bailout-with-stuff-after--bail--buffer.tap
diff --git a/test/test/bailout-with-stuff-after--bail.tap b/test-legacy/test/bailout-with-stuff-after--bail.tap
similarity index 100%
rename from test/test/bailout-with-stuff-after--bail.tap
rename to test-legacy/test/bailout-with-stuff-after--bail.tap
diff --git a/test/test/bailout-with-stuff-after--buffer.tap b/test-legacy/test/bailout-with-stuff-after--buffer.tap
similarity index 100%
rename from test/test/bailout-with-stuff-after--buffer.tap
rename to test-legacy/test/bailout-with-stuff-after--buffer.tap
diff --git a/test/test/bailout-with-stuff-after.js b/test-legacy/test/bailout-with-stuff-after.js
similarity index 100%
rename from test/test/bailout-with-stuff-after.js
rename to test-legacy/test/bailout-with-stuff-after.js
diff --git a/test/test/bailout-with-stuff-after.tap b/test-legacy/test/bailout-with-stuff-after.tap
similarity index 100%
rename from test/test/bailout-with-stuff-after.tap
rename to test-legacy/test/bailout-with-stuff-after.tap
diff --git a/test/test/bailout.js b/test-legacy/test/bailout.js
similarity index 100%
rename from test/test/bailout.js
rename to test-legacy/test/bailout.js
diff --git a/test/test/bailout.tap b/test-legacy/test/bailout.tap
similarity index 100%
rename from test/test/bailout.tap
rename to test-legacy/test/bailout.tap
diff --git a/test/test/before-after-each--buffer.tap b/test-legacy/test/before-after-each--buffer.tap
similarity index 100%
rename from test/test/before-after-each--buffer.tap
rename to test-legacy/test/before-after-each--buffer.tap
diff --git a/test/test/before-after-each-async--buffer.tap b/test-legacy/test/before-after-each-async--buffer.tap
similarity index 100%
rename from test/test/before-after-each-async--buffer.tap
rename to test-legacy/test/before-after-each-async--buffer.tap
diff --git a/test/test/before-after-each-async.js b/test-legacy/test/before-after-each-async.js
similarity index 100%
rename from test/test/before-after-each-async.js
rename to test-legacy/test/before-after-each-async.js
diff --git a/test/test/before-after-each-async.tap b/test-legacy/test/before-after-each-async.tap
similarity index 100%
rename from test/test/before-after-each-async.tap
rename to test-legacy/test/before-after-each-async.tap
diff --git a/test/test/before-after-each-plan--buffer.tap b/test-legacy/test/before-after-each-plan--buffer.tap
similarity index 100%
rename from test/test/before-after-each-plan--buffer.tap
rename to test-legacy/test/before-after-each-plan--buffer.tap
diff --git a/test/test/before-after-each-plan.js b/test-legacy/test/before-after-each-plan.js
similarity index 100%
rename from test/test/before-after-each-plan.js
rename to test-legacy/test/before-after-each-plan.js
diff --git a/test/test/before-after-each-plan.tap b/test-legacy/test/before-after-each-plan.tap
similarity index 100%
rename from test/test/before-after-each-plan.tap
rename to test-legacy/test/before-after-each-plan.tap
diff --git a/test/test/before-after-each-promise--bail--buffer.tap b/test-legacy/test/before-after-each-promise--bail--buffer.tap
similarity index 100%
rename from test/test/before-after-each-promise--bail--buffer.tap
rename to test-legacy/test/before-after-each-promise--bail--buffer.tap
diff --git a/test/test/before-after-each-promise--bail.tap b/test-legacy/test/before-after-each-promise--bail.tap
similarity index 100%
rename from test/test/before-after-each-promise--bail.tap
rename to test-legacy/test/before-after-each-promise--bail.tap
diff --git a/test/test/before-after-each-promise--buffer.tap b/test-legacy/test/before-after-each-promise--buffer.tap
similarity index 100%
rename from test/test/before-after-each-promise--buffer.tap
rename to test-legacy/test/before-after-each-promise--buffer.tap
diff --git a/test/test/before-after-each-promise.js b/test-legacy/test/before-after-each-promise.js
similarity index 100%
rename from test/test/before-after-each-promise.js
rename to test-legacy/test/before-after-each-promise.js
diff --git a/test/test/before-after-each-promise.tap b/test-legacy/test/before-after-each-promise.tap
similarity index 100%
rename from test/test/before-after-each-promise.tap
rename to test-legacy/test/before-after-each-promise.tap
diff --git a/test/test/before-after-each-raise--bail--buffer.tap b/test-legacy/test/before-after-each-raise--bail--buffer.tap
similarity index 100%
rename from test/test/before-after-each-raise--bail--buffer.tap
rename to test-legacy/test/before-after-each-raise--bail--buffer.tap
diff --git a/test/test/before-after-each-raise--bail.tap b/test-legacy/test/before-after-each-raise--bail.tap
similarity index 100%
rename from test/test/before-after-each-raise--bail.tap
rename to test-legacy/test/before-after-each-raise--bail.tap
diff --git a/test/test/before-after-each-raise--buffer.tap b/test-legacy/test/before-after-each-raise--buffer.tap
similarity index 100%
rename from test/test/before-after-each-raise--buffer.tap
rename to test-legacy/test/before-after-each-raise--buffer.tap
diff --git a/test/test/before-after-each-raise.js b/test-legacy/test/before-after-each-raise.js
similarity index 100%
rename from test/test/before-after-each-raise.js
rename to test-legacy/test/before-after-each-raise.js
diff --git a/test/test/before-after-each-raise.tap b/test-legacy/test/before-after-each-raise.tap
similarity index 100%
rename from test/test/before-after-each-raise.tap
rename to test-legacy/test/before-after-each-raise.tap
diff --git a/test/test/before-after-each-throw--bail--buffer.tap b/test-legacy/test/before-after-each-throw--bail--buffer.tap
similarity index 100%
rename from test/test/before-after-each-throw--bail--buffer.tap
rename to test-legacy/test/before-after-each-throw--bail--buffer.tap
diff --git a/test/test/before-after-each-throw--bail.tap b/test-legacy/test/before-after-each-throw--bail.tap
similarity index 100%
rename from test/test/before-after-each-throw--bail.tap
rename to test-legacy/test/before-after-each-throw--bail.tap
diff --git a/test/test/before-after-each-throw--buffer.tap b/test-legacy/test/before-after-each-throw--buffer.tap
similarity index 100%
rename from test/test/before-after-each-throw--buffer.tap
rename to test-legacy/test/before-after-each-throw--buffer.tap
diff --git a/test/test/before-after-each-throw.js b/test-legacy/test/before-after-each-throw.js
similarity index 100%
rename from test/test/before-after-each-throw.js
rename to test-legacy/test/before-after-each-throw.js
diff --git a/test/test/before-after-each-throw.tap b/test-legacy/test/before-after-each-throw.tap
similarity index 100%
rename from test/test/before-after-each-throw.tap
rename to test-legacy/test/before-after-each-throw.tap
diff --git a/test/test/before-after-each.js b/test-legacy/test/before-after-each.js
similarity index 100%
rename from test/test/before-after-each.js
rename to test-legacy/test/before-after-each.js
diff --git a/test/test/before-after-each.tap b/test-legacy/test/before-after-each.tap
similarity index 100%
rename from test/test/before-after-each.tap
rename to test-legacy/test/before-after-each.tap
diff --git a/test/test/buffer-yaml--bail--buffer.tap b/test-legacy/test/buffer-yaml--bail--buffer.tap
similarity index 100%
rename from test/test/buffer-yaml--bail--buffer.tap
rename to test-legacy/test/buffer-yaml--bail--buffer.tap
diff --git a/test/test/buffer-yaml--bail.tap b/test-legacy/test/buffer-yaml--bail.tap
similarity index 100%
rename from test/test/buffer-yaml--bail.tap
rename to test-legacy/test/buffer-yaml--bail.tap
diff --git a/test/test/buffer-yaml--buffer.tap b/test-legacy/test/buffer-yaml--buffer.tap
similarity index 100%
rename from test/test/buffer-yaml--buffer.tap
rename to test-legacy/test/buffer-yaml--buffer.tap
diff --git a/test/test/buffer-yaml.js b/test-legacy/test/buffer-yaml.js
similarity index 100%
rename from test/test/buffer-yaml.js
rename to test-legacy/test/buffer-yaml.js
diff --git a/test/test/buffer-yaml.tap b/test-legacy/test/buffer-yaml.tap
similarity index 100%
rename from test/test/buffer-yaml.tap
rename to test-legacy/test/buffer-yaml.tap
diff --git a/test/test/buffered--buffer.tap b/test-legacy/test/buffered--buffer.tap
similarity index 100%
rename from test/test/buffered--buffer.tap
rename to test-legacy/test/buffered--buffer.tap
diff --git a/test/test/buffered.js b/test-legacy/test/buffered.js
similarity index 100%
rename from test/test/buffered.js
rename to test-legacy/test/buffered.js
diff --git a/test/test/buffered.tap b/test-legacy/test/buffered.tap
similarity index 100%
rename from test/test/buffered.tap
rename to test-legacy/test/buffered.tap
diff --git a/test/test/catch-tap-throws--bail--buffer.tap b/test-legacy/test/catch-tap-throws--bail--buffer.tap
similarity index 100%
rename from test/test/catch-tap-throws--bail--buffer.tap
rename to test-legacy/test/catch-tap-throws--bail--buffer.tap
diff --git a/test/test/catch-tap-throws--bail.tap b/test-legacy/test/catch-tap-throws--bail.tap
similarity index 100%
rename from test/test/catch-tap-throws--bail.tap
rename to test-legacy/test/catch-tap-throws--bail.tap
diff --git a/test/test/catch-tap-throws--buffer.tap b/test-legacy/test/catch-tap-throws--buffer.tap
similarity index 100%
rename from test/test/catch-tap-throws--buffer.tap
rename to test-legacy/test/catch-tap-throws--buffer.tap
diff --git a/test/test/catch-tap-throws.js b/test-legacy/test/catch-tap-throws.js
similarity index 100%
rename from test/test/catch-tap-throws.js
rename to test-legacy/test/catch-tap-throws.js
diff --git a/test/test/catch-tap-throws.tap b/test-legacy/test/catch-tap-throws.tap
similarity index 100%
rename from test/test/catch-tap-throws.tap
rename to test-legacy/test/catch-tap-throws.tap
diff --git a/test/test/child-sigterm-after-end--buffer.tap b/test-legacy/test/child-sigterm-after-end--buffer.tap
similarity index 100%
rename from test/test/child-sigterm-after-end--buffer.tap
rename to test-legacy/test/child-sigterm-after-end--buffer.tap
diff --git a/test/test/child-sigterm-after-end.js b/test-legacy/test/child-sigterm-after-end.js
similarity index 100%
rename from test/test/child-sigterm-after-end.js
rename to test-legacy/test/child-sigterm-after-end.js
diff --git a/test/test/child-sigterm-after-end.tap b/test-legacy/test/child-sigterm-after-end.tap
similarity index 100%
rename from test/test/child-sigterm-after-end.tap
rename to test-legacy/test/child-sigterm-after-end.tap
diff --git a/test/test/child-text-buffer--bail--buffer.tap b/test-legacy/test/child-text-buffer--bail--buffer.tap
similarity index 100%
rename from test/test/child-text-buffer--bail--buffer.tap
rename to test-legacy/test/child-text-buffer--bail--buffer.tap
diff --git a/test/test/child-text-buffer--bail.tap b/test-legacy/test/child-text-buffer--bail.tap
similarity index 100%
rename from test/test/child-text-buffer--bail.tap
rename to test-legacy/test/child-text-buffer--bail.tap
diff --git a/test/test/child-text-buffer--buffer.tap b/test-legacy/test/child-text-buffer--buffer.tap
similarity index 100%
rename from test/test/child-text-buffer--buffer.tap
rename to test-legacy/test/child-text-buffer--buffer.tap
diff --git a/test/test/child-text-buffer.js b/test-legacy/test/child-text-buffer.js
similarity index 100%
rename from test/test/child-text-buffer.js
rename to test-legacy/test/child-text-buffer.js
diff --git a/test/test/child-text-buffer.tap b/test-legacy/test/child-text-buffer.tap
similarity index 100%
rename from test/test/child-text-buffer.tap
rename to test-legacy/test/child-text-buffer.tap
diff --git a/test/test/child-text-indentsub--bail--buffer.tap b/test-legacy/test/child-text-indentsub--bail--buffer.tap
similarity index 100%
rename from test/test/child-text-indentsub--bail--buffer.tap
rename to test-legacy/test/child-text-indentsub--bail--buffer.tap
diff --git a/test/test/child-text-indentsub--bail.tap b/test-legacy/test/child-text-indentsub--bail.tap
similarity index 100%
rename from test/test/child-text-indentsub--bail.tap
rename to test-legacy/test/child-text-indentsub--bail.tap
diff --git a/test/test/child-text-indentsub--buffer.tap b/test-legacy/test/child-text-indentsub--buffer.tap
similarity index 100%
rename from test/test/child-text-indentsub--buffer.tap
rename to test-legacy/test/child-text-indentsub--buffer.tap
diff --git a/test/test/child-text-indentsub.js b/test-legacy/test/child-text-indentsub.js
similarity index 100%
rename from test/test/child-text-indentsub.js
rename to test-legacy/test/child-text-indentsub.js
diff --git a/test/test/child-text-indentsub.tap b/test-legacy/test/child-text-indentsub.tap
similarity index 100%
rename from test/test/child-text-indentsub.tap
rename to test-legacy/test/child-text-indentsub.tap
diff --git a/test/test/child-text-sub--bail--buffer.tap b/test-legacy/test/child-text-sub--bail--buffer.tap
similarity index 100%
rename from test/test/child-text-sub--bail--buffer.tap
rename to test-legacy/test/child-text-sub--bail--buffer.tap
diff --git a/test/test/child-text-sub--bail.tap b/test-legacy/test/child-text-sub--bail.tap
similarity index 100%
rename from test/test/child-text-sub--bail.tap
rename to test-legacy/test/child-text-sub--bail.tap
diff --git a/test/test/child-text-sub--buffer.tap b/test-legacy/test/child-text-sub--buffer.tap
similarity index 100%
rename from test/test/child-text-sub--buffer.tap
rename to test-legacy/test/child-text-sub--buffer.tap
diff --git a/test/test/child-text-sub.js b/test-legacy/test/child-text-sub.js
similarity index 100%
rename from test/test/child-text-sub.js
rename to test-legacy/test/child-text-sub.js
diff --git a/test/test/child-text-sub.tap b/test-legacy/test/child-text-sub.tap
similarity index 100%
rename from test/test/child-text-sub.tap
rename to test-legacy/test/child-text-sub.tap
diff --git a/test/test/console-log--buffer.tap b/test-legacy/test/console-log--buffer.tap
similarity index 100%
rename from test/test/console-log--buffer.tap
rename to test-legacy/test/console-log--buffer.tap
diff --git a/test/test/console-log.js b/test-legacy/test/console-log.js
similarity index 100%
rename from test/test/console-log.js
rename to test-legacy/test/console-log.js
diff --git a/test/test/console-log.tap b/test-legacy/test/console-log.tap
similarity index 100%
rename from test/test/console-log.tap
rename to test-legacy/test/console-log.tap
diff --git a/test/test/deferred-comment--buffer.tap b/test-legacy/test/deferred-comment--buffer.tap
similarity index 100%
rename from test/test/deferred-comment--buffer.tap
rename to test-legacy/test/deferred-comment--buffer.tap
diff --git a/test/test/deferred-comment.js b/test-legacy/test/deferred-comment.js
similarity index 100%
rename from test/test/deferred-comment.js
rename to test-legacy/test/deferred-comment.js
diff --git a/test/test/deferred-comment.tap b/test-legacy/test/deferred-comment.tap
similarity index 100%
rename from test/test/deferred-comment.tap
rename to test-legacy/test/deferred-comment.tap
diff --git a/test/test/descendant-fail--bail--buffer.tap b/test-legacy/test/descendant-fail--bail--buffer.tap
similarity index 100%
rename from test/test/descendant-fail--bail--buffer.tap
rename to test-legacy/test/descendant-fail--bail--buffer.tap
diff --git a/test/test/descendant-fail--bail.tap b/test-legacy/test/descendant-fail--bail.tap
similarity index 100%
rename from test/test/descendant-fail--bail.tap
rename to test-legacy/test/descendant-fail--bail.tap
diff --git a/test/test/descendant-fail--buffer.tap b/test-legacy/test/descendant-fail--buffer.tap
similarity index 100%
rename from test/test/descendant-fail--buffer.tap
rename to test-legacy/test/descendant-fail--buffer.tap
diff --git a/test/test/descendant-fail.js b/test-legacy/test/descendant-fail.js
similarity index 100%
rename from test/test/descendant-fail.js
rename to test-legacy/test/descendant-fail.js
diff --git a/test/test/descendant-fail.tap b/test-legacy/test/descendant-fail.tap
similarity index 100%
rename from test/test/descendant-fail.tap
rename to test-legacy/test/descendant-fail.tap
diff --git a/test/test/does-not-throw-message--bail--buffer.tap b/test-legacy/test/does-not-throw-message--bail--buffer.tap
similarity index 100%
rename from test/test/does-not-throw-message--bail--buffer.tap
rename to test-legacy/test/does-not-throw-message--bail--buffer.tap
diff --git a/test/test/does-not-throw-message--bail.tap b/test-legacy/test/does-not-throw-message--bail.tap
similarity index 100%
rename from test/test/does-not-throw-message--bail.tap
rename to test-legacy/test/does-not-throw-message--bail.tap
diff --git a/test/test/does-not-throw-message--buffer.tap b/test-legacy/test/does-not-throw-message--buffer.tap
similarity index 100%
rename from test/test/does-not-throw-message--buffer.tap
rename to test-legacy/test/does-not-throw-message--buffer.tap
diff --git a/test/test/does-not-throw-message.js b/test-legacy/test/does-not-throw-message.js
similarity index 100%
rename from test/test/does-not-throw-message.js
rename to test-legacy/test/does-not-throw-message.js
diff --git a/test/test/does-not-throw-message.tap b/test-legacy/test/does-not-throw-message.tap
similarity index 100%
rename from test/test/does-not-throw-message.tap
rename to test-legacy/test/does-not-throw-message.tap
diff --git a/test/test/domain-escaping--bail--buffer.tap b/test-legacy/test/domain-escaping--bail--buffer.tap
similarity index 100%
rename from test/test/domain-escaping--bail--buffer.tap
rename to test-legacy/test/domain-escaping--bail--buffer.tap
diff --git a/test/test/domain-escaping--bail.tap b/test-legacy/test/domain-escaping--bail.tap
similarity index 100%
rename from test/test/domain-escaping--bail.tap
rename to test-legacy/test/domain-escaping--bail.tap
diff --git a/test/test/domain-escaping--buffer.tap b/test-legacy/test/domain-escaping--buffer.tap
similarity index 100%
rename from test/test/domain-escaping--buffer.tap
rename to test-legacy/test/domain-escaping--buffer.tap
diff --git a/test/test/domain-escaping.js b/test-legacy/test/domain-escaping.js
similarity index 100%
rename from test/test/domain-escaping.js
rename to test-legacy/test/domain-escaping.js
diff --git a/test/test/domain-escaping.tap b/test-legacy/test/domain-escaping.tap
similarity index 100%
rename from test/test/domain-escaping.tap
rename to test-legacy/test/domain-escaping.tap
diff --git a/test/test/emitter-match--bail--buffer.tap b/test-legacy/test/emitter-match--bail--buffer.tap
similarity index 100%
rename from test/test/emitter-match--bail--buffer.tap
rename to test-legacy/test/emitter-match--bail--buffer.tap
diff --git a/test/test/emitter-match--bail.tap b/test-legacy/test/emitter-match--bail.tap
similarity index 100%
rename from test/test/emitter-match--bail.tap
rename to test-legacy/test/emitter-match--bail.tap
diff --git a/test/test/emitter-match--buffer.tap b/test-legacy/test/emitter-match--buffer.tap
similarity index 100%
rename from test/test/emitter-match--buffer.tap
rename to test-legacy/test/emitter-match--buffer.tap
diff --git a/test/test/emitter-match.js b/test-legacy/test/emitter-match.js
similarity index 100%
rename from test/test/emitter-match.js
rename to test-legacy/test/emitter-match.js
diff --git a/test/test/emitter-match.tap b/test-legacy/test/emitter-match.tap
similarity index 100%
rename from test/test/emitter-match.tap
rename to test-legacy/test/emitter-match.tap
diff --git a/test/test/empty--buffer.tap b/test-legacy/test/empty--buffer.tap
similarity index 100%
rename from test/test/empty--buffer.tap
rename to test-legacy/test/empty--buffer.tap
diff --git a/test/test/empty.js b/test-legacy/test/empty.js
similarity index 100%
rename from test/test/empty.js
rename to test-legacy/test/empty.js
diff --git a/test/test/empty.tap b/test-legacy/test/empty.tap
similarity index 100%
rename from test/test/empty.tap
rename to test-legacy/test/empty.tap
diff --git a/test/test/end-end--bail--buffer.tap b/test-legacy/test/end-end--bail--buffer.tap
similarity index 100%
rename from test/test/end-end--bail--buffer.tap
rename to test-legacy/test/end-end--bail--buffer.tap
diff --git a/test/test/end-end--bail.tap b/test-legacy/test/end-end--bail.tap
similarity index 100%
rename from test/test/end-end--bail.tap
rename to test-legacy/test/end-end--bail.tap
diff --git a/test/test/end-end--buffer.tap b/test-legacy/test/end-end--buffer.tap
similarity index 100%
rename from test/test/end-end--buffer.tap
rename to test-legacy/test/end-end--buffer.tap
diff --git a/test/test/end-end.js b/test-legacy/test/end-end.js
similarity index 100%
rename from test/test/end-end.js
rename to test-legacy/test/end-end.js
diff --git a/test/test/end-end.tap b/test-legacy/test/end-end.tap
similarity index 100%
rename from test/test/end-end.tap
rename to test-legacy/test/end-end.tap
diff --git a/test/test/end-event-timing--buffer.tap b/test-legacy/test/end-event-timing--buffer.tap
similarity index 100%
rename from test/test/end-event-timing--buffer.tap
rename to test-legacy/test/end-event-timing--buffer.tap
diff --git a/test/test/end-event-timing.js b/test-legacy/test/end-event-timing.js
similarity index 100%
rename from test/test/end-event-timing.js
rename to test-legacy/test/end-event-timing.js
diff --git a/test/test/end-event-timing.tap b/test-legacy/test/end-event-timing.tap
similarity index 100%
rename from test/test/end-event-timing.tap
rename to test-legacy/test/end-event-timing.tap
diff --git a/test/test/end-exception--bail--buffer.tap b/test-legacy/test/end-exception--bail--buffer.tap
similarity index 100%
rename from test/test/end-exception--bail--buffer.tap
rename to test-legacy/test/end-exception--bail--buffer.tap
diff --git a/test/test/end-exception--bail.tap b/test-legacy/test/end-exception--bail.tap
similarity index 100%
rename from test/test/end-exception--bail.tap
rename to test-legacy/test/end-exception--bail.tap
diff --git a/test/test/end-exception--buffer.tap b/test-legacy/test/end-exception--buffer.tap
similarity index 100%
rename from test/test/end-exception--buffer.tap
rename to test-legacy/test/end-exception--buffer.tap
diff --git a/test/test/end-exception.js b/test-legacy/test/end-exception.js
similarity index 100%
rename from test/test/end-exception.js
rename to test-legacy/test/end-exception.js
diff --git a/test/test/end-exception.tap b/test-legacy/test/end-exception.tap
similarity index 100%
rename from test/test/end-exception.tap
rename to test-legacy/test/end-exception.tap
diff --git a/test/test/equivalent--bail--buffer.tap b/test-legacy/test/equivalent--bail--buffer.tap
similarity index 100%
rename from test/test/equivalent--bail--buffer.tap
rename to test-legacy/test/equivalent--bail--buffer.tap
diff --git a/test/test/equivalent--bail.tap b/test-legacy/test/equivalent--bail.tap
similarity index 100%
rename from test/test/equivalent--bail.tap
rename to test-legacy/test/equivalent--bail.tap
diff --git a/test/test/equivalent--buffer.tap b/test-legacy/test/equivalent--buffer.tap
similarity index 100%
rename from test/test/equivalent--buffer.tap
rename to test-legacy/test/equivalent--buffer.tap
diff --git a/test/test/equivalent.js b/test-legacy/test/equivalent.js
similarity index 100%
rename from test/test/equivalent.js
rename to test-legacy/test/equivalent.js
diff --git a/test/test/equivalent.tap b/test-legacy/test/equivalent.tap
similarity index 100%
rename from test/test/equivalent.tap
rename to test-legacy/test/equivalent.tap
diff --git a/test/test/exit-on-bailout--bail--buffer.tap b/test-legacy/test/exit-on-bailout--bail--buffer.tap
similarity index 100%
rename from test/test/exit-on-bailout--bail--buffer.tap
rename to test-legacy/test/exit-on-bailout--bail--buffer.tap
diff --git a/test/test/exit-on-bailout--bail.tap b/test-legacy/test/exit-on-bailout--bail.tap
similarity index 100%
rename from test/test/exit-on-bailout--bail.tap
rename to test-legacy/test/exit-on-bailout--bail.tap
diff --git a/test/test/exit-on-bailout--buffer.tap b/test-legacy/test/exit-on-bailout--buffer.tap
similarity index 100%
rename from test/test/exit-on-bailout--buffer.tap
rename to test-legacy/test/exit-on-bailout--buffer.tap
diff --git a/test/test/exit-on-bailout.js b/test-legacy/test/exit-on-bailout.js
similarity index 100%
rename from test/test/exit-on-bailout.js
rename to test-legacy/test/exit-on-bailout.js
diff --git a/test/test/exit-on-bailout.tap b/test-legacy/test/exit-on-bailout.tap
similarity index 100%
rename from test/test/exit-on-bailout.tap
rename to test-legacy/test/exit-on-bailout.tap
diff --git a/test/test/exit-on-exit--buffer.tap b/test-legacy/test/exit-on-exit--buffer.tap
similarity index 100%
rename from test/test/exit-on-exit--buffer.tap
rename to test-legacy/test/exit-on-exit--buffer.tap
diff --git a/test/test/exit-on-exit.js b/test-legacy/test/exit-on-exit.js
similarity index 100%
rename from test/test/exit-on-exit.js
rename to test-legacy/test/exit-on-exit.js
diff --git a/test/test/exit-on-exit.tap b/test-legacy/test/exit-on-exit.tap
similarity index 100%
rename from test/test/exit-on-exit.tap
rename to test-legacy/test/exit-on-exit.tap
diff --git a/test/test/grep--buffer.tap b/test-legacy/test/grep--buffer.tap
similarity index 100%
rename from test/test/grep--buffer.tap
rename to test-legacy/test/grep--buffer.tap
diff --git a/test/test/grep.js b/test-legacy/test/grep.js
similarity index 100%
rename from test/test/grep.js
rename to test-legacy/test/grep.js
diff --git a/test/test/grep.tap b/test-legacy/test/grep.tap
similarity index 100%
rename from test/test/grep.tap
rename to test-legacy/test/grep.tap
diff --git a/test/test/mocha-bdd--buffer.tap b/test-legacy/test/mocha-bdd--buffer.tap
similarity index 100%
rename from test/test/mocha-bdd--buffer.tap
rename to test-legacy/test/mocha-bdd--buffer.tap
diff --git a/test/test/mocha-bdd.js b/test-legacy/test/mocha-bdd.js
similarity index 100%
rename from test/test/mocha-bdd.js
rename to test-legacy/test/mocha-bdd.js
diff --git a/test/test/mocha-bdd.tap b/test-legacy/test/mocha-bdd.tap
similarity index 100%
rename from test/test/mocha-bdd.tap
rename to test-legacy/test/mocha-bdd.tap
diff --git a/test/test/mochalike--bail--buffer.tap b/test-legacy/test/mochalike--bail--buffer.tap
similarity index 100%
rename from test/test/mochalike--bail--buffer.tap
rename to test-legacy/test/mochalike--bail--buffer.tap
diff --git a/test/test/mochalike--bail.tap b/test-legacy/test/mochalike--bail.tap
similarity index 100%
rename from test/test/mochalike--bail.tap
rename to test-legacy/test/mochalike--bail.tap
diff --git a/test/test/mochalike--buffer.tap b/test-legacy/test/mochalike--buffer.tap
similarity index 100%
rename from test/test/mochalike--buffer.tap
rename to test-legacy/test/mochalike--buffer.tap
diff --git a/test/test/mochalike-ok--buffer.tap b/test-legacy/test/mochalike-ok--buffer.tap
similarity index 100%
rename from test/test/mochalike-ok--buffer.tap
rename to test-legacy/test/mochalike-ok--buffer.tap
diff --git a/test/test/mochalike-ok.js b/test-legacy/test/mochalike-ok.js
similarity index 100%
rename from test/test/mochalike-ok.js
rename to test-legacy/test/mochalike-ok.js
diff --git a/test/test/mochalike-ok.tap b/test-legacy/test/mochalike-ok.tap
similarity index 100%
rename from test/test/mochalike-ok.tap
rename to test-legacy/test/mochalike-ok.tap
diff --git a/test/test/mochalike.js b/test-legacy/test/mochalike.js
similarity index 100%
rename from test/test/mochalike.js
rename to test-legacy/test/mochalike.js
diff --git a/test/test/mochalike.tap b/test-legacy/test/mochalike.tap
similarity index 100%
rename from test/test/mochalike.tap
rename to test-legacy/test/mochalike.tap
diff --git a/test/test/nesting--bail--buffer.tap b/test-legacy/test/nesting--bail--buffer.tap
similarity index 100%
rename from test/test/nesting--bail--buffer.tap
rename to test-legacy/test/nesting--bail--buffer.tap
diff --git a/test/test/nesting--bail.tap b/test-legacy/test/nesting--bail.tap
similarity index 100%
rename from test/test/nesting--bail.tap
rename to test-legacy/test/nesting--bail.tap
diff --git a/test/test/nesting--buffer.tap b/test-legacy/test/nesting--buffer.tap
similarity index 100%
rename from test/test/nesting--buffer.tap
rename to test-legacy/test/nesting--buffer.tap
diff --git a/test/test/nesting.js b/test-legacy/test/nesting.js
similarity index 100%
rename from test/test/nesting.js
rename to test-legacy/test/nesting.js
diff --git a/test/test/nesting.tap b/test-legacy/test/nesting.tap
similarity index 100%
rename from test/test/nesting.tap
rename to test-legacy/test/nesting.tap
diff --git a/test/test/no-diags--bail--buffer.tap b/test-legacy/test/no-diags--bail--buffer.tap
similarity index 100%
rename from test/test/no-diags--bail--buffer.tap
rename to test-legacy/test/no-diags--bail--buffer.tap
diff --git a/test/test/no-diags--bail.tap b/test-legacy/test/no-diags--bail.tap
similarity index 100%
rename from test/test/no-diags--bail.tap
rename to test-legacy/test/no-diags--bail.tap
diff --git a/test/test/no-diags--buffer.tap b/test-legacy/test/no-diags--buffer.tap
similarity index 100%
rename from test/test/no-diags--buffer.tap
rename to test-legacy/test/no-diags--buffer.tap
diff --git a/test/test/no-diags.js b/test-legacy/test/no-diags.js
similarity index 100%
rename from test/test/no-diags.js
rename to test-legacy/test/no-diags.js
diff --git a/test/test/no-diags.tap b/test-legacy/test/no-diags.tap
similarity index 100%
rename from test/test/no-diags.tap
rename to test-legacy/test/no-diags.tap
diff --git a/test/test/non-tap-output--buffer.tap b/test-legacy/test/non-tap-output--buffer.tap
similarity index 100%
rename from test/test/non-tap-output--buffer.tap
rename to test-legacy/test/non-tap-output--buffer.tap
diff --git a/test/test/non-tap-output.js b/test-legacy/test/non-tap-output.js
similarity index 100%
rename from test/test/non-tap-output.js
rename to test-legacy/test/non-tap-output.js
diff --git a/test/test/non-tap-output.tap b/test-legacy/test/non-tap-output.tap
similarity index 100%
rename from test/test/non-tap-output.tap
rename to test-legacy/test/non-tap-output.tap
diff --git a/test/test/not-ok--bail--buffer.tap b/test-legacy/test/not-ok--bail--buffer.tap
similarity index 100%
rename from test/test/not-ok--bail--buffer.tap
rename to test-legacy/test/not-ok--bail--buffer.tap
diff --git a/test/test/not-ok--bail.tap b/test-legacy/test/not-ok--bail.tap
similarity index 100%
rename from test/test/not-ok--bail.tap
rename to test-legacy/test/not-ok--bail.tap
diff --git a/test/test/not-ok--buffer.tap b/test-legacy/test/not-ok--buffer.tap
similarity index 100%
rename from test/test/not-ok--buffer.tap
rename to test-legacy/test/not-ok--buffer.tap
diff --git a/test/test/not-ok-nested--bail--buffer.tap b/test-legacy/test/not-ok-nested--bail--buffer.tap
similarity index 100%
rename from test/test/not-ok-nested--bail--buffer.tap
rename to test-legacy/test/not-ok-nested--bail--buffer.tap
diff --git a/test/test/not-ok-nested--bail.tap b/test-legacy/test/not-ok-nested--bail.tap
similarity index 100%
rename from test/test/not-ok-nested--bail.tap
rename to test-legacy/test/not-ok-nested--bail.tap
diff --git a/test/test/not-ok-nested--buffer.tap b/test-legacy/test/not-ok-nested--buffer.tap
similarity index 100%
rename from test/test/not-ok-nested--buffer.tap
rename to test-legacy/test/not-ok-nested--buffer.tap
diff --git a/test/test/not-ok-nested.js b/test-legacy/test/not-ok-nested.js
similarity index 100%
rename from test/test/not-ok-nested.js
rename to test-legacy/test/not-ok-nested.js
diff --git a/test/test/not-ok-nested.tap b/test-legacy/test/not-ok-nested.tap
similarity index 100%
rename from test/test/not-ok-nested.tap
rename to test-legacy/test/not-ok-nested.tap
diff --git a/test/test/not-ok.js b/test-legacy/test/not-ok.js
similarity index 100%
rename from test/test/not-ok.js
rename to test-legacy/test/not-ok.js
diff --git a/test/test/not-ok.tap b/test-legacy/test/not-ok.tap
similarity index 100%
rename from test/test/not-ok.tap
rename to test-legacy/test/not-ok.tap
diff --git a/test/test/ok--buffer.tap b/test-legacy/test/ok--buffer.tap
similarity index 100%
rename from test/test/ok--buffer.tap
rename to test-legacy/test/ok--buffer.tap
diff --git a/test/test/ok-diags--buffer.tap b/test-legacy/test/ok-diags--buffer.tap
similarity index 100%
rename from test/test/ok-diags--buffer.tap
rename to test-legacy/test/ok-diags--buffer.tap
diff --git a/test/test/ok-diags.js b/test-legacy/test/ok-diags.js
similarity index 100%
rename from test/test/ok-diags.js
rename to test-legacy/test/ok-diags.js
diff --git a/test/test/ok-diags.tap b/test-legacy/test/ok-diags.tap
similarity index 100%
rename from test/test/ok-diags.tap
rename to test-legacy/test/ok-diags.tap
diff --git a/test/test/ok-exit-fail--bail--buffer.tap b/test-legacy/test/ok-exit-fail--bail--buffer.tap
similarity index 100%
rename from test/test/ok-exit-fail--bail--buffer.tap
rename to test-legacy/test/ok-exit-fail--bail--buffer.tap
diff --git a/test/test/ok-exit-fail--bail.tap b/test-legacy/test/ok-exit-fail--bail.tap
similarity index 100%
rename from test/test/ok-exit-fail--bail.tap
rename to test-legacy/test/ok-exit-fail--bail.tap
diff --git a/test/test/ok-exit-fail--buffer.tap b/test-legacy/test/ok-exit-fail--buffer.tap
similarity index 100%
rename from test/test/ok-exit-fail--buffer.tap
rename to test-legacy/test/ok-exit-fail--buffer.tap
diff --git a/test/test/ok-exit-fail.js b/test-legacy/test/ok-exit-fail.js
similarity index 100%
rename from test/test/ok-exit-fail.js
rename to test-legacy/test/ok-exit-fail.js
diff --git a/test/test/ok-exit-fail.tap b/test-legacy/test/ok-exit-fail.tap
similarity index 100%
rename from test/test/ok-exit-fail.tap
rename to test-legacy/test/ok-exit-fail.tap
diff --git a/test/test/ok.js b/test-legacy/test/ok.js
similarity index 100%
rename from test/test/ok.js
rename to test-legacy/test/ok.js
diff --git a/test/test/ok.tap b/test-legacy/test/ok.tap
similarity index 100%
rename from test/test/ok.tap
rename to test-legacy/test/ok.tap
diff --git a/test/test/only--buffer.tap b/test-legacy/test/only--buffer.tap
similarity index 100%
rename from test/test/only--buffer.tap
rename to test-legacy/test/only--buffer.tap
diff --git a/test/test/only.js b/test-legacy/test/only.js
similarity index 100%
rename from test/test/only.js
rename to test-legacy/test/only.js
diff --git a/test/test/only.tap b/test-legacy/test/only.tap
similarity index 100%
rename from test/test/only.tap
rename to test-legacy/test/only.tap
diff --git a/test/test/pending-handles--bail--buffer.tap b/test-legacy/test/pending-handles--bail--buffer.tap
similarity index 100%
rename from test/test/pending-handles--bail--buffer.tap
rename to test-legacy/test/pending-handles--bail--buffer.tap
diff --git a/test/test/pending-handles--bail.tap b/test-legacy/test/pending-handles--bail.tap
similarity index 100%
rename from test/test/pending-handles--bail.tap
rename to test-legacy/test/pending-handles--bail.tap
diff --git a/test/test/pending-handles--buffer.tap b/test-legacy/test/pending-handles--buffer.tap
similarity index 100%
rename from test/test/pending-handles--buffer.tap
rename to test-legacy/test/pending-handles--buffer.tap
diff --git a/test/test/pending-handles.js b/test-legacy/test/pending-handles.js
similarity index 100%
rename from test/test/pending-handles.js
rename to test-legacy/test/pending-handles.js
diff --git a/test/test/pending-handles.tap b/test-legacy/test/pending-handles.tap
similarity index 100%
rename from test/test/pending-handles.tap
rename to test-legacy/test/pending-handles.tap
diff --git a/test/test/plan-async--buffer.tap b/test-legacy/test/plan-async--buffer.tap
similarity index 100%
rename from test/test/plan-async--buffer.tap
rename to test-legacy/test/plan-async--buffer.tap
diff --git a/test/test/plan-async.js b/test-legacy/test/plan-async.js
similarity index 100%
rename from test/test/plan-async.js
rename to test-legacy/test/plan-async.js
diff --git a/test/test/plan-async.tap b/test-legacy/test/plan-async.tap
similarity index 100%
rename from test/test/plan-async.tap
rename to test-legacy/test/plan-async.tap
diff --git a/test/test/plan-failures--bail--buffer.tap b/test-legacy/test/plan-failures--bail--buffer.tap
similarity index 100%
rename from test/test/plan-failures--bail--buffer.tap
rename to test-legacy/test/plan-failures--bail--buffer.tap
diff --git a/test/test/plan-failures--bail.tap b/test-legacy/test/plan-failures--bail.tap
similarity index 100%
rename from test/test/plan-failures--bail.tap
rename to test-legacy/test/plan-failures--bail.tap
diff --git a/test/test/plan-failures--buffer.tap b/test-legacy/test/plan-failures--buffer.tap
similarity index 100%
rename from test/test/plan-failures--buffer.tap
rename to test-legacy/test/plan-failures--buffer.tap
diff --git a/test/test/plan-failures.js b/test-legacy/test/plan-failures.js
similarity index 100%
rename from test/test/plan-failures.js
rename to test-legacy/test/plan-failures.js
diff --git a/test/test/plan-failures.tap b/test-legacy/test/plan-failures.tap
similarity index 100%
rename from test/test/plan-failures.tap
rename to test-legacy/test/plan-failures.tap
diff --git a/test/test/plan-too-many--bail--buffer.tap b/test-legacy/test/plan-too-many--bail--buffer.tap
similarity index 100%
rename from test/test/plan-too-many--bail--buffer.tap
rename to test-legacy/test/plan-too-many--bail--buffer.tap
diff --git a/test/test/plan-too-many--bail.tap b/test-legacy/test/plan-too-many--bail.tap
similarity index 100%
rename from test/test/plan-too-many--bail.tap
rename to test-legacy/test/plan-too-many--bail.tap
diff --git a/test/test/plan-too-many--buffer.tap b/test-legacy/test/plan-too-many--buffer.tap
similarity index 100%
rename from test/test/plan-too-many--buffer.tap
rename to test-legacy/test/plan-too-many--buffer.tap
diff --git a/test/test/plan-too-many.js b/test-legacy/test/plan-too-many.js
similarity index 100%
rename from test/test/plan-too-many.js
rename to test-legacy/test/plan-too-many.js
diff --git a/test/test/plan-too-many.tap b/test-legacy/test/plan-too-many.tap
similarity index 100%
rename from test/test/plan-too-many.tap
rename to test-legacy/test/plan-too-many.tap
diff --git a/test/test/pragma--bail--buffer.tap b/test-legacy/test/pragma--bail--buffer.tap
similarity index 100%
rename from test/test/pragma--bail--buffer.tap
rename to test-legacy/test/pragma--bail--buffer.tap
diff --git a/test/test/pragma--bail.tap b/test-legacy/test/pragma--bail.tap
similarity index 100%
rename from test/test/pragma--bail.tap
rename to test-legacy/test/pragma--bail.tap
diff --git a/test/test/pragma--buffer.tap b/test-legacy/test/pragma--buffer.tap
similarity index 100%
rename from test/test/pragma--buffer.tap
rename to test-legacy/test/pragma--buffer.tap
diff --git a/test/test/pragma.js b/test-legacy/test/pragma.js
similarity index 100%
rename from test/test/pragma.js
rename to test-legacy/test/pragma.js
diff --git a/test/test/pragma.tap b/test-legacy/test/pragma.tap
similarity index 100%
rename from test/test/pragma.tap
rename to test-legacy/test/pragma.tap
diff --git a/test/test/promise--buffer.tap b/test-legacy/test/promise--buffer.tap
similarity index 100%
rename from test/test/promise--buffer.tap
rename to test-legacy/test/promise--buffer.tap
diff --git a/test/test/promise-fails--bail--buffer.tap b/test-legacy/test/promise-fails--bail--buffer.tap
similarity index 100%
rename from test/test/promise-fails--bail--buffer.tap
rename to test-legacy/test/promise-fails--bail--buffer.tap
diff --git a/test/test/promise-fails--bail.tap b/test-legacy/test/promise-fails--bail.tap
similarity index 100%
rename from test/test/promise-fails--bail.tap
rename to test-legacy/test/promise-fails--bail.tap
diff --git a/test/test/promise-fails--buffer.tap b/test-legacy/test/promise-fails--buffer.tap
similarity index 100%
rename from test/test/promise-fails--buffer.tap
rename to test-legacy/test/promise-fails--buffer.tap
diff --git a/test/test/promise-fails.js b/test-legacy/test/promise-fails.js
similarity index 100%
rename from test/test/promise-fails.js
rename to test-legacy/test/promise-fails.js
diff --git a/test/test/promise-fails.tap b/test-legacy/test/promise-fails.tap
similarity index 100%
rename from test/test/promise-fails.tap
rename to test-legacy/test/promise-fails.tap
diff --git a/test/test/promise-plan--bail--buffer.tap b/test-legacy/test/promise-plan--bail--buffer.tap
similarity index 100%
rename from test/test/promise-plan--bail--buffer.tap
rename to test-legacy/test/promise-plan--bail--buffer.tap
diff --git a/test/test/promise-plan--bail.tap b/test-legacy/test/promise-plan--bail.tap
similarity index 100%
rename from test/test/promise-plan--bail.tap
rename to test-legacy/test/promise-plan--bail.tap
diff --git a/test/test/promise-plan--buffer.tap b/test-legacy/test/promise-plan--buffer.tap
similarity index 100%
rename from test/test/promise-plan--buffer.tap
rename to test-legacy/test/promise-plan--buffer.tap
diff --git a/test/test/promise-plan.js b/test-legacy/test/promise-plan.js
similarity index 100%
rename from test/test/promise-plan.js
rename to test-legacy/test/promise-plan.js
diff --git a/test/test/promise-plan.tap b/test-legacy/test/promise-plan.tap
similarity index 100%
rename from test/test/promise-plan.tap
rename to test-legacy/test/promise-plan.tap
diff --git a/test/test/promise-return--bail--buffer.tap b/test-legacy/test/promise-return--bail--buffer.tap
similarity index 100%
rename from test/test/promise-return--bail--buffer.tap
rename to test-legacy/test/promise-return--bail--buffer.tap
diff --git a/test/test/promise-return--bail.tap b/test-legacy/test/promise-return--bail.tap
similarity index 100%
rename from test/test/promise-return--bail.tap
rename to test-legacy/test/promise-return--bail.tap
diff --git a/test/test/promise-return--buffer.tap b/test-legacy/test/promise-return--buffer.tap
similarity index 100%
rename from test/test/promise-return--buffer.tap
rename to test-legacy/test/promise-return--buffer.tap
diff --git a/test/test/promise-return-mocha--bail--buffer.tap b/test-legacy/test/promise-return-mocha--bail--buffer.tap
similarity index 100%
rename from test/test/promise-return-mocha--bail--buffer.tap
rename to test-legacy/test/promise-return-mocha--bail--buffer.tap
diff --git a/test/test/promise-return-mocha--bail.tap b/test-legacy/test/promise-return-mocha--bail.tap
similarity index 100%
rename from test/test/promise-return-mocha--bail.tap
rename to test-legacy/test/promise-return-mocha--bail.tap
diff --git a/test/test/promise-return-mocha--buffer.tap b/test-legacy/test/promise-return-mocha--buffer.tap
similarity index 100%
rename from test/test/promise-return-mocha--buffer.tap
rename to test-legacy/test/promise-return-mocha--buffer.tap
diff --git a/test/test/promise-return-mocha.js b/test-legacy/test/promise-return-mocha.js
similarity index 100%
rename from test/test/promise-return-mocha.js
rename to test-legacy/test/promise-return-mocha.js
diff --git a/test/test/promise-return-mocha.tap b/test-legacy/test/promise-return-mocha.tap
similarity index 100%
rename from test/test/promise-return-mocha.tap
rename to test-legacy/test/promise-return-mocha.tap
diff --git a/test/test/promise-return.js b/test-legacy/test/promise-return.js
similarity index 100%
rename from test/test/promise-return.js
rename to test-legacy/test/promise-return.js
diff --git a/test/test/promise-return.tap b/test-legacy/test/promise-return.tap
similarity index 100%
rename from test/test/promise-return.tap
rename to test-legacy/test/promise-return.tap
diff --git a/test/test/promise.js b/test-legacy/test/promise.js
similarity index 100%
rename from test/test/promise.js
rename to test-legacy/test/promise.js
diff --git a/test/test/promise.tap b/test-legacy/test/promise.tap
similarity index 100%
rename from test/test/promise.tap
rename to test-legacy/test/promise.tap
diff --git a/test/test/rejects--bail--buffer.tap b/test-legacy/test/rejects--bail--buffer.tap
similarity index 100%
rename from test/test/rejects--bail--buffer.tap
rename to test-legacy/test/rejects--bail--buffer.tap
diff --git a/test/test/rejects--bail.tap b/test-legacy/test/rejects--bail.tap
similarity index 100%
rename from test/test/rejects--bail.tap
rename to test-legacy/test/rejects--bail.tap
diff --git a/test/test/rejects--buffer.tap b/test-legacy/test/rejects--buffer.tap
similarity index 100%
rename from test/test/rejects--buffer.tap
rename to test-legacy/test/rejects--buffer.tap
diff --git a/test/test/rejects.js b/test-legacy/test/rejects.js
similarity index 100%
rename from test/test/rejects.js
rename to test-legacy/test/rejects.js
diff --git a/test/test/rejects.tap b/test-legacy/test/rejects.tap
similarity index 100%
rename from test/test/rejects.tap
rename to test-legacy/test/rejects.tap
diff --git a/test/test/root-teardown--buffer.tap b/test-legacy/test/root-teardown--buffer.tap
similarity index 100%
rename from test/test/root-teardown--buffer.tap
rename to test-legacy/test/root-teardown--buffer.tap
diff --git a/test/test/root-teardown.js b/test-legacy/test/root-teardown.js
similarity index 100%
rename from test/test/root-teardown.js
rename to test-legacy/test/root-teardown.js
diff --git a/test/test/root-teardown.tap b/test-legacy/test/root-teardown.tap
similarity index 100%
rename from test/test/root-teardown.tap
rename to test-legacy/test/root-teardown.tap
diff --git a/test/test/segv--bail--buffer.tap b/test-legacy/test/segv--bail--buffer.tap
similarity index 100%
rename from test/test/segv--bail--buffer.tap
rename to test-legacy/test/segv--bail--buffer.tap
diff --git a/test/test/segv--bail.tap b/test-legacy/test/segv--bail.tap
similarity index 100%
rename from test/test/segv--bail.tap
rename to test-legacy/test/segv--bail.tap
diff --git a/test/test/segv--buffer.tap b/test-legacy/test/segv--buffer.tap
similarity index 100%
rename from test/test/segv--buffer.tap
rename to test-legacy/test/segv--buffer.tap
diff --git a/test/test/segv.js b/test-legacy/test/segv.js
similarity index 100%
rename from test/test/segv.js
rename to test-legacy/test/segv.js
diff --git a/test/test/segv.tap b/test-legacy/test/segv.tap
similarity index 100%
rename from test/test/segv.tap
rename to test-legacy/test/segv.tap
diff --git a/test/test/skip--buffer.tap b/test-legacy/test/skip--buffer.tap
similarity index 100%
rename from test/test/skip--buffer.tap
rename to test-legacy/test/skip--buffer.tap
diff --git a/test/test/skip-all--buffer.tap b/test-legacy/test/skip-all--buffer.tap
similarity index 100%
rename from test/test/skip-all--buffer.tap
rename to test-legacy/test/skip-all--buffer.tap
diff --git a/test/test/skip-all.js b/test-legacy/test/skip-all.js
similarity index 100%
rename from test/test/skip-all.js
rename to test-legacy/test/skip-all.js
diff --git a/test/test/skip-all.tap b/test-legacy/test/skip-all.tap
similarity index 100%
rename from test/test/skip-all.tap
rename to test-legacy/test/skip-all.tap
diff --git a/test/test/skip.js b/test-legacy/test/skip.js
similarity index 100%
rename from test/test/skip.js
rename to test-legacy/test/skip.js
diff --git a/test/test/skip.tap b/test-legacy/test/skip.tap
similarity index 100%
rename from test/test/skip.tap
rename to test-legacy/test/skip.tap
diff --git a/test/test/source-map-fail--bail--buffer.tap b/test-legacy/test/source-map-fail--bail--buffer.tap
similarity index 100%
rename from test/test/source-map-fail--bail--buffer.tap
rename to test-legacy/test/source-map-fail--bail--buffer.tap
diff --git a/test/test/source-map-fail--bail.tap b/test-legacy/test/source-map-fail--bail.tap
similarity index 100%
rename from test/test/source-map-fail--bail.tap
rename to test-legacy/test/source-map-fail--bail.tap
diff --git a/test/test/source-map-fail--buffer.tap b/test-legacy/test/source-map-fail--buffer.tap
similarity index 100%
rename from test/test/source-map-fail--buffer.tap
rename to test-legacy/test/source-map-fail--buffer.tap
diff --git a/test/test/source-map-fail-bail.tap b/test-legacy/test/source-map-fail-bail.tap
similarity index 100%
rename from test/test/source-map-fail-bail.tap
rename to test-legacy/test/source-map-fail-bail.tap
diff --git a/test/test/source-map-fail.coffee b/test-legacy/test/source-map-fail.coffee
similarity index 100%
rename from test/test/source-map-fail.coffee
rename to test-legacy/test/source-map-fail.coffee
diff --git a/test/test/source-map-fail.js b/test-legacy/test/source-map-fail.js
similarity index 100%
rename from test/test/source-map-fail.js
rename to test-legacy/test/source-map-fail.js
diff --git a/test/test/source-map-fail.js.map b/test-legacy/test/source-map-fail.js.map
similarity index 100%
rename from test/test/source-map-fail.js.map
rename to test-legacy/test/source-map-fail.js.map
diff --git a/test/test/source-map-fail.tap b/test-legacy/test/source-map-fail.tap
similarity index 100%
rename from test/test/source-map-fail.tap
rename to test-legacy/test/source-map-fail.tap
diff --git a/test/test/sparse-array--bail--buffer.tap b/test-legacy/test/sparse-array--bail--buffer.tap
similarity index 100%
rename from test/test/sparse-array--bail--buffer.tap
rename to test-legacy/test/sparse-array--bail--buffer.tap
diff --git a/test/test/sparse-array--bail.tap b/test-legacy/test/sparse-array--bail.tap
similarity index 100%
rename from test/test/sparse-array--bail.tap
rename to test-legacy/test/sparse-array--bail.tap
diff --git a/test/test/sparse-array--buffer.tap b/test-legacy/test/sparse-array--buffer.tap
similarity index 100%
rename from test/test/sparse-array--buffer.tap
rename to test-legacy/test/sparse-array--buffer.tap
diff --git a/test/test/sparse-array.js b/test-legacy/test/sparse-array.js
similarity index 100%
rename from test/test/sparse-array.js
rename to test-legacy/test/sparse-array.js
diff --git a/test/test/sparse-array.tap b/test-legacy/test/sparse-array.tap
similarity index 100%
rename from test/test/sparse-array.tap
rename to test-legacy/test/sparse-array.tap
diff --git a/test/test/spawn--bail--buffer.tap b/test-legacy/test/spawn--bail--buffer.tap
similarity index 100%
rename from test/test/spawn--bail--buffer.tap
rename to test-legacy/test/spawn--bail--buffer.tap
diff --git a/test/test/spawn--bail.tap b/test-legacy/test/spawn--bail.tap
similarity index 100%
rename from test/test/spawn--bail.tap
rename to test-legacy/test/spawn--bail.tap
diff --git a/test/test/spawn--buffer.tap b/test-legacy/test/spawn--buffer.tap
similarity index 100%
rename from test/test/spawn--buffer.tap
rename to test-legacy/test/spawn--buffer.tap
diff --git a/test/test/spawn-empty--buffer.tap b/test-legacy/test/spawn-empty--buffer.tap
similarity index 100%
rename from test/test/spawn-empty--buffer.tap
rename to test-legacy/test/spawn-empty--buffer.tap
diff --git a/test/test/spawn-empty.js b/test-legacy/test/spawn-empty.js
similarity index 100%
rename from test/test/spawn-empty.js
rename to test-legacy/test/spawn-empty.js
diff --git a/test/test/spawn-empty.tap b/test-legacy/test/spawn-empty.tap
similarity index 100%
rename from test/test/spawn-empty.tap
rename to test-legacy/test/spawn-empty.tap
diff --git a/test/test/spawn-failures--bail--buffer.tap b/test-legacy/test/spawn-failures--bail--buffer.tap
similarity index 100%
rename from test/test/spawn-failures--bail--buffer.tap
rename to test-legacy/test/spawn-failures--bail--buffer.tap
diff --git a/test/test/spawn-failures--bail.tap b/test-legacy/test/spawn-failures--bail.tap
similarity index 100%
rename from test/test/spawn-failures--bail.tap
rename to test-legacy/test/spawn-failures--bail.tap
diff --git a/test/test/spawn-failures--buffer.tap b/test-legacy/test/spawn-failures--buffer.tap
similarity index 100%
rename from test/test/spawn-failures--buffer.tap
rename to test-legacy/test/spawn-failures--buffer.tap
diff --git a/test/test/spawn-failures.js b/test-legacy/test/spawn-failures.js
similarity index 100%
rename from test/test/spawn-failures.js
rename to test-legacy/test/spawn-failures.js
diff --git a/test/test/spawn-failures.tap b/test-legacy/test/spawn-failures.tap
similarity index 100%
rename from test/test/spawn-failures.tap
rename to test-legacy/test/spawn-failures.tap
diff --git a/test/test/spawn-stderr--buffer.tap b/test-legacy/test/spawn-stderr--buffer.tap
similarity index 100%
rename from test/test/spawn-stderr--buffer.tap
rename to test-legacy/test/spawn-stderr--buffer.tap
diff --git a/test/test/spawn-stderr.js b/test-legacy/test/spawn-stderr.js
similarity index 100%
rename from test/test/spawn-stderr.js
rename to test-legacy/test/spawn-stderr.js
diff --git a/test/test/spawn-stderr.tap b/test-legacy/test/spawn-stderr.tap
similarity index 100%
rename from test/test/spawn-stderr.tap
rename to test-legacy/test/spawn-stderr.tap
diff --git a/test/test/spawn.js b/test-legacy/test/spawn.js
similarity index 100%
rename from test/test/spawn.js
rename to test-legacy/test/spawn.js
diff --git a/test/test/spawn.tap b/test-legacy/test/spawn.tap
similarity index 100%
rename from test/test/spawn.tap
rename to test-legacy/test/spawn.tap
diff --git a/test/test/stdin--bail--buffer.tap b/test-legacy/test/stdin--bail--buffer.tap
similarity index 100%
rename from test/test/stdin--bail--buffer.tap
rename to test-legacy/test/stdin--bail--buffer.tap
diff --git a/test/test/stdin--bail.tap b/test-legacy/test/stdin--bail.tap
similarity index 100%
rename from test/test/stdin--bail.tap
rename to test-legacy/test/stdin--bail.tap
diff --git a/test/test/stdin--buffer.tap b/test-legacy/test/stdin--buffer.tap
similarity index 100%
rename from test/test/stdin--buffer.tap
rename to test-legacy/test/stdin--buffer.tap
diff --git a/test/test/stdin.js b/test-legacy/test/stdin.js
similarity index 100%
rename from test/test/stdin.js
rename to test-legacy/test/stdin.js
diff --git a/test/test/stdin.tap b/test-legacy/test/stdin.tap
similarity index 100%
rename from test/test/stdin.tap
rename to test-legacy/test/stdin.tap
diff --git a/test/test/subtest-only-options--buffer.tap b/test-legacy/test/subtest-only-options--buffer.tap
similarity index 100%
rename from test/test/subtest-only-options--buffer.tap
rename to test-legacy/test/subtest-only-options--buffer.tap
diff --git a/test/test/subtest-only-options.js b/test-legacy/test/subtest-only-options.js
similarity index 100%
rename from test/test/subtest-only-options.js
rename to test-legacy/test/subtest-only-options.js
diff --git a/test/test/subtest-only-options.tap b/test-legacy/test/subtest-only-options.tap
similarity index 100%
rename from test/test/subtest-only-options.tap
rename to test-legacy/test/subtest-only-options.tap
diff --git a/test/test/subtest-preplan--buffer.tap b/test-legacy/test/subtest-preplan--buffer.tap
similarity index 100%
rename from test/test/subtest-preplan--buffer.tap
rename to test-legacy/test/subtest-preplan--buffer.tap
diff --git a/test/test/subtest-preplan.js b/test-legacy/test/subtest-preplan.js
similarity index 100%
rename from test/test/subtest-preplan.js
rename to test-legacy/test/subtest-preplan.js
diff --git a/test/test/subtest-preplan.tap b/test-legacy/test/subtest-preplan.tap
similarity index 100%
rename from test/test/subtest-preplan.tap
rename to test-legacy/test/subtest-preplan.tap
diff --git a/test/test/subtest-with-name-and-function--buffer.tap b/test-legacy/test/subtest-with-name-and-function--buffer.tap
similarity index 100%
rename from test/test/subtest-with-name-and-function--buffer.tap
rename to test-legacy/test/subtest-with-name-and-function--buffer.tap
diff --git a/test/test/subtest-with-name-and-function.js b/test-legacy/test/subtest-with-name-and-function.js
similarity index 100%
rename from test/test/subtest-with-name-and-function.js
rename to test-legacy/test/subtest-with-name-and-function.js
diff --git a/test/test/subtest-with-name-and-function.tap b/test-legacy/test/subtest-with-name-and-function.tap
similarity index 100%
rename from test/test/subtest-with-name-and-function.tap
rename to test-legacy/test/subtest-with-name-and-function.tap
diff --git a/test/test/subtest-with-name-and-options--buffer.tap b/test-legacy/test/subtest-with-name-and-options--buffer.tap
similarity index 100%
rename from test/test/subtest-with-name-and-options--buffer.tap
rename to test-legacy/test/subtest-with-name-and-options--buffer.tap
diff --git a/test/test/subtest-with-name-and-options.js b/test-legacy/test/subtest-with-name-and-options.js
similarity index 100%
rename from test/test/subtest-with-name-and-options.js
rename to test-legacy/test/subtest-with-name-and-options.js
diff --git a/test/test/subtest-with-name-and-options.tap b/test-legacy/test/subtest-with-name-and-options.tap
similarity index 100%
rename from test/test/subtest-with-name-and-options.tap
rename to test-legacy/test/subtest-with-name-and-options.tap
diff --git a/test/test/subtest-with-only-a-function--buffer.tap b/test-legacy/test/subtest-with-only-a-function--buffer.tap
similarity index 100%
rename from test/test/subtest-with-only-a-function--buffer.tap
rename to test-legacy/test/subtest-with-only-a-function--buffer.tap
diff --git a/test/test/subtest-with-only-a-function.js b/test-legacy/test/subtest-with-only-a-function.js
similarity index 100%
rename from test/test/subtest-with-only-a-function.js
rename to test-legacy/test/subtest-with-only-a-function.js
diff --git a/test/test/subtest-with-only-a-function.tap b/test-legacy/test/subtest-with-only-a-function.tap
similarity index 100%
rename from test/test/subtest-with-only-a-function.tap
rename to test-legacy/test/subtest-with-only-a-function.tap
diff --git a/test/test/subtest-with-only-a-name--buffer.tap b/test-legacy/test/subtest-with-only-a-name--buffer.tap
similarity index 100%
rename from test/test/subtest-with-only-a-name--buffer.tap
rename to test-legacy/test/subtest-with-only-a-name--buffer.tap
diff --git a/test/test/subtest-with-only-a-name.js b/test-legacy/test/subtest-with-only-a-name.js
similarity index 100%
rename from test/test/subtest-with-only-a-name.js
rename to test-legacy/test/subtest-with-only-a-name.js
diff --git a/test/test/subtest-with-only-a-name.tap b/test-legacy/test/subtest-with-only-a-name.tap
similarity index 100%
rename from test/test/subtest-with-only-a-name.tap
rename to test-legacy/test/subtest-with-only-a-name.tap
diff --git a/test/test/subtest-with-options-and-function--buffer.tap b/test-legacy/test/subtest-with-options-and-function--buffer.tap
similarity index 100%
rename from test/test/subtest-with-options-and-function--buffer.tap
rename to test-legacy/test/subtest-with-options-and-function--buffer.tap
diff --git a/test/test/subtest-with-options-and-function.js b/test-legacy/test/subtest-with-options-and-function.js
similarity index 100%
rename from test/test/subtest-with-options-and-function.js
rename to test-legacy/test/subtest-with-options-and-function.js
diff --git a/test/test/subtest-with-options-and-function.tap b/test-legacy/test/subtest-with-options-and-function.tap
similarity index 100%
rename from test/test/subtest-with-options-and-function.tap
rename to test-legacy/test/subtest-with-options-and-function.tap
diff --git a/test/test/subtest-without-arguments--buffer.tap b/test-legacy/test/subtest-without-arguments--buffer.tap
similarity index 100%
rename from test/test/subtest-without-arguments--buffer.tap
rename to test-legacy/test/subtest-without-arguments--buffer.tap
diff --git a/test/test/subtest-without-arguments.js b/test-legacy/test/subtest-without-arguments.js
similarity index 100%
rename from test/test/subtest-without-arguments.js
rename to test-legacy/test/subtest-without-arguments.js
diff --git a/test/test/subtest-without-arguments.tap b/test-legacy/test/subtest-without-arguments.tap
similarity index 100%
rename from test/test/subtest-without-arguments.tap
rename to test-legacy/test/subtest-without-arguments.tap
diff --git a/test/test/sync-timeout--bail--buffer.tap b/test-legacy/test/sync-timeout--bail--buffer.tap
similarity index 100%
rename from test/test/sync-timeout--bail--buffer.tap
rename to test-legacy/test/sync-timeout--bail--buffer.tap
diff --git a/test/test/sync-timeout--bail.tap b/test-legacy/test/sync-timeout--bail.tap
similarity index 100%
rename from test/test/sync-timeout--bail.tap
rename to test-legacy/test/sync-timeout--bail.tap
diff --git a/test/test/sync-timeout--buffer.tap b/test-legacy/test/sync-timeout--buffer.tap
similarity index 100%
rename from test/test/sync-timeout--buffer.tap
rename to test-legacy/test/sync-timeout--buffer.tap
diff --git a/test/test/sync-timeout.js b/test-legacy/test/sync-timeout.js
similarity index 100%
rename from test/test/sync-timeout.js
rename to test-legacy/test/sync-timeout.js
diff --git a/test/test/sync-timeout.tap b/test-legacy/test/sync-timeout.tap
similarity index 100%
rename from test/test/sync-timeout.tap
rename to test-legacy/test/sync-timeout.tap
diff --git a/test/test/teardown-throw-autocomplete--bail--buffer.tap b/test-legacy/test/teardown-throw-autocomplete--bail--buffer.tap
similarity index 100%
rename from test/test/teardown-throw-autocomplete--bail--buffer.tap
rename to test-legacy/test/teardown-throw-autocomplete--bail--buffer.tap
diff --git a/test/test/teardown-throw-autocomplete--bail.tap b/test-legacy/test/teardown-throw-autocomplete--bail.tap
similarity index 100%
rename from test/test/teardown-throw-autocomplete--bail.tap
rename to test-legacy/test/teardown-throw-autocomplete--bail.tap
diff --git a/test/test/teardown-throw-autocomplete--buffer.tap b/test-legacy/test/teardown-throw-autocomplete--buffer.tap
similarity index 100%
rename from test/test/teardown-throw-autocomplete--buffer.tap
rename to test-legacy/test/teardown-throw-autocomplete--buffer.tap
diff --git a/test/test/teardown-throw-autocomplete.js b/test-legacy/test/teardown-throw-autocomplete.js
similarity index 100%
rename from test/test/teardown-throw-autocomplete.js
rename to test-legacy/test/teardown-throw-autocomplete.js
diff --git a/test/test/teardown-throw-autocomplete.tap b/test-legacy/test/teardown-throw-autocomplete.tap
similarity index 100%
rename from test/test/teardown-throw-autocomplete.tap
rename to test-legacy/test/teardown-throw-autocomplete.tap
diff --git a/test/test/teardown-timing--buffer.tap b/test-legacy/test/teardown-timing--buffer.tap
similarity index 100%
rename from test/test/teardown-timing--buffer.tap
rename to test-legacy/test/teardown-timing--buffer.tap
diff --git a/test/test/teardown-timing-throws--bail--buffer.tap b/test-legacy/test/teardown-timing-throws--bail--buffer.tap
similarity index 100%
rename from test/test/teardown-timing-throws--bail--buffer.tap
rename to test-legacy/test/teardown-timing-throws--bail--buffer.tap
diff --git a/test/test/teardown-timing-throws--bail.tap b/test-legacy/test/teardown-timing-throws--bail.tap
similarity index 100%
rename from test/test/teardown-timing-throws--bail.tap
rename to test-legacy/test/teardown-timing-throws--bail.tap
diff --git a/test/test/teardown-timing-throws--buffer.tap b/test-legacy/test/teardown-timing-throws--buffer.tap
similarity index 100%
rename from test/test/teardown-timing-throws--buffer.tap
rename to test-legacy/test/teardown-timing-throws--buffer.tap
diff --git a/test/test/teardown-timing-throws.js b/test-legacy/test/teardown-timing-throws.js
similarity index 100%
rename from test/test/teardown-timing-throws.js
rename to test-legacy/test/teardown-timing-throws.js
diff --git a/test/test/teardown-timing-throws.tap b/test-legacy/test/teardown-timing-throws.tap
similarity index 100%
rename from test/test/teardown-timing-throws.tap
rename to test-legacy/test/teardown-timing-throws.tap
diff --git a/test/test/teardown-timing.js b/test-legacy/test/teardown-timing.js
similarity index 100%
rename from test/test/teardown-timing.js
rename to test-legacy/test/teardown-timing.js
diff --git a/test/test/teardown-timing.tap b/test-legacy/test/teardown-timing.tap
similarity index 100%
rename from test/test/teardown-timing.tap
rename to test-legacy/test/teardown-timing.tap
diff --git a/test/test/throw--bail--buffer.tap b/test-legacy/test/throw--bail--buffer.tap
similarity index 100%
rename from test/test/throw--bail--buffer.tap
rename to test-legacy/test/throw--bail--buffer.tap
diff --git a/test/test/throw--bail.tap b/test-legacy/test/throw--bail.tap
similarity index 100%
rename from test/test/throw--bail.tap
rename to test-legacy/test/throw--bail.tap
diff --git a/test/test/throw--buffer.tap b/test-legacy/test/throw--buffer.tap
similarity index 100%
rename from test/test/throw--buffer.tap
rename to test-legacy/test/throw--buffer.tap
diff --git a/test/test/throw-root--bail--buffer.tap b/test-legacy/test/throw-root--bail--buffer.tap
similarity index 100%
rename from test/test/throw-root--bail--buffer.tap
rename to test-legacy/test/throw-root--bail--buffer.tap
diff --git a/test/test/throw-root--bail.tap b/test-legacy/test/throw-root--bail.tap
similarity index 100%
rename from test/test/throw-root--bail.tap
rename to test-legacy/test/throw-root--bail.tap
diff --git a/test/test/throw-root--buffer.tap b/test-legacy/test/throw-root--buffer.tap
similarity index 100%
rename from test/test/throw-root--buffer.tap
rename to test-legacy/test/throw-root--buffer.tap
diff --git a/test/test/throw-root.js b/test-legacy/test/throw-root.js
similarity index 100%
rename from test/test/throw-root.js
rename to test-legacy/test/throw-root.js
diff --git a/test/test/throw-root.tap b/test-legacy/test/throw-root.tap
similarity index 100%
rename from test/test/throw-root.tap
rename to test-legacy/test/throw-root.tap
diff --git a/test/test/throw-twice--bail--buffer.tap b/test-legacy/test/throw-twice--bail--buffer.tap
similarity index 100%
rename from test/test/throw-twice--bail--buffer.tap
rename to test-legacy/test/throw-twice--bail--buffer.tap
diff --git a/test/test/throw-twice--bail.tap b/test-legacy/test/throw-twice--bail.tap
similarity index 100%
rename from test/test/throw-twice--bail.tap
rename to test-legacy/test/throw-twice--bail.tap
diff --git a/test/test/throw-twice--buffer.tap b/test-legacy/test/throw-twice--buffer.tap
similarity index 100%
rename from test/test/throw-twice--buffer.tap
rename to test-legacy/test/throw-twice--buffer.tap
diff --git a/test/test/throw-twice.js b/test-legacy/test/throw-twice.js
similarity index 100%
rename from test/test/throw-twice.js
rename to test-legacy/test/throw-twice.js
diff --git a/test/test/throw-twice.tap b/test-legacy/test/throw-twice.tap
similarity index 100%
rename from test/test/throw-twice.tap
rename to test-legacy/test/throw-twice.tap
diff --git a/test/test/throw.js b/test-legacy/test/throw.js
similarity index 100%
rename from test/test/throw.js
rename to test-legacy/test/throw.js
diff --git a/test/test/throw.tap b/test-legacy/test/throw.tap
similarity index 100%
rename from test/test/throw.tap
rename to test-legacy/test/throw.tap
diff --git a/test/test/throws--bail--buffer.tap b/test-legacy/test/throws--bail--buffer.tap
similarity index 100%
rename from test/test/throws--bail--buffer.tap
rename to test-legacy/test/throws--bail--buffer.tap
diff --git a/test/test/throws--bail.tap b/test-legacy/test/throws--bail.tap
similarity index 100%
rename from test/test/throws--bail.tap
rename to test-legacy/test/throws--bail.tap
diff --git a/test/test/throws--buffer.tap b/test-legacy/test/throws--buffer.tap
similarity index 100%
rename from test/test/throws--buffer.tap
rename to test-legacy/test/throws--buffer.tap
diff --git a/test/test/throws-and-plans--bail--buffer.tap b/test-legacy/test/throws-and-plans--bail--buffer.tap
similarity index 100%
rename from test/test/throws-and-plans--bail--buffer.tap
rename to test-legacy/test/throws-and-plans--bail--buffer.tap
diff --git a/test/test/throws-and-plans--bail.tap b/test-legacy/test/throws-and-plans--bail.tap
similarity index 100%
rename from test/test/throws-and-plans--bail.tap
rename to test-legacy/test/throws-and-plans--bail.tap
diff --git a/test/test/throws-and-plans--buffer.tap b/test-legacy/test/throws-and-plans--buffer.tap
similarity index 100%
rename from test/test/throws-and-plans--buffer.tap
rename to test-legacy/test/throws-and-plans--buffer.tap
diff --git a/test/test/throws-and-plans.js b/test-legacy/test/throws-and-plans.js
similarity index 100%
rename from test/test/throws-and-plans.js
rename to test-legacy/test/throws-and-plans.js
diff --git a/test/test/throws-and-plans.tap b/test-legacy/test/throws-and-plans.tap
similarity index 100%
rename from test/test/throws-and-plans.tap
rename to test-legacy/test/throws-and-plans.tap
diff --git a/test/test/throws.js b/test-legacy/test/throws.js
similarity index 100%
rename from test/test/throws.js
rename to test-legacy/test/throws.js
diff --git a/test/test/throws.tap b/test-legacy/test/throws.tap
similarity index 100%
rename from test/test/throws.tap
rename to test-legacy/test/throws.tap
diff --git a/test/test/timeout--bail--buffer.tap b/test-legacy/test/timeout--bail--buffer.tap
similarity index 100%
rename from test/test/timeout--bail--buffer.tap
rename to test-legacy/test/timeout--bail--buffer.tap
diff --git a/test/test/timeout--bail.tap b/test-legacy/test/timeout--bail.tap
similarity index 100%
rename from test/test/timeout--bail.tap
rename to test-legacy/test/timeout--bail.tap
diff --git a/test/test/timeout--buffer.tap b/test-legacy/test/timeout--buffer.tap
similarity index 100%
rename from test/test/timeout--buffer.tap
rename to test-legacy/test/timeout--buffer.tap
diff --git a/test/test/timeout-via-runner--bail--buffer.tap b/test-legacy/test/timeout-via-runner--bail--buffer.tap
similarity index 100%
rename from test/test/timeout-via-runner--bail--buffer.tap
rename to test-legacy/test/timeout-via-runner--bail--buffer.tap
diff --git a/test/test/timeout-via-runner--bail.tap b/test-legacy/test/timeout-via-runner--bail.tap
similarity index 100%
rename from test/test/timeout-via-runner--bail.tap
rename to test-legacy/test/timeout-via-runner--bail.tap
diff --git a/test/test/timeout-via-runner--buffer.tap b/test-legacy/test/timeout-via-runner--buffer.tap
similarity index 100%
rename from test/test/timeout-via-runner--buffer.tap
rename to test-legacy/test/timeout-via-runner--buffer.tap
diff --git a/test/test/timeout-via-runner-ignore-sigterm--bail--buffer.tap b/test-legacy/test/timeout-via-runner-ignore-sigterm--bail--buffer.tap
similarity index 100%
rename from test/test/timeout-via-runner-ignore-sigterm--bail--buffer.tap
rename to test-legacy/test/timeout-via-runner-ignore-sigterm--bail--buffer.tap
diff --git a/test/test/timeout-via-runner-ignore-sigterm--bail.tap b/test-legacy/test/timeout-via-runner-ignore-sigterm--bail.tap
similarity index 100%
rename from test/test/timeout-via-runner-ignore-sigterm--bail.tap
rename to test-legacy/test/timeout-via-runner-ignore-sigterm--bail.tap
diff --git a/test/test/timeout-via-runner-ignore-sigterm--buffer.tap b/test-legacy/test/timeout-via-runner-ignore-sigterm--buffer.tap
similarity index 100%
rename from test/test/timeout-via-runner-ignore-sigterm--buffer.tap
rename to test-legacy/test/timeout-via-runner-ignore-sigterm--buffer.tap
diff --git a/test/test/timeout-via-runner-ignore-sigterm.js b/test-legacy/test/timeout-via-runner-ignore-sigterm.js
similarity index 100%
rename from test/test/timeout-via-runner-ignore-sigterm.js
rename to test-legacy/test/timeout-via-runner-ignore-sigterm.js
diff --git a/test/test/timeout-via-runner-ignore-sigterm.tap b/test-legacy/test/timeout-via-runner-ignore-sigterm.tap
similarity index 100%
rename from test/test/timeout-via-runner-ignore-sigterm.tap
rename to test-legacy/test/timeout-via-runner-ignore-sigterm.tap
diff --git a/test/test/timeout-via-runner-no-plan--bail--buffer.tap b/test-legacy/test/timeout-via-runner-no-plan--bail--buffer.tap
similarity index 100%
rename from test/test/timeout-via-runner-no-plan--bail--buffer.tap
rename to test-legacy/test/timeout-via-runner-no-plan--bail--buffer.tap
diff --git a/test/test/timeout-via-runner-no-plan--bail.tap b/test-legacy/test/timeout-via-runner-no-plan--bail.tap
similarity index 100%
rename from test/test/timeout-via-runner-no-plan--bail.tap
rename to test-legacy/test/timeout-via-runner-no-plan--bail.tap
diff --git a/test/test/timeout-via-runner-no-plan--buffer.tap b/test-legacy/test/timeout-via-runner-no-plan--buffer.tap
similarity index 100%
rename from test/test/timeout-via-runner-no-plan--buffer.tap
rename to test-legacy/test/timeout-via-runner-no-plan--buffer.tap
diff --git a/test/test/timeout-via-runner-no-plan.js b/test-legacy/test/timeout-via-runner-no-plan.js
similarity index 100%
rename from test/test/timeout-via-runner-no-plan.js
rename to test-legacy/test/timeout-via-runner-no-plan.js
diff --git a/test/test/timeout-via-runner-no-plan.tap b/test-legacy/test/timeout-via-runner-no-plan.tap
similarity index 100%
rename from test/test/timeout-via-runner-no-plan.tap
rename to test-legacy/test/timeout-via-runner-no-plan.tap
diff --git a/test/test/timeout-via-runner.js b/test-legacy/test/timeout-via-runner.js
similarity index 100%
rename from test/test/timeout-via-runner.js
rename to test-legacy/test/timeout-via-runner.js
diff --git a/test/test/timeout-via-runner.tap b/test-legacy/test/timeout-via-runner.tap
similarity index 100%
rename from test/test/timeout-via-runner.tap
rename to test-legacy/test/timeout-via-runner.tap
diff --git a/test/test/timeout.js b/test-legacy/test/timeout.js
similarity index 100%
rename from test/test/timeout.js
rename to test-legacy/test/timeout.js
diff --git a/test/test/timeout.tap b/test-legacy/test/timeout.tap
similarity index 100%
rename from test/test/timeout.tap
rename to test-legacy/test/timeout.tap
diff --git a/test/test/todo--buffer.tap b/test-legacy/test/todo--buffer.tap
similarity index 100%
rename from test/test/todo--buffer.tap
rename to test-legacy/test/todo--buffer.tap
diff --git a/test/test/todo.js b/test-legacy/test/todo.js
similarity index 100%
rename from test/test/todo.js
rename to test-legacy/test/todo.js
diff --git a/test/test/todo.tap b/test-legacy/test/todo.tap
similarity index 100%
rename from test/test/todo.tap
rename to test-legacy/test/todo.tap
diff --git a/test/test/type-function--bail--buffer.tap b/test-legacy/test/type-function--bail--buffer.tap
similarity index 100%
rename from test/test/type-function--bail--buffer.tap
rename to test-legacy/test/type-function--bail--buffer.tap
diff --git a/test/test/type-function--bail.tap b/test-legacy/test/type-function--bail.tap
similarity index 100%
rename from test/test/type-function--bail.tap
rename to test-legacy/test/type-function--bail.tap
diff --git a/test/test/type-function--buffer.tap b/test-legacy/test/type-function--buffer.tap
similarity index 100%
rename from test/test/type-function--buffer.tap
rename to test-legacy/test/type-function--buffer.tap
diff --git a/test/test/type-function.js b/test-legacy/test/type-function.js
similarity index 100%
rename from test/test/type-function.js
rename to test-legacy/test/type-function.js
diff --git a/test/test/type-function.tap b/test-legacy/test/type-function.tap
similarity index 100%
rename from test/test/type-function.tap
rename to test-legacy/test/type-function.tap
diff --git a/test/test/unfinished--bail--buffer.tap b/test-legacy/test/unfinished--bail--buffer.tap
similarity index 100%
rename from test/test/unfinished--bail--buffer.tap
rename to test-legacy/test/unfinished--bail--buffer.tap
diff --git a/test/test/unfinished--bail.tap b/test-legacy/test/unfinished--bail.tap
similarity index 100%
rename from test/test/unfinished--bail.tap
rename to test-legacy/test/unfinished--bail.tap
diff --git a/test/test/unfinished--buffer.tap b/test-legacy/test/unfinished--buffer.tap
similarity index 100%
rename from test/test/unfinished--buffer.tap
rename to test-legacy/test/unfinished--buffer.tap
diff --git a/test/test/unfinished-empty--bail--buffer.tap b/test-legacy/test/unfinished-empty--bail--buffer.tap
similarity index 100%
rename from test/test/unfinished-empty--bail--buffer.tap
rename to test-legacy/test/unfinished-empty--bail--buffer.tap
diff --git a/test/test/unfinished-empty--bail.tap b/test-legacy/test/unfinished-empty--bail.tap
similarity index 100%
rename from test/test/unfinished-empty--bail.tap
rename to test-legacy/test/unfinished-empty--bail.tap
diff --git a/test/test/unfinished-empty--buffer.tap b/test-legacy/test/unfinished-empty--buffer.tap
similarity index 100%
rename from test/test/unfinished-empty--buffer.tap
rename to test-legacy/test/unfinished-empty--buffer.tap
diff --git a/test/test/unfinished-empty.js b/test-legacy/test/unfinished-empty.js
similarity index 100%
rename from test/test/unfinished-empty.js
rename to test-legacy/test/unfinished-empty.js
diff --git a/test/test/unfinished-empty.tap b/test-legacy/test/unfinished-empty.tap
similarity index 100%
rename from test/test/unfinished-empty.tap
rename to test-legacy/test/unfinished-empty.tap
diff --git a/test/test/unfinished-promise--bail--buffer.tap b/test-legacy/test/unfinished-promise--bail--buffer.tap
similarity index 100%
rename from test/test/unfinished-promise--bail--buffer.tap
rename to test-legacy/test/unfinished-promise--bail--buffer.tap
diff --git a/test/test/unfinished-promise--bail.tap b/test-legacy/test/unfinished-promise--bail.tap
similarity index 100%
rename from test/test/unfinished-promise--bail.tap
rename to test-legacy/test/unfinished-promise--bail.tap
diff --git a/test/test/unfinished-promise--buffer.tap b/test-legacy/test/unfinished-promise--buffer.tap
similarity index 100%
rename from test/test/unfinished-promise--buffer.tap
rename to test-legacy/test/unfinished-promise--buffer.tap
diff --git a/test/test/unfinished-promise.js b/test-legacy/test/unfinished-promise.js
similarity index 100%
rename from test/test/unfinished-promise.js
rename to test-legacy/test/unfinished-promise.js
diff --git a/test/test/unfinished-promise.tap b/test-legacy/test/unfinished-promise.tap
similarity index 100%
rename from test/test/unfinished-promise.tap
rename to test-legacy/test/unfinished-promise.tap
diff --git a/test/test/unfinished.js b/test-legacy/test/unfinished.js
similarity index 100%
rename from test/test/unfinished.js
rename to test-legacy/test/unfinished.js
diff --git a/test/test/unfinished.tap b/test-legacy/test/unfinished.tap
similarity index 100%
rename from test/test/unfinished.tap
rename to test-legacy/test/unfinished.tap
diff --git a/test/test/unhandled-rejection--bail--buffer.tap b/test-legacy/test/unhandled-rejection--bail--buffer.tap
similarity index 100%
rename from test/test/unhandled-rejection--bail--buffer.tap
rename to test-legacy/test/unhandled-rejection--bail--buffer.tap
diff --git a/test/test/unhandled-rejection--bail.tap b/test-legacy/test/unhandled-rejection--bail.tap
similarity index 100%
rename from test/test/unhandled-rejection--bail.tap
rename to test-legacy/test/unhandled-rejection--bail.tap
diff --git a/test/test/unhandled-rejection--buffer.tap b/test-legacy/test/unhandled-rejection--buffer.tap
similarity index 100%
rename from test/test/unhandled-rejection--buffer.tap
rename to test-legacy/test/unhandled-rejection--buffer.tap
diff --git a/test/test/unhandled-rejection.js b/test-legacy/test/unhandled-rejection.js
similarity index 100%
rename from test/test/unhandled-rejection.js
rename to test-legacy/test/unhandled-rejection.js
diff --git a/test/test/unhandled-rejection.tap b/test-legacy/test/unhandled-rejection.tap
similarity index 100%
rename from test/test/unhandled-rejection.tap
rename to test-legacy/test/unhandled-rejection.tap
diff --git a/test/throw-after-end.js b/test-legacy/throw-after-end.js
similarity index 100%
rename from test/throw-after-end.js
rename to test-legacy/throw-after-end.js
diff --git a/test/throws-arg-ordering.js b/test-legacy/throws-arg-ordering.js
similarity index 100%
rename from test/throws-arg-ordering.js
rename to test-legacy/throws-arg-ordering.js
diff --git a/unit/base.js b/test/base.js
similarity index 99%
rename from unit/base.js
rename to test/base.js
index 22ff69d..41d2dc9 100644
--- a/unit/base.js
+++ b/test/base.js
@@ -84,7 +84,7 @@ t.test('throwing stuff', t => {
     at: {
       line: Number,
       column: Number,
-      file: 'unit/base.js'
+      file: 'test/base.js'
     },
     stack: String,
     test: 'ace'
diff --git a/unit/clean-yaml-object.js b/test/clean-yaml-object.js
similarity index 100%
rename from unit/clean-yaml-object.js
rename to test/clean-yaml-object.js
diff --git a/unit/diags.js b/test/diags.js
similarity index 100%
rename from unit/diags.js
rename to test/diags.js
diff --git a/unit/extra-from-error.js b/test/extra-from-error.js
similarity index 78%
rename from unit/extra-from-error.js
rename to test/extra-from-error.js
index 60b040d..b88698f 100644
--- a/unit/extra-from-error.js
+++ b/test/extra-from-error.js
@@ -4,23 +4,23 @@ const extraFromError = require('../lib/extra-from-error.js')
 
 const cases = [
   [new Error('ok'), null, null, {
-    at: { file: 'unit/extra-from-error.js' },
+    at: { file: 'test/extra-from-error.js' },
     message: null
   }],
 
   [new Error('ok'), { foo: 'bar' }, null, {
-    at: { file: 'unit/extra-from-error.js' },
+    at: { file: 'test/extra-from-error.js' },
     foo: 'bar'
   }],
 
   [new Error('ok'), null, { foo: 'bar', tapChild: 1234 }, {
-    at: { file: 'unit/extra-from-error.js' },
+    at: { file: 'test/extra-from-error.js' },
     foo: 'bar',
     tapChild: null
   }],
 
   [new Error('ok'), { foo: 'bar' }, { foo: 'XXX', tapChild: 1234 }, {
-    at: { file: 'unit/extra-from-error.js' },
+    at: { file: 'test/extra-from-error.js' },
     foo: 'bar',
     tapChild: null
   }],
@@ -28,7 +28,7 @@ const cases = [
   ['not an error', null, null, { error: 'not an error' }],
 
   [new Error(''), null, null, {
-    at: { file: 'unit/extra-from-error.js' },
+    at: { file: 'test/extra-from-error.js' },
     message: null
   }],
 
diff --git a/unit/mocha.js b/test/mocha.js
similarity index 100%
rename from unit/mocha.js
rename to test/mocha.js
diff --git a/unit/obj-to-yaml.js b/test/obj-to-yaml.js
similarity index 100%
rename from unit/obj-to-yaml.js
rename to test/obj-to-yaml.js
diff --git a/unit/parse-test-args.js b/test/parse-test-args.js
similarity index 100%
rename from unit/parse-test-args.js
rename to test/parse-test-args.js
diff --git a/unit/point.js b/test/point.js
similarity index 100%
rename from unit/point.js
rename to test/point.js
diff --git a/unit/run.js b/test/run.js
similarity index 100%
rename from unit/run.js
rename to test/run.js
diff --git a/unit/snapshot.js b/test/snapshot.js
similarity index 100%
rename from unit/snapshot.js
rename to test/snapshot.js
diff --git a/unit/spawn.js b/test/spawn.js
similarity index 100%
rename from unit/spawn.js
rename to test/spawn.js
diff --git a/unit/stack.js b/test/stack.js
similarity index 92%
rename from unit/stack.js
rename to test/stack.js
index 04e6fad..8822222 100644
--- a/unit/stack.js
+++ b/test/stack.js
@@ -8,7 +8,7 @@ t.test('in tapdir, no envs', t => {
   process.env.TAP_DEV_LONGSTACK = 0
   process.env.TAP_DEV_SHORTSTACK = 0
   const stack = require('../lib/stack.js').captureString()
-  t.match(stack, /unit[\/\\]stack\.js:\w+:\w+\)\n/)
+  t.match(stack, /test[\/\\]stack\.js:\w+:\w+\)\n/)
   t.notMatch(stack, '\.node-spawn-wrap')
   t.end()
 })
@@ -29,7 +29,7 @@ t.test('in home, longstack', t => {
   process.env.TAP_DEV_LONGSTACK = 1
   process.env.TAP_DEV_SHORTSTACK = 0
   const stack = require('../lib/stack.js').captureString()
-  t.match(stack, /unit[\/\\]stack\.js:\w+:\w+\)\n/)
+  t.match(stack, /test[\/\\]stack\.js:\w+:\w+\)\n/)
   t.notMatch(stack, '\.node-spawn-wrap')
   t.end()
 })
diff --git a/unit/stdin.js b/test/stdin.js
similarity index 100%
rename from unit/stdin.js
rename to test/stdin.js
diff --git a/unit/synonyms.js b/test/synonyms.js
similarity index 100%
rename from unit/synonyms.js
rename to test/synonyms.js
diff --git a/unit/tap.js b/test/tap.js
similarity index 100%
rename from unit/tap.js
rename to test/tap.js
diff --git a/test/test.js b/test/test.js
index 4c6f226..f06851a 100644
--- a/test/test.js
+++ b/test/test.js
@@ -1,212 +1,874 @@
-var glob = require('glob')
-var t = require('../')
-var spawn = require('child_process').spawn
-var node = process.execPath
-var fs = require('fs')
-var dir = __dirname + '/test/'
-var path = require('path')
-var yaml = require('js-yaml')
-
-process.env.TAP_BUFFER = 1
-// don't turn on parallelization for `npm test`, because it also
-// has coverage and this makes the spawn timeouts stuff break.
-if (process.env.npm_lifecycle_event !== 'test')
-  t.jobs = 2
-
-function regEsc (str) {
-  return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&')
-}
-
-module.exports = function (pattern, bail, buffer) {
-  pattern = path.basename(pattern)
-  glob.sync(dir + pattern).forEach(function (f) {
-    runTests(f, bail, buffer)
-  })
-}
-
-if (module === require.main) {
-  if (process.argv[2]) {
-    var bail, buffer
-    process.argv.slice(3).forEach(function (x) {
-      switch (x) {
-        case 'bail': return bail = true
-        case 'buffer': return buffer = true
-        case 'nobail': return bail = false
-        case 'nobuffer': return buffer = false
-      }
-    })
-    module.exports(process.argv[2], bail, buffer)
-  } else {
-    module.exports('*.js', false, false)
-  }
-}
+const t = require('../')
+const fs = require('fs')
+const path = require('path')
+const Test = t.Test
+const util = require('util')
+const assert = require('assert')
+const EE = require('events').EventEmitter
+const MiniPass = require('minipass')
 
-function runTests (file, bail, buffer) {
-  var bails = [ !!bail ]
-  var buffs = [ !!buffer ]
+// set this forcibly so it doesn't interfere with other tests.
+process.env.TAP_DIAG = ''
+process.env.TAP_BAIL = ''
 
-  if (bail === undefined) {
-    bails = [ true, false ]
-  }
+const clean = out => out
+  .replace(/ # time=[0-9\.]+m?s( \{.*)?\n/g, ' # {time}$1\n')
+  .replace(/\n(( {2})+)stack: \|-?\n((\1  .*).*\n)+/gm,
+    '\n$1stack: |\n$1  {STACK}\n')
+  .replace(/\n(( {2})+)stack: \>-?\n((\1  .*).*\n(\1\n)?)+/gm,
+    '\n$1stack: |\n$1  {STACK}\n')
+  .replace(/\n([a-zA-Z]*Error): (.*)\n((    at .*\n)*)+/gm,
+    '\n$1: $2\n    {STACK}\n')
+  .replace(/:[0-9]+:[0-9]+(\)?\n)/g, '#:#$1')
+  .replace(/(line|column): [0-9]+/g, '$1: #')
+  .split(process.cwd()).join('{CWD}')
 
-  if (buffer === undefined) {
-    buffs = [ true, false ]
-  }
 
-  var skip = false
-  if (file.match(/\b(timeout.*|pending-handles)\.js$/)) {
-    if (process.env.TRAVIS) {
-      skip = 'timeout and handles tests too timing dependent for Travis'
-    } else if (process.platform === 'win32') {
-      skip = 'timeout and handles tests rely on sinals windows cannot do'
+t.test('short output checks', t => {
+  const env = process.env.TAP_BUFFER
+  delete process.env.TAP_BUFFER
+  t.teardown(_ => process.env.TAP_BUFFER = env)
+
+  const cases = {
+    'no plan': tt => {
+      tt.pass('this is fine')
+      tt.end()
+    },
+
+    'plan': tt => {
+      tt.plan(1)
+      tt.pass('this is fine')
+    },
+
+    'comment': tt => {
+      tt.comment('this is fine')
+      tt.end()
+    },
+
+    'pragma': tt => {
+      tt.pragma({ strict: true })
+      tt.pragma({ strict: false })
+      tt.end()
+    },
+
+    'todo': tt => {
+      tt.notOk(true, 'i will do this later', { todo: true })
+      tt.notOk(true, { todo: 'later' })
+      tt.notOk(false)
+      tt.todo('i will do this later', tt => {
+        throw 'oh no'
+      })
+      tt.ok(false, { message: 'this is fine', skip: true })
+      tt.skip('i did not do this later', tt => {
+        throw 'oops'
+      })
+      tt.end()
+    },
+
+    'only': tt => {
+      tt.runOnly = false
+      tt.only('run this with a comment', tt => tt.end())
+      tt.test('this is a child test', tt => tt.end())
+      tt.test('run this with a comment', { only: true },
+              tt => tt.end())
+      tt.end()
+    },
+
+    'no plan fail': tt => {
+      tt.fail('this is fine', { diagnostic: false })
+      tt.fail({ todo: true })
+      tt.fail('this is fine')
+      tt.end()
+    },
+
+    'plan fail': tt => {
+      tt.plan(1, 'expect some failure here')
+      tt.fail('this is fine', { diagnostic: false })
+    },
+
+    'fail then end': tt => {
+      tt.test('child', tt => {
+        tt.fail('this is not ok')
+        tt.end()
+      })
+      tt.end()
+    },
+
+    'planned skip': tt => {
+      tt.plan(0, 'skip this one')
+    },
+
+    'multi-plan throws': tt => {
+      tt.plan(1)
+      tt.throws(() => tt.plan(1))
+    },
+
+    'negative plan throws': tt => {
+      tt.throws(() => tt.plan(-1))
+      tt.end()
+    },
+
+    'expect fail': tt => {
+      tt.plan(1)
+      tt.fail('this is fine', { expectFail: true })
+    },
+
+    'sub': tt => {
+      tt.test('named child', { buffered: true }, tt => {
+        tt.pass('this is fine')
+        tt.pass()
+        tt.pass({ todo: true })
+        tt.end()
+      })
+      tt.test(function named_function (tt) {
+        tt.plan(1)
+        tt.pass('also fine')
+      })
+      tt.test('promisey', tt => new Promise(resolve => {
+        tt.pass('i promise, it is fine')
+        resolve()
+      }))
+      tt.end()
+    },
+
+    'parallel sub': tt => {
+      tt.jobs = 2
+      tt.plan(2)
+      let slowGoing = true
+      tt.test('slow child', tt => setTimeout(_ => {
+        slowGoing = false
+        tt.end()
+      }, 100))
+      tt.test('fast child', tt => setTimeout(_ => {
+        tt.ok(slowGoing, 'slow is going')
+        tt.end()
+      }))
+    },
+
+    'reasoned bailout': tt => {
+      tt.test(tt => {
+        tt.pass('this is fine')
+        tt.bailout('not fine')
+      })
+      tt.end()
+    },
+
+    'unreasonable bailout': tt => {
+      tt.test(tt => {
+        tt.pass('this is fine')
+        tt.bailout()
+      })
+      tt.end()
+    },
+
+    'bailout after end': tt => {
+      tt.test(tt => {
+        tt.pass('this is fine')
+        tt.end()
+        tt.bailout('not fine')
+      })
+      tt.end()
+    },
+
+    'diags': tt => {
+      tt.pass('has diags', { diagnostic: true, foo: 1 })
+      tt.fail('fails without diag', { diagnostic: false, foo: 1 })
+      process.env.TAP_DIAG = '1'
+      tt.pass('has diags', { foo: 1 })
+      tt.fail('fails without diag', { diagnostic: false, foo: 1 })
+      process.env.TAP_DIAG = '0'
+      tt.pass('has diags', { diagnostic: true, foo: 1 })
+      tt.fail('fails without diag', { foo: 1 })
+      process.env.TAP_DIAG = ''
+      tt.end()
+    },
+
+    // _actually_ throwing is only handled by root TAP test
+    // using a Domain to catch beyond async stack drops
+    'gentle thrower': tt => tt.threw(new Error('ok')),
+    'child thrower': tt => tt.test('child test', tt =>
+      tt.threw(new Error('ok'))).then(tt.end),
+
+    'child end event thrower': tt => {
+      tt.test(tt => {
+        tt.plan(1)
+
+        tt.on('end', function () {
+          tt.comment('end() event')
+          throw new Error('beep')
+        })
+
+        tt.equal(3, 3)
+      })
+      tt.end()
     }
   }
 
-  if (file.match(/\bsegv\b/)) {
-    if (process.platform === 'win32')
-      skip = 'skip segv on windows'
-    else if (process.env.TRAVIS)
-      skip = 'skip segv on CI'
+  const keys = Object.keys(cases)
+  t.plan(keys.length)
+
+  for (let i in cases) {
+    t.test(i, t => {
+      const go = (t, tt) => new Promise(resolve => {
+        let out = ''
+        tt.on('data', c => out += c)
+        let didIt = false
+        const done = reason => {
+          // make sure we don't test on BOTH bailout and end
+          // as that is unnecessary
+          if (didIt)
+            return
+          didIt = true
+
+          if (tt.output)
+            out = tt.output
+
+          if (reason)
+            out = out.trim() + '\nBAILOUT: ' + JSON.stringify(reason)
+
+          t.matchSnapshot(clean(out), i)
+          resolve()
+        }
+        tt.on('end', done)
+        tt.on('bailout', done)
+        cases[i](tt)
+      })
+
+      t.test('no options', t =>
+        go(t, new Test()))
+      t.test('buffered', t =>
+        go(t, new Test({ buffered: true })))
+      t.test('bailout', t =>
+        go(t, new Test({ bail: true })))
+      t.test('runOnly', t =>
+        go(t, new Test({ runOnly: true })))
+      t.end()
+    })
   }
+})
+
+t.test('assertions and weird stuff', t => {
+  const env = process.env.TAP_BUFFER
+  process.env.TAP_BUFFER = '0'
+  t.teardown(_ => process.env.TAP_BUFFER = env)
+
+  const cases = {
+    'error': tt => {
+      tt.error(null, 'this is not an error')
+      tt.error(new Error('fail: poop'), 'this error is poop')
+      tt.error(new Error('fail: poop'))
+      tt.error('fail: poop', 'this error is "poop"')
+      tt.error('fail: poop')
+      tt.error(null, { todo: true })
+      tt.error(null)
+      tt.end()
+    },
+
+    equal: tt => {
+      tt.equal(1, 2)
+      tt.equal(1, '1', { skip: true })
+      tt.equal(1, 1, 'one is one')
+      // fails, but with the special note
+      tt.equal({foo: 1}, {foo: 1})
+      tt.end()
+    },
+
+    not: tt => {
+      tt.not(1, 2)
+      tt.not(1, '1', { skip: true })
+      tt.not(1, 1, 'one is not one')
+      tt.not({}, {})
+      tt.end()
+    },
+
+    same: tt => {
+      const o = { foo: 1 }
+      tt.same([1, 2, 3], ['1', '2', '3'])
+      tt.same(o, o)
+      tt.same({ foo: 1 }, { foo: 1 }, 'object exactness')
+      tt.same({ foo: 2 }, { foo: 1 }, { skip: true })
+      tt.notSame({ foo: 2 }, { foo: 1 }, 'this one passes')
+      tt.notSame({ foo: 2 }, { foo: 1 }, { skip: true })
+      tt.notSame({ foo: { bar: 2 } }, { foo: { bar: '2' } },
+                 'this one fails')
+
+      tt.strictSame({ foo: 2 }, { foo: 1 }, { skip: true })
+      tt.strictSame([1, 2, 3], ['1', '2', '3'])
+      tt.strictSame(o, { foo: 1 })
+      tt.strictSame(o, o)
+      tt.notStrictSame({ foo: 2 }, { foo: 1 }, { skip: true })
+      tt.notStrictSame({ foo: 2 }, { foo: 1 }, 'this one passes')
+      tt.notStrictSame({ foo: { bar: 2 } }, { foo: { bar: '2' } },
+                       'this one passes')
+      tt.notStrictSame({ foo: { bar: 2 } }, { foo: { bar: 2 } },
+                       'this one fails')
+
+      tt.end()
+    },
+
+    match: tt => {
+      tt.match({ a: 'b', c: /asdf/ }, { a: String, c: RegExp })
+      tt.match({ a: 'b', c: /asdf/ }, { a: 'asdf', c: 1 })
+      tt.match({ a: 'b', c: /asdf/ }, { a: String, c: RegExp },
+               'a message')
+      tt.match({ a: 'b', c: /asdf/ }, { a: 'asdf', c: 1 },
+               { todo: true })
+      tt.notMatch({ a: 'b', c: /asdf/ }, { a: String, c: RegExp })
+      tt.notMatch({ a: 'b', c: /asdf/ }, { a: 'asdf', c: 1 })
+      tt.notMatch({ a: 'b', c: /asdf/ }, { a: String, c: RegExp },
+                  'a message')
+      tt.notMatch({ a: 'b', c: /asdf/ }, { a: 'asdf', c: 1 },
+                  { todo: true })
+
+      tt.end()
+    },
+
+    type: tt => {
+      tt.type(null, 'object', 'this fails')
+      tt.type(null, 'object', { expectFail: true })
+      tt.type(1234, 'number')
+      tt.type(tt, Test)
+      tt.type({}, function () {}, 'fails, anonymously')
+      const o = {}
+      tt.type(o, o, 'a thing is a thing')
+      tt.type(() => {}, 'function', 'arrows are functions')
+      tt.type(() => {}, Function, 'arrows are functions')
+      tt.type(() => {}, Object, 'fail: arrows are not objects')
+      tt.type({}, 'object')
+      tt.type(tt, 'Test')
+      tt.type(tt, 'EventEmitter')
+      tt.end()
+    },
+
+    throws: tt => {
+      tt.throws(() => { throw new TypeError('x') }, TypeError)
+      tt.throws(() => { throw new TypeError('x') }, TypeError)
+      tt.throws(() => { throw new TypeError('x') },
+                new TypeError('x'))
+      tt.throws(() => { throw new TypeError('x') },
+                { message: 'x' })
+
+      const nameless = new Error('x')
+      Object.defineProperty(nameless, 'name', {
+        value: undefined
+      })
+      nameless.stack = /^.*$/
+      tt.throws(() => { throw new Error('x') }, nameless)
+      tt.throws(() => { throw nameless }, { message: 'x' })
+      tt.throws(() => { throw nameless }, /^.$/)
+      tt.throws(() => { throw nameless })
+
+      const prop = new Error('noent')
+      prop.code= 'ENOENT'
+      tt.throws(() => {
+        const er = new Error('noent')
+        er.code = 'ENOENT'
+        er.path = __filename
+        throw er
+      }, prop)
+
+      tt.throws(() => 'doesnt tho', 'fail: does not throw actually')
+
+      tt.throws(() => { throw new Error('x') }, {}, { skip: true })
+      tt.throws(() => { throw new Error('x') }, {},
+                {}, {}, 1)
+      tt.throws(() => { throw new Error('x') },
+                () => {}, () => {}, () => {},
+                'extra functions are no-ops for bw comp')
+      tt.throws('todo')
+      tt.end()
+    },
+
+    doesNotThrow: tt => {
+      tt.doesNotThrow(() => {}, 'this is fine')
+      tt.doesNotThrow(() => {}, { todo: true })
+      tt.doesNotThrow('reverse args', () => {})
+      tt.doesNotThrow('this is todo')
+      tt.doesNotThrow('fail', () => {
+        throw new Error('ouch')
+      })
+      tt.end()
+    },
+
+    rejects: tt => {
+      tt.rejects('promise', new Promise((_, reject) => {
+        reject(new Error('expected'))
+      }))
+      tt.rejects(() => new Promise((_, reject) => {
+        reject(new Error('expected'))
+      }), 'fn returns promise')
+      tt.rejects(new Promise((_, reject) => {
+        reject(new Error('expected'))
+      }))
+      tt.rejects(() => new Promise((_, reject) => {
+        reject(new Error('expected'))
+      }))
+      tt.rejects('todo because no fn/promise', { foo: 'bar' })
+      tt.comment('next 2 also todo, no message')
+      tt.rejects({ x: 1 })
+      tt.rejects()
+      tt.rejects(() => new Promise((_, reject) => {
+        reject(new Error('expected'))
+      }), new Error('expected'), 'throws expected error')
+      tt.rejects(() => new Promise((_, reject) => {
+        reject(new TypeError('expected'))
+      }), TypeError, 'throws expected error type')
+      tt.rejects(() => new Promise((_, reject) => {
+        reject(new TypeError('expected'))
+      }), TypeError, ()=>{}, _=>_, 'extra functions are no-ops')
+      tt.rejects(() => new Promise((_, reject) => {
+        reject(new TypeError('expected'))
+      }), TypeError, 1, 2, {}, {}, 'extra args are no-ops')
+
+      const prop = new Error('noent')
+      prop.code= 'ENOENT'
+      tt.rejects(new Promise((_, reject) => {
+        const er = new Error('noent')
+        er.code = 'ENOENT'
+        er.path = __filename
+        reject(er)
+      }), prop)
+
+      const nameless = new Error('x')
+      Object.defineProperty(nameless, 'name', {
+        value: undefined
+      })
+      nameless.stack = /^.*$/
+      tt.rejects(new Promise((_,r) => r(new Error('x'))), nameless)
+      tt.rejects(new Promise((_,r) => r(nameless)), { message: 'x' })
+      tt.rejects(new Promise((_,r) => r(nameless)), /^.$/)
+      tt.rejects(new Promise((_,r) => r(nameless)))
+
+      tt.rejects(() => {}, 'fail: no promise')
+      tt.rejects(() => ({}), 'fail: no promise')
+
+      tt.rejects(new Promise(r => r(420)), 'fail: passing promise')
+
+      tt.end()
+    },
+
+    resolves: tt => {
+      tt.resolves(new Promise(r => r(420)))
+      tt.resolves(new Promise(r => r(420)), { todo: true })
+      tt.resolves(new Promise(r => r(420)), 'passing promise')
+      tt.resolves(() => new Promise(r => r(420)), 'passing promise fn')
+      tt.resolves(() => {}, 'fail: no promise')
+      tt.end()
+    },
+
+    resolveMatch: tt => {
+      tt.resolveMatch(new Promise(r => r(420)), Number)
+      tt.resolveMatch(new Promise(r => r(420)), 'asdf', { todo: true })
+      tt.resolveMatch(new Promise(r => r(420)), 420, 'promise')
+      tt.resolveMatch(() => new Promise(r => r(420)), 420, 'promise fn')
+      tt.resolveMatch(() => {}, {}, 'fail: no promise')
+      tt.end()
+    },
+
+    'test after end fails': tt => {
+      tt.end()
+      tt.pass('failing pass')
+    },
+
+    'plan excess': tt => {
+      tt.plan(1)
+      tt.pass('fine')
+      tt.pass('not fine')
+    },
+
+    'plan excess, ignored when failing': tt => {
+      tt.plan(1)
+      tt.fail('expected fail', { diagnostic: false })
+      tt.pass('not fine')
+    },
+
+    'using the assertAt field': tt => {
+      const stack = require('../lib/stack.js')
+      const foo = () => tt.fail('expect fail')
+      const bar = () => foo()
+      const baz = () => { tt.assertAt = stack.at(); bar() }
+
+      tt.plan(1)
+      baz()
+    },
+
+    'using the assertStack field': tt => {
+      const stack = require('../lib/stack.js')
+      const foo = () => tt.fail('expect fail')
+      const bar = () => foo()
+      const baz = () => { tt.assertStack = stack.captureString(80); bar() }
+
+      tt.plan(1)
+      baz()
+    },
+
+    printResult: tt => {
+      // super low-level
+      tt.printResult(true, 'this is fine')
+      tt.end()
+    },
+
+    'printResult after plan end': tt => {
+      // super low-level
+      tt.end()
+      tt.printResult(true, 'this is fine')
+    },
+
+    'plan, child test, explicit end': tt => {
+      tt.plan(1)
+      tt.test(tt => Promise.resolve('ok'))
+      tt.end()
+    },
+
+    'end multiple times': tt => {
+      tt.plan(1)
+      tt.pass('yes')
+      tt.end()
+      tt.end()
+    },
+
+    'error event with domainEmitter re-throws': tt => {
+      const er = new Error('fail')
+      const d = tt.domain
+      try {
+        d.run(() => {
+          const e = new EE
+          e.emit('error', er)
+          tt.fail('did not throw')
+        })
+      } catch (er) {
+        tt.pass('the better to this.threw you with')
+        tt.end()
+      }
+    },
+
+    'thrower after end': tt => {
+      tt.test('child', tt => {
+        tt.plan(1)
+        tt.pass('this is fine')
+        tt.threw(new Error('catch it in the parent'))
+      })
+      tt.end()
+    },
+
+    'child breaks a promise': tt => {
+      tt.test('child', () => new Promise((_, r) => r(new Error('poop'))))
+      tt.end()
+    },
+
+    'child teardown throw': tt => {
+      tt.test('child', tt => {
+        tt.teardown(() => { throw new Error('fail') })
+        tt.end()
+      })
+      tt.end()
+    },
+
+    'fullname without main': tt => {
+      const main = process.argv[1]
+      process.argv[1] = ''
+      tt.test('child', tt => {
+        tt.pass(tt.fullname)
+        tt.end()
+      })
+      tt.pass(tt.fullname)
+      process.argv[1] = main
+      tt.end()
+    },
+
+    'comment after end': tt => {
+      tt.end()
+      tt.comment('this is fine')
+    },
+
+    grep: tt => {
+      tt.test('parent', { grep: [ /x$/, /y$/ ] }, tt => {
+        tt.test('do not run this', tt => tt.threw('no'))
+        tt.test('but do run this x', tt => {
+          tt.test('do not run this', tt => tt.threw('stop'))
+          tt.test('but do run this y', tt => {
+            tt.test('grand kids', tt => tt.end())
+            tt.test('get all the', tt => tt.end())
+            tt.test('goodies', tt => {
+              tt.pass('this is good')
+              tt.end()
+            })
+            tt.end()
+          })
+          tt.end()
+        })
+        tt.end()
+      })
+      tt.end()
+    },
+
+    grepInvert: tt => {
+      tt.test('parent', { grepInvert: true, grep: [ /x$/, /y$/ ] }, tt => {
+        tt.test('do not run this x', tt => tt.threw('no'))
+        tt.test('but do run this', tt => {
+          tt.test('do not run this y', tt => tt.threw('stop'))
+          tt.test('but do run this', tt => {
+            tt.test('grand kids', tt => tt.end())
+            tt.test('get all the', tt => tt.end())
+            tt.test('goodies', tt => {
+              tt.pass('this is good')
+              tt.end()
+            })
+            tt.end()
+          })
+          tt.end()
+        })
+        tt.end()
+      })
+      tt.end()
+    },
+
+    autoEnd: tt => {
+      tt.options.autoend = true
+      tt.test('this should automatically end', { autoend: true }, t => {
+        t.pass('this is fine')
+        setTimeout(() => t.pass('also fine'))
+      })
+      tt.test('this should also end', t => {
+        t.pass('this is fine')
+        setTimeout(() => t.pass('also fine'))
+        t.autoend()
+      })
+      tt.test('autoend async 1', t => {
+        setTimeout(() =>
+          t.test('st', t => setTimeout(() => t.end())))
+        t.autoend()
+      })
+      tt.test('autoend async 2', t => {
+        setTimeout(() => setTimeout(() =>
+          t.test('st', t => setTimeout(() => t.end()))))
+        t.autoend()
+      })
+      tt.test('autoend async limit', t => {
+        setTimeout(() => setTimeout(() => setTimeout(() =>
+          t.test('st', t => setTimeout(() => t.end())))))
+        t.autoend()
+      })
+
+    },
+
+    'endAll with test children': tt => {
+      tt.test('this is the test that never ends', tt => {
+        tt.test('it goes on and on my friend', tt => {
+          tt.pass('this is ok')
+          tt.test('misbehaving child', () => new Promise(()=>{}))
+        })
+        tt.pass('some queue stuff')
+      })
+      tt.endAll()
+    },
+
+    'endAll with stdin': tt => {
+      const s = new MiniPass()
+      tt.stdin({ tapStream: s })
+      s.write('TAP version 13\nok - but not ended\n')
+      tt.endAll()
+    },
+
+    'endAll with bailout': tt => {
+      tt.on('bailout', reason => tt.endAll())
+
+      tt.test('child', { bail: true }, tt => {
+        tt.fail('not fine')
+        tt.end()
+      })
+    },
+
+    'bailout with indented subs': tt => {
+      tt.test('1', tt => tt.end())
+      tt.test('2', tt => Promise.resolve(null))
+      tt.test('3', tt => setTimeout(() => tt.end()))
+      process.nextTick(() => tt.bailout('whoops'))
+      tt.end()
+    },
+
+    'bailout with buffered subs': tt => {
+      const o = { buffered: true }
+      tt.test('1', o, tt => tt.end())
+      tt.test('2', o, tt => Promise.resolve(null))
+      tt.test('3', o, tt => setTimeout(() => tt.end()))
+      process.nextTick(() => tt.bailout('whoops'))
+      tt.end()
+    },
+
+    'silent subs': tt => {
+      tt.test('child', tt => Promise.resolve(null))
+      tt.test('shhh', { silent: true }, tt => tt.end())
+      tt.test('child 2', tt => tt.end())
+      tt.end()
+    },
+
+    'beforeEach afterEach': tt => {
+      tt.beforeEach(function (cb) {
+        console.error('parent be', this.name)
+        cb()
+      })
+      tt.afterEach(function (cb) {
+        console.error('parent ae', this.name)
+        cb()
+      })
+      tt.test('child', tt => {
+        tt.beforeEach(function (cb) {
+          console.error('child be', this.name)
+          cb()
+        })
+        tt.afterEach(function (cb) {
+          console.error('child ae', this.name)
+          cb()
+        })
+        tt.test('grandkid', tt => Promise.resolve(console.error('in test')))
+        tt.end()
+      })
+      tt.end()
+    },
+
+    'timeout expiration': t => {
+      const buf = [ false, true ]
+      buf.forEach(buf => {
+        t.test('get lost buf=' + buf, { buffered: buf, timeout: 1 }, t => {
+          const timer = setTimeout(() => {}, 10000)
+          t.on('timeout', () => clearTimeout(timer))
+        })
+      })
+      t.end()
+    },
+
+    'timeout with subs': t => {
+      const buf = [ false, true ]
+      buf.forEach(buf => {
+        t.test('get lost buf=' + buf, { buffered: buf, timeout: 1 }, t => {
+          const timer = setTimeout(() => {}, 10000)
+          t.test('carry on', t => t.on('timeout', () => clearTimeout(timer)))
+        })
+      })
+      t.end()
+    },
+
+    'timeout at the last tick': t => {
+      const buf = [ false, true ]
+      buf.forEach(buf => {
+        t.test('work it harder buf=' + buf, { buffered: buf, timeout: 1 }, t => {
+          t.plan(1)
+          const start = Date.now()
+          const finish = start + 10
+          while (finish > Date.now()) {
+            fs.readFileSync(__filename)
+          }
+          t.pass('this is fine')
+        })
+      })
+      t.end()
+    },
+
 
-  if (file.match(/\bsigterm\b/)) {
-    if (process.version.match(/^v0\.10\./)) {
-      skip = 'sigterm handling test does not work on 0.10'
-    } else if (process.platform === 'win32') {
-      skip = 'sigterm handling is weird on windows'
-    }
   }
 
-  var f = file.substr(dir.length)
-  t.test(f, { skip: skip }, function (t) {
-    t.plan(bails.length * buffs.length)
-    bails.forEach(function (bail) {
-      buffs.forEach(function (buff) {
-        t.test('bail=' + bail + ' buffer=' + buff, function (t) {
-          runTest(t, bail, buff, file)
+  const keys = Object.keys(cases)
+  t.plan(keys.length)
+
+  for (let i in cases) {
+    t.test(i, t => {
+      t.plan(1)
+
+      const error = console.error
+      t.teardown(() => console.error = error)
+      let err = ''
+      console.error = function () {
+        err += util.format.apply(util, arguments) + '\n'
+      }
+
+      const tt = new Test()
+      let out = ''
+      tt.on('data', c => out += c)
+      tt.on('end', _ => {
+        setTimeout(() => {
+          if (err)
+            out = out.trim() + '\n' + 'STDERR:\n' + err
+          t.matchSnapshot(clean(out), i)
         })
       })
+      cases[i](tt)
     })
-  })
-}
-
-function runTest (t, bail, buffer, file) {
-  var resfile = file.replace(/\.js$/,
-    (bail ? '--bail' : '') +
-    (buffer ? '--buffer' : '') +
-    '.tap')
-
-  var want
-  try {
-    want = fs.readFileSync(resfile, 'utf8').split(/\r?\n/)
-  } catch (er) {
-    // there isn't an output file for bail tests that pass.
-    if (bail)
-      return t.end()
-    else
-      throw er
   }
+})
 
-  var child = spawn(node, [file], {
-    stdio: [ 0, 'pipe', 'pipe' ],
-    env: {
-      TAP_BAIL: bail ? 1 : 0,
-      TAP_BUFFER: buffer ? 1 : 0,
-      PATH: process.env.PATH
-    }
+t.test('addAssert', t => {
+  t.throws(() => t.addAssert(null), new TypeError('name is required'))
+  t.throws(() => t.addAssert('x'), new TypeError('number of args required'))
+  t.throws(() => t.addAssert('x', -1),
+           new TypeError('number of args required'))
+  t.throws(() => t.addAssert('x', 1),
+           new TypeError('function required for addAssert'))
+  t.throws(() => t.addAssert('ok', 1, () => {}),
+           new TypeError('attempt to re-define `ok` assert'))
+
+  const url = require('url')
+  const tt = new Test({ buffered: true })
+  tt.addAssert('isUrl', 1, function isUrl (u, message, extra) {
+    return this.match(url.parse(u), {
+      protocol: /^https?:$/,
+      slashes: true,
+      host: String,
+      path: /^\/.*$/
+    }, message || 'expect a valid http/https url', extra)
   })
+  tt.isUrl('hello is not a url')
+  tt.isUrl('http://x', 'x is a url!')
+  tt.isUrl('https://skip:420/', { skip: 420 })
+  tt.end()
 
-  var found = ''
+  t.matchSnapshot(clean(tt.output), 'using the custom isUrl assertion')
+  return t.end()
+})
 
-  child.stdout.setEncoding('utf8')
-  child.stdout.on('data', function (c) {
-    found += c
-  })
-  child.on('close', function (er) {
-    found = found.split(/\r?\n/)
-    var inyaml = false
-    var startlen = 0
-    var y = ''
-
-    // walk line by line so yamlish (json) can be handled
-    // otherwise making any changes in this lib would hurt
-    for (var f = 0, w = 0;
-         f < found.length && w < want.length;
-         f++, w++) {
-      var wline = want[w]
-      var fline = found[f]
-      var wdata = false
-
-      if (inyaml) {
-        if (fline.match(/^\s*\.\.\.$/) && fline.length === startlen) {
-          var data = yaml.safeLoad(y)
-          inyaml = false
-          y = ''
-          wdata = JSON.parse(wline)
-          patternify(wdata)
-          var msg = 'line ' + f + ' '
-          if (wline.length < 50)
-            msg += wline
-          else
-            msg += wline.substr(0, 45) + '...'
-          t.match(data, wdata, msg)
-          f--
-        } else {
-          y += fline + '\n'
-          w--
-        }
-        continue
-      } else {
-        t.match(fline, patternify(wline),
-                'line ' + f + ' ' +
-                wline.replace(/# (todo|skip)/gi, '- $1'),
-                { test: f })
-
-        if (fline.match(/^\s*\-\-\-$/)) {
-          startlen = fline.length
-          inyaml = true
-          y = ''
-        }
-      }
+t.test('spawn', t => {
+  const okjs = path.resolve(__dirname, '../ok.test.js')
+  t.teardown(() => fs.unlinkSync(okjs))
+  fs.writeFileSync(okjs, "require('./').pass('this is fine')\n")
+  t.spawn(process.execPath, okjs)
+  t.spawn(process.execPath, okjs, 'a string as options')
+  t.spawn(process.execPath, okjs, { name: 'a name as an option' })
 
-      if (!t.passing()) {
-        return t.end()
-      }
-    }
+  t.test('kitty pipe', t => {
+    t.on('spawn', t =>
+      t.proc.stdin.end('TAP version 13\n1..1\nok\n'))
+    t.spawn('cat', [], { stdio: 'pipe' })
+    t.spawn('cat', null, { stdio: 'pipe' }, 'aggreeable kitten')
     t.end()
   })
-}
-
-function patternify (pattern, key) {
-  var root = !key
-  if (typeof pattern === 'object' && pattern) {
-    Object.keys(pattern).forEach(function (k) {
-      pattern[k] = patternify(pattern[k], k)
-      // sigbus an sigsegv are more or less the same thing.
-      if (root && k === 'signal' && pattern[k] === 'SIGBUS')
-        pattern[k] = /^SIG(BUS|SEGV)$/
-    })
-    return pattern
-  }
 
-  if (typeof pattern !== 'string') {
-    return pattern
-  }
+  t.end()
+})
 
-  var re = /___\/(.*?)\/~~~/
-  var match = pattern.match(re)
-  if (!match) {
-    return pattern
-  }
+t.test('snapshots', t => {
+  const Snapshot = require('../lib/snapshot.js')
+  const snap = [ true, false ]
+  const outputs = snap.map(snap => {
+    const tt = new Test({
+      snapshot: snap,
+      name: 'deleteme',
+      buffered: true
+    })
+    tt.test('child test', { snapshot: snap }, tt => {
+      tt.matchSnapshot({ foo: 'bar' }, 'an object')
+      tt.matchSnapshot('some string \\ \` ${process.env.FOO}', 'string')
+      tt.matchSnapshot('do this eventually', { todo: 'later' })
+      tt.end()
+    })
+    tt.emit('teardown')
+    tt.end()
+    return tt.output
+  })
 
-  var pl = pattern.split('___/')
-  var p = '^' + regEsc(pl.shift())
+  t.matchSnapshot(clean(outputs[0]), 'saving the snapshot')
+  t.matchSnapshot(clean(outputs[1]), 'verifying the snapshot')
+  fs.unlinkSync(path.resolve(__dirname, '..',
+    'tap-snapshots', 'test-test.js-deleteme.test.js'))
 
-  pl.forEach(function (wlpart) {
-    var wlp = wlpart.split('/~~~')
-    p += wlp.shift()
-    p += regEsc(wlp.join('/~~~'))
-  })
-  p += '$'
-  return new RegExp(p)
-}
+  t.end()
+})
diff --git a/unit/test.js b/unit/test.js
deleted file mode 100644
index abfd6c0..0000000
--- a/unit/test.js
+++ /dev/null
@@ -1,874 +0,0 @@
-const t = require('../')
-const fs = require('fs')
-const path = require('path')
-const Test = t.Test
-const util = require('util')
-const assert = require('assert')
-const EE = require('events').EventEmitter
-const MiniPass = require('minipass')
-
-// set this forcibly so it doesn't interfere with other tests.
-process.env.TAP_DIAG = ''
-process.env.TAP_BAIL = ''
-
-const clean = out => out
-  .replace(/ # time=[0-9\.]+m?s( \{.*)?\n/g, ' # {time}$1\n')
-  .replace(/\n(( {2})+)stack: \|-?\n((\1  .*).*\n)+/gm,
-    '\n$1stack: |\n$1  {STACK}\n')
-  .replace(/\n(( {2})+)stack: \>-?\n((\1  .*).*\n(\1\n)?)+/gm,
-    '\n$1stack: |\n$1  {STACK}\n')
-  .replace(/\n([a-zA-Z]*Error): (.*)\n((    at .*\n)*)+/gm,
-    '\n$1: $2\n    {STACK}\n')
-  .replace(/:[0-9]+:[0-9]+(\)?\n)/g, '#:#$1')
-  .replace(/(line|column): [0-9]+/g, '$1: #')
-  .split(process.cwd()).join('{CWD}')
-
-
-t.test('short output checks', t => {
-  const env = process.env.TAP_BUFFER
-  delete process.env.TAP_BUFFER
-  t.teardown(_ => process.env.TAP_BUFFER = env)
-
-  const cases = {
-    'no plan': tt => {
-      tt.pass('this is fine')
-      tt.end()
-    },
-
-    'plan': tt => {
-      tt.plan(1)
-      tt.pass('this is fine')
-    },
-
-    'comment': tt => {
-      tt.comment('this is fine')
-      tt.end()
-    },
-
-    'pragma': tt => {
-      tt.pragma({ strict: true })
-      tt.pragma({ strict: false })
-      tt.end()
-    },
-
-    'todo': tt => {
-      tt.notOk(true, 'i will do this later', { todo: true })
-      tt.notOk(true, { todo: 'later' })
-      tt.notOk(false)
-      tt.todo('i will do this later', tt => {
-        throw 'oh no'
-      })
-      tt.ok(false, { message: 'this is fine', skip: true })
-      tt.skip('i did not do this later', tt => {
-        throw 'oops'
-      })
-      tt.end()
-    },
-
-    'only': tt => {
-      tt.runOnly = false
-      tt.only('run this with a comment', tt => tt.end())
-      tt.test('this is a child test', tt => tt.end())
-      tt.test('run this with a comment', { only: true },
-              tt => tt.end())
-      tt.end()
-    },
-
-    'no plan fail': tt => {
-      tt.fail('this is fine', { diagnostic: false })
-      tt.fail({ todo: true })
-      tt.fail('this is fine')
-      tt.end()
-    },
-
-    'plan fail': tt => {
-      tt.plan(1, 'expect some failure here')
-      tt.fail('this is fine', { diagnostic: false })
-    },
-
-    'fail then end': tt => {
-      tt.test('child', tt => {
-        tt.fail('this is not ok')
-        tt.end()
-      })
-      tt.end()
-    },
-
-    'planned skip': tt => {
-      tt.plan(0, 'skip this one')
-    },
-
-    'multi-plan throws': tt => {
-      tt.plan(1)
-      tt.throws(() => tt.plan(1))
-    },
-
-    'negative plan throws': tt => {
-      tt.throws(() => tt.plan(-1))
-      tt.end()
-    },
-
-    'expect fail': tt => {
-      tt.plan(1)
-      tt.fail('this is fine', { expectFail: true })
-    },
-
-    'sub': tt => {
-      tt.test('named child', { buffered: true }, tt => {
-        tt.pass('this is fine')
-        tt.pass()
-        tt.pass({ todo: true })
-        tt.end()
-      })
-      tt.test(function named_function (tt) {
-        tt.plan(1)
-        tt.pass('also fine')
-      })
-      tt.test('promisey', tt => new Promise(resolve => {
-        tt.pass('i promise, it is fine')
-        resolve()
-      }))
-      tt.end()
-    },
-
-    'parallel sub': tt => {
-      tt.jobs = 2
-      tt.plan(2)
-      let slowGoing = true
-      tt.test('slow child', tt => setTimeout(_ => {
-        slowGoing = false
-        tt.end()
-      }, 100))
-      tt.test('fast child', tt => setTimeout(_ => {
-        tt.ok(slowGoing, 'slow is going')
-        tt.end()
-      }))
-    },
-
-    'reasoned bailout': tt => {
-      tt.test(tt => {
-        tt.pass('this is fine')
-        tt.bailout('not fine')
-      })
-      tt.end()
-    },
-
-    'unreasonable bailout': tt => {
-      tt.test(tt => {
-        tt.pass('this is fine')
-        tt.bailout()
-      })
-      tt.end()
-    },
-
-    'bailout after end': tt => {
-      tt.test(tt => {
-        tt.pass('this is fine')
-        tt.end()
-        tt.bailout('not fine')
-      })
-      tt.end()
-    },
-
-    'diags': tt => {
-      tt.pass('has diags', { diagnostic: true, foo: 1 })
-      tt.fail('fails without diag', { diagnostic: false, foo: 1 })
-      process.env.TAP_DIAG = '1'
-      tt.pass('has diags', { foo: 1 })
-      tt.fail('fails without diag', { diagnostic: false, foo: 1 })
-      process.env.TAP_DIAG = '0'
-      tt.pass('has diags', { diagnostic: true, foo: 1 })
-      tt.fail('fails without diag', { foo: 1 })
-      process.env.TAP_DIAG = ''
-      tt.end()
-    },
-
-    // _actually_ throwing is only handled by root TAP test
-    // using a Domain to catch beyond async stack drops
-    'gentle thrower': tt => tt.threw(new Error('ok')),
-    'child thrower': tt => tt.test('child test', tt =>
-      tt.threw(new Error('ok'))).then(tt.end),
-
-    'child end event thrower': tt => {
-      tt.test(tt => {
-        tt.plan(1)
-
-        tt.on('end', function () {
-          tt.comment('end() event')
-          throw new Error('beep')
-        })
-
-        tt.equal(3, 3)
-      })
-      tt.end()
-    }
-  }
-
-  const keys = Object.keys(cases)
-  t.plan(keys.length)
-
-  for (let i in cases) {
-    t.test(i, t => {
-      const go = (t, tt) => new Promise(resolve => {
-        let out = ''
-        tt.on('data', c => out += c)
-        let didIt = false
-        const done = reason => {
-          // make sure we don't test on BOTH bailout and end
-          // as that is unnecessary
-          if (didIt)
-            return
-          didIt = true
-
-          if (tt.output)
-            out = tt.output
-
-          if (reason)
-            out = out.trim() + '\nBAILOUT: ' + JSON.stringify(reason)
-
-          t.matchSnapshot(clean(out), i)
-          resolve()
-        }
-        tt.on('end', done)
-        tt.on('bailout', done)
-        cases[i](tt)
-      })
-
-      t.test('no options', t =>
-        go(t, new Test()))
-      t.test('buffered', t =>
-        go(t, new Test({ buffered: true })))
-      t.test('bailout', t =>
-        go(t, new Test({ bail: true })))
-      t.test('runOnly', t =>
-        go(t, new Test({ runOnly: true })))
-      t.end()
-    })
-  }
-})
-
-t.test('assertions and weird stuff', t => {
-  const env = process.env.TAP_BUFFER
-  process.env.TAP_BUFFER = '0'
-  t.teardown(_ => process.env.TAP_BUFFER = env)
-
-  const cases = {
-    'error': tt => {
-      tt.error(null, 'this is not an error')
-      tt.error(new Error('fail: poop'), 'this error is poop')
-      tt.error(new Error('fail: poop'))
-      tt.error('fail: poop', 'this error is "poop"')
-      tt.error('fail: poop')
-      tt.error(null, { todo: true })
-      tt.error(null)
-      tt.end()
-    },
-
-    equal: tt => {
-      tt.equal(1, 2)
-      tt.equal(1, '1', { skip: true })
-      tt.equal(1, 1, 'one is one')
-      // fails, but with the special note
-      tt.equal({foo: 1}, {foo: 1})
-      tt.end()
-    },
-
-    not: tt => {
-      tt.not(1, 2)
-      tt.not(1, '1', { skip: true })
-      tt.not(1, 1, 'one is not one')
-      tt.not({}, {})
-      tt.end()
-    },
-
-    same: tt => {
-      const o = { foo: 1 }
-      tt.same([1, 2, 3], ['1', '2', '3'])
-      tt.same(o, o)
-      tt.same({ foo: 1 }, { foo: 1 }, 'object exactness')
-      tt.same({ foo: 2 }, { foo: 1 }, { skip: true })
-      tt.notSame({ foo: 2 }, { foo: 1 }, 'this one passes')
-      tt.notSame({ foo: 2 }, { foo: 1 }, { skip: true })
-      tt.notSame({ foo: { bar: 2 } }, { foo: { bar: '2' } },
-                 'this one fails')
-
-      tt.strictSame({ foo: 2 }, { foo: 1 }, { skip: true })
-      tt.strictSame([1, 2, 3], ['1', '2', '3'])
-      tt.strictSame(o, { foo: 1 })
-      tt.strictSame(o, o)
-      tt.notStrictSame({ foo: 2 }, { foo: 1 }, { skip: true })
-      tt.notStrictSame({ foo: 2 }, { foo: 1 }, 'this one passes')
-      tt.notStrictSame({ foo: { bar: 2 } }, { foo: { bar: '2' } },
-                       'this one passes')
-      tt.notStrictSame({ foo: { bar: 2 } }, { foo: { bar: 2 } },
-                       'this one fails')
-
-      tt.end()
-    },
-
-    match: tt => {
-      tt.match({ a: 'b', c: /asdf/ }, { a: String, c: RegExp })
-      tt.match({ a: 'b', c: /asdf/ }, { a: 'asdf', c: 1 })
-      tt.match({ a: 'b', c: /asdf/ }, { a: String, c: RegExp },
-               'a message')
-      tt.match({ a: 'b', c: /asdf/ }, { a: 'asdf', c: 1 },
-               { todo: true })
-      tt.notMatch({ a: 'b', c: /asdf/ }, { a: String, c: RegExp })
-      tt.notMatch({ a: 'b', c: /asdf/ }, { a: 'asdf', c: 1 })
-      tt.notMatch({ a: 'b', c: /asdf/ }, { a: String, c: RegExp },
-                  'a message')
-      tt.notMatch({ a: 'b', c: /asdf/ }, { a: 'asdf', c: 1 },
-                  { todo: true })
-
-      tt.end()
-    },
-
-    type: tt => {
-      tt.type(null, 'object', 'this fails')
-      tt.type(null, 'object', { expectFail: true })
-      tt.type(1234, 'number')
-      tt.type(tt, Test)
-      tt.type({}, function () {}, 'fails, anonymously')
-      const o = {}
-      tt.type(o, o, 'a thing is a thing')
-      tt.type(() => {}, 'function', 'arrows are functions')
-      tt.type(() => {}, Function, 'arrows are functions')
-      tt.type(() => {}, Object, 'fail: arrows are not objects')
-      tt.type({}, 'object')
-      tt.type(tt, 'Test')
-      tt.type(tt, 'EventEmitter')
-      tt.end()
-    },
-
-    throws: tt => {
-      tt.throws(() => { throw new TypeError('x') }, TypeError)
-      tt.throws(() => { throw new TypeError('x') }, TypeError)
-      tt.throws(() => { throw new TypeError('x') },
-                new TypeError('x'))
-      tt.throws(() => { throw new TypeError('x') },
-                { message: 'x' })
-
-      const nameless = new Error('x')
-      Object.defineProperty(nameless, 'name', {
-        value: undefined
-      })
-      nameless.stack = /^.*$/
-      tt.throws(() => { throw new Error('x') }, nameless)
-      tt.throws(() => { throw nameless }, { message: 'x' })
-      tt.throws(() => { throw nameless }, /^.$/)
-      tt.throws(() => { throw nameless })
-
-      const prop = new Error('noent')
-      prop.code= 'ENOENT'
-      tt.throws(() => {
-        const er = new Error('noent')
-        er.code = 'ENOENT'
-        er.path = __filename
-        throw er
-      }, prop)
-
-      tt.throws(() => 'doesnt tho', 'fail: does not throw actually')
-
-      tt.throws(() => { throw new Error('x') }, {}, { skip: true })
-      tt.throws(() => { throw new Error('x') }, {},
-                {}, {}, 1)
-      tt.throws(() => { throw new Error('x') },
-                () => {}, () => {}, () => {},
-                'extra functions are no-ops for bw comp')
-      tt.throws('todo')
-      tt.end()
-    },
-
-    doesNotThrow: tt => {
-      tt.doesNotThrow(() => {}, 'this is fine')
-      tt.doesNotThrow(() => {}, { todo: true })
-      tt.doesNotThrow('reverse args', () => {})
-      tt.doesNotThrow('this is todo')
-      tt.doesNotThrow('fail', () => {
-        throw new Error('ouch')
-      })
-      tt.end()
-    },
-
-    rejects: tt => {
-      tt.rejects('promise', new Promise((_, reject) => {
-        reject(new Error('expected'))
-      }))
-      tt.rejects(() => new Promise((_, reject) => {
-        reject(new Error('expected'))
-      }), 'fn returns promise')
-      tt.rejects(new Promise((_, reject) => {
-        reject(new Error('expected'))
-      }))
-      tt.rejects(() => new Promise((_, reject) => {
-        reject(new Error('expected'))
-      }))
-      tt.rejects('todo because no fn/promise', { foo: 'bar' })
-      tt.comment('next 2 also todo, no message')
-      tt.rejects({ x: 1 })
-      tt.rejects()
-      tt.rejects(() => new Promise((_, reject) => {
-        reject(new Error('expected'))
-      }), new Error('expected'), 'throws expected error')
-      tt.rejects(() => new Promise((_, reject) => {
-        reject(new TypeError('expected'))
-      }), TypeError, 'throws expected error type')
-      tt.rejects(() => new Promise((_, reject) => {
-        reject(new TypeError('expected'))
-      }), TypeError, ()=>{}, _=>_, 'extra functions are no-ops')
-      tt.rejects(() => new Promise((_, reject) => {
-        reject(new TypeError('expected'))
-      }), TypeError, 1, 2, {}, {}, 'extra args are no-ops')
-
-      const prop = new Error('noent')
-      prop.code= 'ENOENT'
-      tt.rejects(new Promise((_, reject) => {
-        const er = new Error('noent')
-        er.code = 'ENOENT'
-        er.path = __filename
-        reject(er)
-      }), prop)
-
-      const nameless = new Error('x')
-      Object.defineProperty(nameless, 'name', {
-        value: undefined
-      })
-      nameless.stack = /^.*$/
-      tt.rejects(new Promise((_,r) => r(new Error('x'))), nameless)
-      tt.rejects(new Promise((_,r) => r(nameless)), { message: 'x' })
-      tt.rejects(new Promise((_,r) => r(nameless)), /^.$/)
-      tt.rejects(new Promise((_,r) => r(nameless)))
-
-      tt.rejects(() => {}, 'fail: no promise')
-      tt.rejects(() => ({}), 'fail: no promise')
-
-      tt.rejects(new Promise(r => r(420)), 'fail: passing promise')
-
-      tt.end()
-    },
-
-    resolves: tt => {
-      tt.resolves(new Promise(r => r(420)))
-      tt.resolves(new Promise(r => r(420)), { todo: true })
-      tt.resolves(new Promise(r => r(420)), 'passing promise')
-      tt.resolves(() => new Promise(r => r(420)), 'passing promise fn')
-      tt.resolves(() => {}, 'fail: no promise')
-      tt.end()
-    },
-
-    resolveMatch: tt => {
-      tt.resolveMatch(new Promise(r => r(420)), Number)
-      tt.resolveMatch(new Promise(r => r(420)), 'asdf', { todo: true })
-      tt.resolveMatch(new Promise(r => r(420)), 420, 'promise')
-      tt.resolveMatch(() => new Promise(r => r(420)), 420, 'promise fn')
-      tt.resolveMatch(() => {}, {}, 'fail: no promise')
-      tt.end()
-    },
-
-    'test after end fails': tt => {
-      tt.end()
-      tt.pass('failing pass')
-    },
-
-    'plan excess': tt => {
-      tt.plan(1)
-      tt.pass('fine')
-      tt.pass('not fine')
-    },
-
-    'plan excess, ignored when failing': tt => {
-      tt.plan(1)
-      tt.fail('expected fail', { diagnostic: false })
-      tt.pass('not fine')
-    },
-
-    'using the assertAt field': tt => {
-      const stack = require('../lib/stack.js')
-      const foo = () => tt.fail('expect fail')
-      const bar = () => foo()
-      const baz = () => { tt.assertAt = stack.at(); bar() }
-
-      tt.plan(1)
-      baz()
-    },
-
-    'using the assertStack field': tt => {
-      const stack = require('../lib/stack.js')
-      const foo = () => tt.fail('expect fail')
-      const bar = () => foo()
-      const baz = () => { tt.assertStack = stack.captureString(80); bar() }
-
-      tt.plan(1)
-      baz()
-    },
-
-    printResult: tt => {
-      // super low-level
-      tt.printResult(true, 'this is fine')
-      tt.end()
-    },
-
-    'printResult after plan end': tt => {
-      // super low-level
-      tt.end()
-      tt.printResult(true, 'this is fine')
-    },
-
-    'plan, child test, explicit end': tt => {
-      tt.plan(1)
-      tt.test(tt => Promise.resolve('ok'))
-      tt.end()
-    },
-
-    'end multiple times': tt => {
-      tt.plan(1)
-      tt.pass('yes')
-      tt.end()
-      tt.end()
-    },
-
-    'error event with domainEmitter re-throws': tt => {
-      const er = new Error('fail')
-      const d = tt.domain
-      try {
-        d.run(() => {
-          const e = new EE
-          e.emit('error', er)
-          tt.fail('did not throw')
-        })
-      } catch (er) {
-        tt.pass('the better to this.threw you with')
-        tt.end()
-      }
-    },
-
-    'thrower after end': tt => {
-      tt.test('child', tt => {
-        tt.plan(1)
-        tt.pass('this is fine')
-        tt.threw(new Error('catch it in the parent'))
-      })
-      tt.end()
-    },
-
-    'child breaks a promise': tt => {
-      tt.test('child', () => new Promise((_, r) => r(new Error('poop'))))
-      tt.end()
-    },
-
-    'child teardown throw': tt => {
-      tt.test('child', tt => {
-        tt.teardown(() => { throw new Error('fail') })
-        tt.end()
-      })
-      tt.end()
-    },
-
-    'fullname without main': tt => {
-      const main = process.argv[1]
-      process.argv[1] = ''
-      tt.test('child', tt => {
-        tt.pass(tt.fullname)
-        tt.end()
-      })
-      tt.pass(tt.fullname)
-      process.argv[1] = main
-      tt.end()
-    },
-
-    'comment after end': tt => {
-      tt.end()
-      tt.comment('this is fine')
-    },
-
-    grep: tt => {
-      tt.test('parent', { grep: [ /x$/, /y$/ ] }, tt => {
-        tt.test('do not run this', tt => tt.threw('no'))
-        tt.test('but do run this x', tt => {
-          tt.test('do not run this', tt => tt.threw('stop'))
-          tt.test('but do run this y', tt => {
-            tt.test('grand kids', tt => tt.end())
-            tt.test('get all the', tt => tt.end())
-            tt.test('goodies', tt => {
-              tt.pass('this is good')
-              tt.end()
-            })
-            tt.end()
-          })
-          tt.end()
-        })
-        tt.end()
-      })
-      tt.end()
-    },
-
-    grepInvert: tt => {
-      tt.test('parent', { grepInvert: true, grep: [ /x$/, /y$/ ] }, tt => {
-        tt.test('do not run this x', tt => tt.threw('no'))
-        tt.test('but do run this', tt => {
-          tt.test('do not run this y', tt => tt.threw('stop'))
-          tt.test('but do run this', tt => {
-            tt.test('grand kids', tt => tt.end())
-            tt.test('get all the', tt => tt.end())
-            tt.test('goodies', tt => {
-              tt.pass('this is good')
-              tt.end()
-            })
-            tt.end()
-          })
-          tt.end()
-        })
-        tt.end()
-      })
-      tt.end()
-    },
-
-    autoEnd: tt => {
-      tt.options.autoend = true
-      tt.test('this should automatically end', { autoend: true }, t => {
-        t.pass('this is fine')
-        setTimeout(() => t.pass('also fine'))
-      })
-      tt.test('this should also end', t => {
-        t.pass('this is fine')
-        setTimeout(() => t.pass('also fine'))
-        t.autoend()
-      })
-      tt.test('autoend async 1', t => {
-        setTimeout(() =>
-          t.test('st', t => setTimeout(() => t.end())))
-        t.autoend()
-      })
-      tt.test('autoend async 2', t => {
-        setTimeout(() => setTimeout(() =>
-          t.test('st', t => setTimeout(() => t.end()))))
-        t.autoend()
-      })
-      tt.test('autoend async limit', t => {
-        setTimeout(() => setTimeout(() => setTimeout(() =>
-          t.test('st', t => setTimeout(() => t.end())))))
-        t.autoend()
-      })
-
-    },
-
-    'endAll with test children': tt => {
-      tt.test('this is the test that never ends', tt => {
-        tt.test('it goes on and on my friend', tt => {
-          tt.pass('this is ok')
-          tt.test('misbehaving child', () => new Promise(()=>{}))
-        })
-        tt.pass('some queue stuff')
-      })
-      tt.endAll()
-    },
-
-    'endAll with stdin': tt => {
-      const s = new MiniPass()
-      tt.stdin({ tapStream: s })
-      s.write('TAP version 13\nok - but not ended\n')
-      tt.endAll()
-    },
-
-    'endAll with bailout': tt => {
-      tt.on('bailout', reason => tt.endAll())
-
-      tt.test('child', { bail: true }, tt => {
-        tt.fail('not fine')
-        tt.end()
-      })
-    },
-
-    'bailout with indented subs': tt => {
-      tt.test('1', tt => tt.end())
-      tt.test('2', tt => Promise.resolve(null))
-      tt.test('3', tt => setTimeout(() => tt.end()))
-      process.nextTick(() => tt.bailout('whoops'))
-      tt.end()
-    },
-
-    'bailout with buffered subs': tt => {
-      const o = { buffered: true }
-      tt.test('1', o, tt => tt.end())
-      tt.test('2', o, tt => Promise.resolve(null))
-      tt.test('3', o, tt => setTimeout(() => tt.end()))
-      process.nextTick(() => tt.bailout('whoops'))
-      tt.end()
-    },
-
-    'silent subs': tt => {
-      tt.test('child', tt => Promise.resolve(null))
-      tt.test('shhh', { silent: true }, tt => tt.end())
-      tt.test('child 2', tt => tt.end())
-      tt.end()
-    },
-
-    'beforeEach afterEach': tt => {
-      tt.beforeEach(function (cb) {
-        console.error('parent be', this.name)
-        cb()
-      })
-      tt.afterEach(function (cb) {
-        console.error('parent ae', this.name)
-        cb()
-      })
-      tt.test('child', tt => {
-        tt.beforeEach(function (cb) {
-          console.error('child be', this.name)
-          cb()
-        })
-        tt.afterEach(function (cb) {
-          console.error('child ae', this.name)
-          cb()
-        })
-        tt.test('grandkid', tt => Promise.resolve(console.error('in test')))
-        tt.end()
-      })
-      tt.end()
-    },
-
-    'timeout expiration': t => {
-      const buf = [ false, true ]
-      buf.forEach(buf => {
-        t.test('get lost buf=' + buf, { buffered: buf, timeout: 1 }, t => {
-          const timer = setTimeout(() => {}, 10000)
-          t.on('timeout', () => clearTimeout(timer))
-        })
-      })
-      t.end()
-    },
-
-    'timeout with subs': t => {
-      const buf = [ false, true ]
-      buf.forEach(buf => {
-        t.test('get lost buf=' + buf, { buffered: buf, timeout: 1 }, t => {
-          const timer = setTimeout(() => {}, 10000)
-          t.test('carry on', t => t.on('timeout', () => clearTimeout(timer)))
-        })
-      })
-      t.end()
-    },
-
-    'timeout at the last tick': t => {
-      const buf = [ false, true ]
-      buf.forEach(buf => {
-        t.test('work it harder buf=' + buf, { buffered: buf, timeout: 1 }, t => {
-          t.plan(1)
-          const start = Date.now()
-          const finish = start + 10
-          while (finish > Date.now()) {
-            fs.readFileSync(__filename)
-          }
-          t.pass('this is fine')
-        })
-      })
-      t.end()
-    },
-
-
-  }
-
-  const keys = Object.keys(cases)
-  t.plan(keys.length)
-
-  for (let i in cases) {
-    t.test(i, t => {
-      t.plan(1)
-
-      const error = console.error
-      t.teardown(() => console.error = error)
-      let err = ''
-      console.error = function () {
-        err += util.format.apply(util, arguments) + '\n'
-      }
-
-      const tt = new Test()
-      let out = ''
-      tt.on('data', c => out += c)
-      tt.on('end', _ => {
-        setTimeout(() => {
-          if (err)
-            out = out.trim() + '\n' + 'STDERR:\n' + err
-          t.matchSnapshot(clean(out), i)
-        })
-      })
-      cases[i](tt)
-    })
-  }
-})
-
-t.test('addAssert', t => {
-  t.throws(() => t.addAssert(null), new TypeError('name is required'))
-  t.throws(() => t.addAssert('x'), new TypeError('number of args required'))
-  t.throws(() => t.addAssert('x', -1),
-           new TypeError('number of args required'))
-  t.throws(() => t.addAssert('x', 1),
-           new TypeError('function required for addAssert'))
-  t.throws(() => t.addAssert('ok', 1, () => {}),
-           new TypeError('attempt to re-define `ok` assert'))
-
-  const url = require('url')
-  const tt = new Test({ buffered: true })
-  tt.addAssert('isUrl', 1, function isUrl (u, message, extra) {
-    return this.match(url.parse(u), {
-      protocol: /^https?:$/,
-      slashes: true,
-      host: String,
-      path: /^\/.*$/
-    }, message || 'expect a valid http/https url', extra)
-  })
-  tt.isUrl('hello is not a url')
-  tt.isUrl('http://x', 'x is a url!')
-  tt.isUrl('https://skip:420/', { skip: 420 })
-  tt.end()
-
-  t.matchSnapshot(clean(tt.output), 'using the custom isUrl assertion')
-  return t.end()
-})
-
-t.test('spawn', t => {
-  const okjs = path.resolve(__dirname, '../__ok.js')
-  t.teardown(() => fs.unlinkSync(okjs))
-  fs.writeFileSync(okjs, "require('./').pass('this is fine')\n")
-  t.spawn(process.execPath, okjs)
-  t.spawn(process.execPath, okjs, 'a string as options')
-  t.spawn(process.execPath, okjs, { name: 'a name as an option' })
-
-  t.test('kitty pipe', t => {
-    t.on('spawn', t =>
-      t.proc.stdin.end('TAP version 13\n1..1\nok\n'))
-    t.spawn('cat', [], { stdio: 'pipe' })
-    t.spawn('cat', null, { stdio: 'pipe' }, 'aggreeable kitten')
-    t.end()
-  })
-
-  t.end()
-})
-
-t.test('snapshots', t => {
-  const Snapshot = require('../lib/snapshot.js')
-  const snap = [ true, false ]
-  const outputs = snap.map(snap => {
-    const tt = new Test({
-      snapshot: snap,
-      name: 'deleteme',
-      buffered: true
-    })
-    tt.test('child test', { snapshot: snap }, tt => {
-      tt.matchSnapshot({ foo: 'bar' }, 'an object')
-      tt.matchSnapshot('some string \\ \` ${process.env.FOO}', 'string')
-      tt.matchSnapshot('do this eventually', { todo: 'later' })
-      tt.end()
-    })
-    tt.emit('teardown')
-    tt.end()
-    return tt.output
-  })
-
-  t.matchSnapshot(clean(outputs[0]), 'saving the snapshot')
-  t.matchSnapshot(clean(outputs[1]), 'verifying the snapshot')
-  fs.unlinkSync(path.resolve(__dirname, '..',
-    'tap-snapshots', 'unit-test.js-deleteme.test.js'))
-
-  t.end()
-})

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-tap.git



More information about the Pkg-javascript-commits mailing list