# std.Build.Step.Run: many enhancements · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/e4456d03f3642c4d0e19176aa09dbc12099e7a4c)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: e4456d03f3642c4d0e19176aa09dbc12099e7a4c

Requested commit: e4456d03f3642c4d0e19176aa09dbc12099e7a4c

Commit: e4456d03f3642c4d0e19176aa09dbc12099e7a4c

Tree: 87a005c07784f35ecc18015af6bb304e981af9c4

Author: mlugg

Committer: Matthew Lugg

## Message

```
std.Build.Step.Run: many enhancements

This is a major refactor to `Step.Run` which adds new functionality,
primarily to the execution of Zig tests.

* All tests are run, even if a test crashes. This happens through the
  same mechanism as timeouts where the test processes is repeatedly
  respawned as needed.
* The build status output is more precise. For each unit test, it
  differentiates pass, skip, fail, crash, and timeout. Memory leaks are
  reported separately, as they do not indicate a test's "status", but
  are rather an additional property (a test with leaks may still pass!).
* The number of memory leaks is tracked and reported, both per-test and
  for a whole `Run` step.
* Reporting is made clearer when a step is failed solely due to error
  logs (`std.log.err`) where every unit test passed.

```

## Parents

- [7e7d7875b9af97bd04ca03a98b2e4188d57e3c13](https://git.cafe/gitcafe/zig/commit/7e7d7875b9af97bd04ca03a98b2e4188d57e3c13?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/e4456d03f3642c4d0e19176aa09dbc12099e7a4c?format=markdown)
