I notice a lot of conditioning for error tests vs success tests (here, L171, L185). Do you think it would be cleaner to have two separate test runners and then just factor out any logic they share?