roc/crates/compiler/test_gen
Brendan Hansknecht 93fab26c01
Add a RocRefcounted trait in roc_std
This is required to properly handle refcounting of RocList.
Without it, we can't tell if we need to get the length from the heap.
That said, it isn't a pretty solution.

I think dealing with generating bespoke type in glue would feel nicer than this but be much more work.
It also would deal with the issue of implementations in the bitcode not matching external libraries.
That said, it would require exposing way more symbols from roc for each monomophorphized list variant.
2024-07-13 10:39:51 -07:00
..
benches Update test fixtures to not use Nat indices 2024-01-26 16:06:07 -05:00
src Add a RocRefcounted trait in roc_std 2024-07-13 10:39:51 -07:00
build.rs Change a file extension .o -> .wasm to make Zig emit wasm 2023-10-23 13:50:31 -07:00
Cargo.toml test_gen: replace stdlib Json with inline implementation 2024-07-01 20:30:05 +02: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