# stage2: \`zig test\` now works with the LLVM backend · gitcafe/zig

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

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

Visibility: public

Requested revision: a8e964eadd3496330043985cacaaee7db92886c6

Requested commit: a8e964eadd3496330043985cacaaee7db92886c6

Commit: a8e964eadd3496330043985cacaaee7db92886c6

Tree: 57768a2f87b76b9f80231ab924d2bdb481a22d2a

Author: Andrew Kelley

Committer: Andrew Kelley

## Message

```
stage2: `zig test` now works with the LLVM backend

Frontend improvements:

 * When compiling in `zig test` mode, put a task on the work queue to
   analyze the main package root file. Normally, start code does
   `_ = import("root");` to make Zig analyze the user's code, however in
   the case of `zig test`, the root source file is the test runner.
   Without this change, no tests are picked up.
 * In the main pipeline, once semantic analysis is finished, if there
   are no compile errors, populate the `test_functions` Decl with the
   set of test functions picked up from semantic analysis.
 * Value: add `array` and `slice` Tags.

LLVM backend improvements:

 * Fix incremental updates of globals. Previously the
   value of a global would not get replaced with a new value.
 * Fix LLVM type of arrays. They were incorrectly sending
   the ABI size as the element count.
 * Remove the FuncGen parameter from genTypedValue. This function is for
   generating global constants and there is no function available when
   it is being called.
   - The `ref_val` case is now commented out. I'd like to eliminate
     `ref_val` as one of the possible Value Tags. Instead it should
     always be done via `decl_ref`.
 * Implement constant value generation for slices, arrays, and structs.
 * Constant value generation for functions supports the `decl_ref` tag.

```

## Parents

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

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