zig/test/cases
2025-11-10 14:21:26 +00:00
..
compile_errors sema: print @panic message at comptime 2025-11-10 14:21:26 +00:00
safety test: rename backend=stage2 to backend=selfhosted, and add backend=auto 2025-09-16 23:39:26 +02:00
address_of_extern_var_as_const.zig test: rename backend=stage2 to backend=selfhosted, and add backend=auto 2025-09-16 23:39:26 +02:00
address_space_pointer_access_chaining_pointer_to_optional_array.zig test: pull tests in test/cases/llvm/ up to test/cases/ 2025-09-16 23:39:29 +02:00
address_spaces_pointer_access_chaining_array_pointer.zig test: pull tests in test/cases/llvm/ up to test/cases/ 2025-09-16 23:39:29 +02:00
address_spaces_pointer_access_chaining_complex.zig test: pull tests in test/cases/llvm/ up to test/cases/ 2025-09-16 23:39:29 +02:00
address_spaces_pointer_access_chaining_struct_pointer.zig test: pull tests in test/cases/llvm/ up to test/cases/ 2025-09-16 23:39:29 +02:00
ambiguous_reference.zig
array_in_anon_struct.zig test: rename backend=stage2 to backend=selfhosted, and add backend=auto 2025-09-16 23:39:26 +02:00
blocks.zig test: pull tests in test/cases/llvm/ up to test/cases/ 2025-09-16 23:39:29 +02:00
compile_error.zig
comptime_aggregate_print.zig compiler: improve "... contains reference to comptime var" errors 2025-01-11 08:54:47 +00:00
decl_value_arena.zig
default_value_references_comptime_var.zig detect references to comptime var in default values and sentinels 2025-10-07 11:58:12 +01:00
dereferencing_though_multiple_pointers_with_address_spaces.zig test: pull tests in test/cases/llvm/ up to test/cases/ 2025-09-16 23:39:29 +02:00
disable_stack_tracing.zig std: allow disabling stack tracing 2025-09-30 13:44:55 +01:00
error_in_nested_declaration.zig sema: disallow slices of opaque types 2025-11-07 12:12:32 +00:00
exit.zig
export_from_body_of_coerced_fn.zig frontend: fix reference tracking through coerced function bodies 2025-09-15 11:29:31 +01:00
f32_passed_to_variadic_fn.zig test: rename backend=stage2 to backend=selfhosted, and add backend=auto 2025-09-16 23:39:26 +02:00
f_segment_address_space_reading_and_writing.zig test: pull tests in test/cases/llvm/ up to test/cases/ 2025-09-16 23:39:29 +02:00
float_mode_optimized_reduce.zig test: rename backend=stage2 to backend=selfhosted, and add backend=auto 2025-09-16 23:39:26 +02:00
fn_typeinfo_passed_to_comptime_fn.zig test: rename backend=stage2 to backend=selfhosted, and add backend=auto 2025-09-16 23:39:26 +02:00
for_loop.zig test: pull tests in test/cases/llvm/ up to test/cases/ 2025-09-16 23:39:29 +02:00
function_pointers.zig
function_redeclaration.zig compiler: allow files with AstGen errors to undergo semantic analysis 2024-12-05 19:58:38 +00:00
global_variable_redeclaration.zig
hello_world.zig test: pull tests in test/cases/llvm/ up to test/cases/ 2025-09-16 23:39:29 +02:00
inherit_want_safety.zig test: Set emit_bin=false for some safety tests. 2024-11-24 22:11:17 +01:00
inner_func_accessing_outer_var.zig
large_add_function.zig test: rename backend=stage2 to backend=selfhosted, and add backend=auto 2025-09-16 23:39:26 +02:00
large_slices.zig test: pull tests in test/cases/llvm/ up to test/cases/ 2025-09-16 23:39:29 +02:00
maximum_sized_integer_literal.zig test: rename backend=stage2 to backend=selfhosted, and add backend=auto 2025-09-16 23:39:26 +02:00
nested_blocks.zig test: pull tests in test/cases/llvm/ up to test/cases/ 2025-09-16 23:39:29 +02:00
no_compile_panic_for_unchecked_arith.zig test: Set emit_bin=false for some safety tests. 2024-11-24 22:11:17 +01:00
non_leaf_functions.zig
optionals.zig test: pull tests in test/cases/llvm/ up to test/cases/ 2025-09-16 23:39:29 +02:00
passing_u0_to_function.zig
pointer_keeps_address_space.zig test: pull tests in test/cases/llvm/ up to test/cases/ 2025-09-16 23:39:29 +02:00
pointer_keeps_address_space_when_taking_address_of_dereference.zig test: pull tests in test/cases/llvm/ up to test/cases/ 2025-09-16 23:39:29 +02:00
pointer_to_explicit_generic_address_space_coerces_to_implicit_pointer.zig test: pull tests in test/cases/llvm/ up to test/cases/ 2025-09-16 23:39:29 +02:00
print_u32s.zig
README.md delete all the translate-c tests 2025-09-24 20:01:17 -07:00
recursive_fibonacci.zig
rem.zig test: pull tests in test/cases/llvm/ up to test/cases/ 2025-09-16 23:39:29 +02:00
returning_undefined_sentinel_terminated_const_u8_slice.zig test: rename backend=stage2 to backend=selfhosted, and add backend=auto 2025-09-16 23:39:26 +02:00
returns_in_try.zig
runtime_bitwise_and.zig
runtime_bitwise_or.zig
save_function_return_values_in_callee_preserved_register.zig
sentinel_references_comptime_var.zig detect references to comptime var in default values and sentinels 2025-10-07 11:58:12 +01:00
setting_an_address_space_on_a_local_variable.zig
simple_addition_and_subtraction.zig test: pull tests in test/cases/llvm/ up to test/cases/ 2025-09-16 23:39:29 +02:00
simple_if_statement.zig test: pull tests in test/cases/llvm/ up to test/cases/ 2025-09-16 23:39:29 +02:00
spirv_mergable_pointers.zig test: rename backend=stage2 to backend=selfhosted, and add backend=auto 2025-09-16 23:39:26 +02:00
tail_call_noreturn.zig
taking_pointer_of_global_tagged_union.zig test: rename backend=stage2 to backend=selfhosted, and add backend=auto 2025-09-16 23:39:26 +02:00
try_in_comptime_in_struct_in_test.zig
type_names.zig test: Restore and fix deleted tests that relied on intern pool types (#24422) 2025-07-17 22:07:50 +00:00
union_unresolved_layout.zig test: rename backend=stage2 to backend=selfhosted, and add backend=auto 2025-09-16 23:39:26 +02:00
unused_vars.zig compiler: allow files with AstGen errors to undergo semantic analysis 2024-12-05 19:58:38 +00:00
while_loops.zig test: pull tests in test/cases/llvm/ up to test/cases/ 2025-09-16 23:39:29 +02:00

Test Case Quick Reference

Use comments at the end of the file to indicate metadata about the test case. Here are examples of different kinds of tests:

Compile Error Test

If you want it to be run with zig test and match expected error messages:

// error
// is_test=true
//
// :4:13: error: 'try' outside function scope

Execution

This will do zig run on the code and expect exit code 0.

// run

Incremental Compilation

Make multiple files that have ".", and then an integer, before the ".zig" extension, like this:

hello.0.zig
hello.1.zig
hello.2.zig

Each file can be a different kind of test, such as expecting compile errors, or expecting to be run and exit(0). The test harness will use these to simulate incremental compilation.

At the time of writing there is no way to specify multiple files being changed as part of an update.

Subdirectories

Subdirectories do not have any semantic meaning but they can be used for organization since the test harness will recurse into them. The full directory path will be prepended as a prefix on the test case name.

Limiting which Backends and Targets are Tested

// run
// backend=selfhosted,llvm
// target=x86_64-linux,x86_64-macos

Possible backends are:

  • auto: the default; compiler picks the backend based on robustness.
  • selfhosted: equivalent to passing -fno-llvm -fno-lld.
  • llvm: equivalent to -fllvm.