Tests in this directory are intentionally setup to
fail, error, timeout, etc. to verify that the buildbots
pick up errors.  The tests in this directory will be
parked/removed/renamed after verifying they trigger
as expected.
