roc/crates/compiler/test_gen
Ayaz Hafiz 759f8d86af
Fix lifetime errors due to interner
In the llvm backend, there are the lifetimes `'a` (lifetime of the
global arena) and `'ctx` (lifetime of constructed LLVM values). `'a`
lives longer than `'ctx`, but the compiler didn't enforce this until
the layout interner was introduced, for some reason. We have to make
sure that containers of lifetime `'a` have no `'ctx` references.
2022-12-29 11:38:34 -06:00
..
benches make the mmapped buffer configurable 2022-07-26 23:36:25 +02:00
src Fix lifetime errors due to interner 2022-12-29 11:38:34 -06:00
.gitignore moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
build.rs Centralize host tempfile builder logic 2022-11-22 20:52:44 -05:00
Cargo.toml test_gen: get some tests working with roc_wasm_interp 2022-12-10 00:52:23 +00:00
README.md Add language to all fenced code blocks 2022-09-09 01:12:31 -06:00

Running our CodeGen tests

Our code generation tests are all in this crate. Feature flags are used to run the tests with a specific backend. For convenience, some aliases are added in .cargo/config:

[alias]
test-gen-llvm = "test -p test_gen"
test-gen-dev = "test -p test_gen --no-default-features --features gen-dev"
test-gen-wasm = "test -p test_gen --no-default-features --features gen-wasm"

So we can run:

cargo test-gen-llvm

To run the gen tests with the LLVM backend. To filter tests, append a filter like so:

> cargo test-gen-wasm wasm_str::small
    Finished test [unoptimized + debuginfo] target(s) in 0.13s
     Running src/tests.rs (target/debug/deps/test_gen-b4ad63a9dd50f050)

running 2 tests
test wasm_str::small_str_literal ... ok
test wasm_str::small_str_zeroed_literal ... ok