zig/test/cases
Andrew Kelley df389b62de
Merge pull request #16192 from mlugg/builtins-infer-dest-ty-fixes
Follow-up to cast builtin result type inference
2023-06-25 12:38:56 -07:00
..
compile_errors Merge pull request #16192 from mlugg/builtins-infer-dest-ty-fixes 2023-06-25 12:38:56 -07:00
llvm all: migrate code to new cast builtin syntax 2023-06-24 16:56:39 -07:00
safety all: migrate code to new cast builtin syntax 2023-06-24 16:56:39 -07:00
x86_64-linux all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
adding_numbers_at_runtime_and_comptime.0.zig
adding_numbers_at_runtime_and_comptime.1.zig
adding_numbers_at_runtime_and_comptime.2.zig
ambiguous_reference.zig
arithmetic_operations.0.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
arithmetic_operations.1.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
arithmetic_operations.2.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
arithmetic_operations.3.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
arithmetic_operations.4.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
arithmetic_operations.5.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
arithmetic_operations.6.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
assert_function.0.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
assert_function.1.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
assert_function.2.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
assert_function.3.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
assert_function.4.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
assert_function.5.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
assert_function.6.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
assert_function.7.zig all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
assert_function.8.zig all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
assert_function.9.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
assert_function.10.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
assert_function.11.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
assert_function.12.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
assert_function.13.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
assert_function.14.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
assert_function.15.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
assert_function.16.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
assert_function.17.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
assert_function.18.zig all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
bad_inferred_variable_type.zig
binary_operands.0.zig
binary_operands.1.zig
binary_operands.2.zig
binary_operands.3.zig
binary_operands.4.zig
binary_operands.5.zig
binary_operands.6.zig
binary_operands.7.zig
binary_operands.8.zig
binary_operands.9.zig
binary_operands.10.zig
binary_operands.11.zig
binary_operands.12.zig
binary_operands.13.zig
binary_operands.14.zig
binary_operands.15.zig
binary_operands.16.zig
binary_operands.17.zig
binary_operands.18.zig
binary_operands.19.zig
binary_operands.20.zig
binary_operands.21.zig
binary_operands.22.zig
binary_operands.23.zig
binary_operands.24.zig
binary_operands.25.zig
break_continue.0.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
break_continue.1.zig
break_continue.2.zig
break_continue.3.zig
catch_at_comptime.0.zig
catch_at_comptime.1.zig
catch_at_comptime.2.zig
catch_at_comptime.3.zig
catch_at_comptime.4.zig
comparison_of_non-tagged_union_and_enum_literal.zig
compile_error.zig
compile_log.0.zig test-cases: add missing compile log output 2023-03-15 10:48:15 -07:00
compile_log.1.zig test-cases: add missing compile log output 2023-03-15 10:48:15 -07:00
comptime_aggregate_print.zig add support for .field_ptr in elemValueAdvanced 2023-04-26 17:31:42 +03:00
comptime_var.0.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
comptime_var.1.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
comptime_var.2.zig all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
comptime_var.3.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
comptime_var.4.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
comptime_var.5.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
comptime_var.6.zig all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
conditional_branches.0.zig all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
conditional_branches.1.zig all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
conditions.0.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
conditions.1.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
conditions.2.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
conditions.3.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
conditions.4.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
conditions.5.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
decl_value_arena.zig all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
double_ampersand.0.zig
double_ampersand.1.zig
double_ampersand.2.zig
enum_values.0.zig all: migrate code to new cast builtin syntax 2023-06-24 16:56:39 -07:00
enum_values.1.zig all: migrate code to new cast builtin syntax 2023-06-24 16:56:39 -07:00
error_in_nested_declaration.zig all: migrate code to new cast builtin syntax 2023-06-24 16:56:39 -07:00
error_unions.0.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
error_unions.1.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
error_unions.2.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
error_unions.3.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
error_unions.4.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
error_unions.5.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
errors.0.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
errors.1.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
errors.2.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
errors.3.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
exit.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
extern_variable_has_no_type.0.zig Sema: allow runtime only instructions to be emitted in outside functions 2022-10-20 20:11:00 +03:00
extern_variable_has_no_type.1.zig
f32_passed_to_variadic_fn.zig test-cases: fix incorrectly linking libc when backend is llvm 2023-03-15 10:48:15 -07:00
fn_typeinfo_passed_to_comptime_fn.zig test-cases: fix incorrectly linking libc when backend is llvm 2023-03-15 10:48:15 -07:00
function_calls.0.zig
function_calls.1.zig
function_calls.2.zig
function_calls.3.zig
function_pointers.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
function_redeclaration.zig AstGen: use 'shadows' instead of 'redeclaration' when names are in different scopes 2022-10-07 11:04:02 +03:00
global_variable_redeclaration.zig
hello_world_with_updates.0.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
hello_world_with_updates.1.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
hello_world_with_updates.2.zig all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
hello_world_with_updates.3.zig all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
hello_world_with_updates.4.zig all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
hello_world_with_updates.5.zig all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
hello_world_with_updates.6.zig all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
inner_func_accessing_outer_var.zig
int_to_ptr.0.zig all: migrate code to new cast builtin syntax 2023-06-24 16:56:39 -07:00
int_to_ptr.1.zig all: migrate code to new cast builtin syntax 2023-06-24 16:56:39 -07:00
large_add_function.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
locals.0.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
locals.1.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
lower_unnamed_consts_structs.0.zig
lower_unnamed_consts_structs.1.zig
lower_unnamed_consts_structs.2.zig
merge_error_sets.0.zig
merge_error_sets.1.zig
multiplying_numbers_at_runtime_and_comptime.0.zig
multiplying_numbers_at_runtime_and_comptime.1.zig
multiplying_numbers_at_runtime_and_comptime.2.zig
non_leaf_functions.zig
only_1_function_and_it_gets_updated.0.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
only_1_function_and_it_gets_updated.1.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
optional_payload.0.zig
optional_payload.1.zig
optional_payload.2.zig
optional_payload.3.zig
optionals.0.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
optionals.1.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
optionals.2.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
optionals.3.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
optionals.4.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
orelse_at_comptime.0.zig
orelse_at_comptime.1.zig
parameters_and_return_values.0.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
parameters_and_return_values.1.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
passing_u0_to_function.zig
pointers.0.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
pointers.1.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
print_u32s.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
README.md
recursive_fibonacci.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
redundant_comptime.0.zig
redundant_comptime.1.zig
returns_in_try.zig stage2: change how defers are stored in Zir 2022-09-12 01:52:44 -04:00
runtime_bitwise_and.zig
runtime_bitwise_or.zig
save_function_return_values_in_callee_preserved_register.zig
setting_an_address_space_on_a_local_variable.zig
spilling_registers.0.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
spilling_registers.1.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
structs.0.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
structs.1.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
structs.2.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
structs.3.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
structs.4.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
switch.0.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
switch.1.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
switch.2.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
switch.3.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
taill_call_noreturn.zig update usages of @call 2022-12-13 13:14:20 +02:00
try_in_comptime_in_struct_in_test.zig
type_of.0.zig remove pointless discards in test cases 2022-09-13 02:04:20 -07:00
type_of.1.zig
type_of.2.zig
unused_labels.0.zig
unused_labels.1.zig
unused_labels.2.zig
unused_labels.3.zig all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
unused_vars.zig
variable_shadowing.0.zig disable spuriously failing test on Windows 2022-09-14 16:12:55 -07:00
variable_shadowing.1.zig AstGen: use 'shadows' instead of 'redeclaration' when names are in different scopes 2022-10-07 11:04:02 +03:00
variable_shadowing.2.zig
variable_shadowing.3.zig all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
variable_shadowing.4.zig all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
variable_shadowing.5.zig all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
variable_shadowing.6.zig all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
variable_shadowing.7.zig AstGen: use 'shadows' instead of 'redeclaration' when names are in different scopes 2022-10-07 11:04:02 +03:00
variable_shadowing.8.zig AstGen: use 'shadows' instead of 'redeclaration' when names are in different scopes 2022-10-07 11:04:02 +03:00
variable_shadowing.9.zig AstGen: use 'shadows' instead of 'redeclaration' when names are in different scopes 2022-10-07 11:04:02 +03:00
variable_shadowing.10.zig AstGen: fix catch payoad not checking for shadowing 2022-07-07 21:38:32 +03:00
while_loops.0.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
while_loops.1.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01:00
while_loops.2.zig Unify incremental test cases and disable many 2023-04-20 20:49:36 +01: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=1
//
// :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=stage2,llvm
// target=x86_64-linux,x86_64-macos

Possible backends are:

  • stage1: equivalent to -fstage1.
  • stage2: equivalent to passing -fno-stage1 -fno-LLVM.
  • llvm: equivalent to -fLLVM -fno-stage1.