diff options
author | Marc Poulhiès <dkm@kataplop.net> | 2021-03-16 18:22:31 +0100 |
---|---|---|
committer | Philip Herron <herron.philip@googlemail.com> | 2021-03-27 18:02:51 +0000 |
commit | f9f1f1d7211e555ae7a22b21723ced7610fa5657 (patch) | |
tree | 791a87fb7b17613ab28a1995d0228b0dc9bc9c5e | |
parent | 6be4ce99d513fb6dcda1aff2f1bb9bc6101fb0b8 (diff) | |
download | gcc-f9f1f1d7211e555ae7a22b21723ced7610fa5657.zip gcc-f9f1f1d7211e555ae7a22b21723ced7610fa5657.tar.gz gcc-f9f1f1d7211e555ae7a22b21723ced7610fa5657.tar.bz2 |
Refactor DejaGNU testsuite
Use more standard layout for DejaGNU testsuite.
3 subdirectories are used for tests:
- compile/*: tests are build using default torture options.
- xfail_compile/*: tests are expected to fail early in the frontend and are only
build once.
- execute/*: tests are executed and exit status is checked.
The previous .exp files were copied from D tests and were expected to be used in
a different way not really applicable for the current Rust tests.
Fixes #281
-rw-r--r-- | gcc/testsuite/lib/rust-dg.exp | 61 | ||||
-rw-r--r-- | gcc/testsuite/lib/rust.exp | 63 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/arithmetic_expressions1.rs (renamed from gcc/testsuite/rust.test/compilable/arithmetic_expressions1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/arrays1.rs (renamed from gcc/testsuite/rust.test/compilable/arrays1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/arrays2.rs (renamed from gcc/testsuite/rust.test/compilable/arrays2.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/arrays_index1.rs (renamed from gcc/testsuite/rust.test/compilable/arrays_index1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/arrays_index2.rs (renamed from gcc/testsuite/rust.test/compilable/arrays_index2.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/block_expr1.rs (renamed from gcc/testsuite/rust.test/compilable/block_expr1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/block_expr2.rs (renamed from gcc/testsuite/rust.test/compilable/block_expr2.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/block_expr3.rs (renamed from gcc/testsuite/rust.test/compilable/block_expr3.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/block_expr4.rs (renamed from gcc/testsuite/rust.test/compilable/block_expr4.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/block_expr_parser_bug.rs (renamed from gcc/testsuite/rust.test/compilable/block_expr_parser_bug.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/borrow1.rs (renamed from gcc/testsuite/rust.test/compilable/borrow1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/char1.rs (renamed from gcc/testsuite/rust.test/compilable/char1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/comparison_expr1.rs (renamed from gcc/testsuite/rust.test/compilable/comparison_expr1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/compile.exp | 35 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/compound_assignment_expr1.rs (renamed from gcc/testsuite/rust.test/compilable/compound_assignment_expr1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/conditional.rs (renamed from gcc/testsuite/rust.test/compilable/conditional.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/constant1.rs (renamed from gcc/testsuite/rust.test/compilable/constant1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/deadcode1.rs (renamed from gcc/testsuite/rust.test/compilable/deadcode1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/deref1.rs (renamed from gcc/testsuite/rust.test/compilable/deref1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/float1.rs (renamed from gcc/testsuite/rust.test/compilable/float1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/float_types.rs (renamed from gcc/testsuite/rust.test/compilable/float_types.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/forward_decl_1.rs (renamed from gcc/testsuite/rust.test/compilable/forward_decl_1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/forward_decl_2.rs (renamed from gcc/testsuite/rust.test/compilable/forward_decl_2.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/forward_decl_3.rs (renamed from gcc/testsuite/rust.test/compilable/forward_decl_3.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/forward_decl_4.rs (renamed from gcc/testsuite/rust.test/compilable/forward_decl_4.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/function_reference1.rs (renamed from gcc/testsuite/rust.test/compilable/function_reference1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/function_reference2.rs (renamed from gcc/testsuite/rust.test/compilable/function_reference2.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/function_reference3.rs (renamed from gcc/testsuite/rust.test/compilable/function_reference3.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/function_reference4.rs (renamed from gcc/testsuite/rust.test/compilable/function_reference4.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/generics1.rs (renamed from gcc/testsuite/rust.test/compilable/generics1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/generics2.rs (renamed from gcc/testsuite/rust.test/compilable/generics2.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/generics3.rs (renamed from gcc/testsuite/rust.test/compilable/generics3.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/generics4.rs (renamed from gcc/testsuite/rust.test/compilable/generics4.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/generics5.rs (renamed from gcc/testsuite/rust.test/compilable/generics5.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/generics6.rs (renamed from gcc/testsuite/rust.test/compilable/generics6.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/generics7.rs (renamed from gcc/testsuite/rust.test/compilable/generics7.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/if_elif_else_expr1.rs (renamed from gcc/testsuite/rust.test/compilable/if_elif_else_expr1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/impl_block1.rs (renamed from gcc/testsuite/rust.test/compilable/impl_block1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/impl_block2.rs (renamed from gcc/testsuite/rust.test/compilable/impl_block2.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/impl_block3.rs (renamed from gcc/testsuite/rust.test/compilable/impl_block3.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/implicit_returns1.rs (renamed from gcc/testsuite/rust.test/compilable/implicit_returns1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/infer_type1.rs (renamed from gcc/testsuite/rust.test/compilable/infer_type1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/integer_inference_var1.rs (renamed from gcc/testsuite/rust.test/compilable/integer_inference_var1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/integer_inference_var2.rs (renamed from gcc/testsuite/rust.test/compilable/integer_inference_var2.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/integer_inference_var3.rs (renamed from gcc/testsuite/rust.test/compilable/integer_inference_var3.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/integer_inference_var4.rs (renamed from gcc/testsuite/rust.test/compilable/integer_inference_var4.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/integer_inference_var5.rs (renamed from gcc/testsuite/rust.test/compilable/integer_inference_var5.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/integer_types.rs (renamed from gcc/testsuite/rust.test/compilable/integer_types.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/literals1.rs (renamed from gcc/testsuite/rust.test/compilable/literals1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/loop1.rs (renamed from gcc/testsuite/rust.test/compilable/loop1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/loop2.rs (renamed from gcc/testsuite/rust.test/compilable/loop2.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/loop3.rs (renamed from gcc/testsuite/rust.test/compilable/loop3.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/loop4.rs (renamed from gcc/testsuite/rust.test/compilable/loop4.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/loop5.rs (renamed from gcc/testsuite/rust.test/compilable/loop5.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/loop6.rs (renamed from gcc/testsuite/rust.test/compilable/loop6.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/loop7.rs (renamed from gcc/testsuite/rust.test/compilable/loop7.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/methods1.rs (renamed from gcc/testsuite/rust.test/compilable/methods1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/methods2.rs (renamed from gcc/testsuite/rust.test/compilable/methods2.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/name_resolve1.rs (renamed from gcc/testsuite/rust.test/compilable/name_resolve1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/nested_struct1.rs (renamed from gcc/testsuite/rust.test/compilable/nested_struct1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/parameter_usage1.rs (renamed from gcc/testsuite/rust.test/compilable/parameter_usage1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/parens1.rs (renamed from gcc/testsuite/rust.test/compilable/parens1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/recursive_fn1.rs (renamed from gcc/testsuite/rust.test/compilable/recursive_fn1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/scoping1.rs (renamed from gcc/testsuite/rust.test/compilable/scoping1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/self_type1.rs (renamed from gcc/testsuite/rust.test/compilable/self_type1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/shadow1.rs (renamed from gcc/testsuite/rust.test/compilable/shadow1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/shadow2.rs (renamed from gcc/testsuite/rust.test/compilable/shadow2.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/static_function.rs (renamed from gcc/testsuite/rust.test/compilable/static_function.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/static_var1.rs (renamed from gcc/testsuite/rust.test/compilable/static_var1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/str1.rs (renamed from gcc/testsuite/rust.test/compilable/str1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/struct_access1.rs (renamed from gcc/testsuite/rust.test/compilable/struct_access1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/struct_base_init_1.rs (renamed from gcc/testsuite/rust.test/compilable/struct_base_init_1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/struct_init.rs (renamed from gcc/testsuite/rust.test/compilable/struct_init.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/struct_init_2.rs (renamed from gcc/testsuite/rust.test/compilable/struct_init_2.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/struct_init_3.rs (renamed from gcc/testsuite/rust.test/compilable/struct_init_3.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/struct_init_4.rs (renamed from gcc/testsuite/rust.test/compilable/struct_init_4.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/struct_init_5.rs (renamed from gcc/testsuite/rust.test/compilable/struct_init_5.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/struct_init_6.rs (renamed from gcc/testsuite/rust.test/compilable/struct_init_6.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/struct_init_7.rs (renamed from gcc/testsuite/rust.test/compilable/struct_init_7.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/struct_init_8.rs (renamed from gcc/testsuite/rust.test/compilable/struct_init_8.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/tuple1.rs (renamed from gcc/testsuite/rust.test/compilable/tuple1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/tuple2.rs (renamed from gcc/testsuite/rust.test/compilable/tuple2.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/tuple3.rs (renamed from gcc/testsuite/rust.test/compilable/tuple3.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/tuple_field_access.rs (renamed from gcc/testsuite/rust.test/compilable/tuple_field_access.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/tuple_struct1.rs (renamed from gcc/testsuite/rust.test/compilable/tuple_struct1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/tuple_struct2.rs (renamed from gcc/testsuite/rust.test/compilable/tuple_struct2.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/type_infer1.rs (renamed from gcc/testsuite/rust.test/compilable/type_infer1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/type_infer2.rs (renamed from gcc/testsuite/rust.test/compilable/type_infer2.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/type_infer3.rs (renamed from gcc/testsuite/rust.test/compilable/type_infer3.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/type_infer4.rs (renamed from gcc/testsuite/rust.test/compilable/type_infer4.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/type_infer5.rs (renamed from gcc/testsuite/rust.test/compilable/type_infer5.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/type_infer6.rs (renamed from gcc/testsuite/rust.test/compilable/type_infer6.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/unary_operators.rs (renamed from gcc/testsuite/rust.test/compilable/unary_operators.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/unit_type1.rs (renamed from gcc/testsuite/rust.test/compilable/unit_type1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/unused1.rs (renamed from gcc/testsuite/rust.test/compilable/unused1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/compile/usize1.rs (renamed from gcc/testsuite/rust.test/compilable/usize1.rs) | 0 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/execute/empty_main.rs | 3 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/execute/execute.exp | 35 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/execute/exit_error.rs | 5 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/arrays1.rs | 4 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/arrays2.rs | 3 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/bad_type1.rs | 3 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/break1.rs | 5 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/break2.rs | 14 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/continue1.rs | 9 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/func1.rs | 9 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/func2.rs | 7 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/func3.rs | 7 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/generics1.rs | 9 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/generics2.rs | 9 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/generics3.rs | 9 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/generics5.rs | 9 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/immutable1.rs | 5 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/immutable2.rs | 5 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/immutable3.rs | 4 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/immutable4.rs | 4 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/missing_return1.rs | 5 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/redef_error1.rs | 8 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/redef_error2.rs | 4 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/redef_error3.rs | 9 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/redef_error5.rs | 8 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/shadow1.rs | 6 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/static_var1.rs | 5 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/struct_init1.rs | 8 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/tuple1.rs | 5 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/tuple_struct1.rs | 8 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/tuple_struct2.rs | 5 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/tuple_struct3.rs | 5 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/unary_negation.rs | 8 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/unary_not.rs | 8 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/fail_compilation/usize1.rs | 5 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/rust-test.exp | 437 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/arrays1.rs | 5 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/arrays2.rs | 5 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/bad_type1.rs | 4 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/bad_type2.rs (renamed from gcc/testsuite/rust.test/fail_compilation/bad_type2.rs) | 3 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/break1.rs | 7 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/break2.rs | 16 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/continue1.rs | 11 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/func1.rs | 9 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/func2.rs | 10 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/func3.rs | 7 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/generics1.rs | 11 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/generics2.rs | 11 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/generics3.rs | 10 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/generics4.rs (renamed from gcc/testsuite/rust.test/fail_compilation/generics4.rs) | 1 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/generics5.rs | 13 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/immutable1.rs | 5 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/immutable2.rs | 5 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/immutable3.rs | 4 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/immutable4.rs | 4 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/immutable5.rs (renamed from gcc/testsuite/rust.test/fail_compilation/immutable5.rs) | 2 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/implicit_returns_err1.rs (renamed from gcc/testsuite/rust.test/fail_compilation/implicit_returns_err1.rs) | 2 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/implicit_returns_err2.rs (renamed from gcc/testsuite/rust.test/fail_compilation/implicit_returns_err2.rs) | 2 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/implicit_returns_err3.rs (renamed from gcc/testsuite/rust.test/fail_compilation/implicit_returns_err3.rs) | 1 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/missing_return1.rs | 6 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/redef_error1.rs | 9 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/redef_error2.rs | 5 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/redef_error3.rs | 10 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/redef_error4.rs (renamed from gcc/testsuite/rust.test/fail_compilation/redef_error4.rs) | 6 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/redef_error5.rs | 9 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/shadow1.rs | 7 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/static_var1.rs | 5 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/struct_init1.rs | 9 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/tuple1.rs | 5 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/tuple_struct1.rs | 10 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/tuple_struct2.rs | 7 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/tuple_struct3.rs | 5 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/unary_negation.rs | 10 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/unary_not.rs | 9 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/usize1.rs | 5 | ||||
-rw-r--r-- | gcc/testsuite/rust.test/xfail_compile/xfail_compile.exp | 36 |
174 files changed, 396 insertions, 756 deletions
diff --git a/gcc/testsuite/lib/rust-dg.exp b/gcc/testsuite/lib/rust-dg.exp index e7c9852..ef9f51b 100644 --- a/gcc/testsuite/lib/rust-dg.exp +++ b/gcc/testsuite/lib/rust-dg.exp @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2019 Free Software Foundation, Inc. +# Copyright (C) 1997-2021 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -19,30 +19,7 @@ load_lib gcc-dg.exp # Define rust callbacks for dg.exp. proc rust-dg-test { prog do_what extra_tool_flags } { - upvar dg-do-what dg-do-what - - # Demote link and run tests to compile-only if D runtime is missing. - if ![check_effective_target_d_runtime] { - switch $do_what { - link - - run { - set do_what compile - set dg-do-what compile - } - } - } - - # Strip rust.test prefix off test names to avoid pathname failures in - # some tests. - set prog [dg-trim-dirname rust.test $prog] - - set result \ - [gcc-dg-test-1 rust_target_compile $prog $do_what $extra_tool_flags] - - set comp_output [lindex $result 0] - set output_file [lindex $result 1] - - return [list $comp_output $output_file] + return [gcc-dg-test-1 rust_target_compile $prog $do_what $extra_tool_flags] } proc rust-dg-prune { system text } { @@ -52,39 +29,6 @@ proc rust-dg-prune { system text } { # Utility routines. # -# Modified dg-runtest that can cycle through a list of optimization options -# as c-torture does. -# - -proc rust-dg-runtest { testcases flags default-extra-flags } { - global runtests - - foreach test $testcases { - # If we're only testing specific files and this isn't one of - # them, skip it. - - if ![runtest_file_p $runtests $test] { - continue - } - - # Use TORTURE_OPTIONS to cycle through an option list. - if [torture-options-exist] then { - global torture_with_loops - set option_list $torture_with_loops - } else { - set option_list { "" } - } - - set nshort [file tail [file dirname $test]]/[file tail $test] - - foreach flags_t $option_list { - verbose "Testing $nshort, $flags $flags_t" 1 - dg-test $test "$flags $flags_t" ${default-extra-flags} - } - } -} - -# # rust_load -- wrapper around default rust_load to handle tests that # require program arguments passed to them. # @@ -98,7 +42,6 @@ if { [info procs rust_load] != [list] \ if [info exists RUST_EXECUTE_ARGS] then { set args [concat "{$RUST_EXECUTE_ARGS}"] } - #print "Running: $program [lindex $args 0]" set result [eval [list prev_rust_load $program] $args ] return $result } diff --git a/gcc/testsuite/lib/rust.exp b/gcc/testsuite/lib/rust.exp index 541b052..206f572 100644 --- a/gcc/testsuite/lib/rust.exp +++ b/gcc/testsuite/lib/rust.exp @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2020 Free Software Foundation, Inc. +# Copyright (C) 2012-2021 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -31,39 +31,6 @@ set rust_compile_options "" # -# rust_version -- extract and print the version number of the compiler -# - -proc rust_version { } { - global RUST_UNDER_TEST - - rust_init - - # ignore any arguments after the command - set compiler [lindex $RUST_UNDER_TEST 0] - - # verify that the compiler exists - if { [is_remote host] || [which $compiler] != 0 } then { - set tmp [remote_exec host "$compiler -v"] - set status [lindex $tmp 0] - set output [lindex $tmp 1] - regexp " version \[^\n\r\]*" $output version - if { $status == 0 && [info exists version] } then { - if [is_remote host] { - clone_output "$compiler $version\n" - } else { - clone_output "[which $compiler] $version\n" - } - } else { - clone_output "Couldn't determine version of $output [which $compiler]\n" - } - } else { - # compiler does not exist (this should have already been detected) - warning "$compiler does not exist" - } -} - -# # rust_include_flags -- include flags for the gcc tree structure # @@ -118,7 +85,7 @@ proc rust_init { args } { global libdir global gluefile wrap_flags global objdir srcdir - global ALWAYS_DFLAGS + global ALWAYS_RUSTFLAGS global TOOL_EXECUTABLE TOOL_OPTIONS global RUST_UNDER_TEST global TESTING_IN_BUILD_TREE @@ -148,6 +115,7 @@ proc rust_init { args } { exit 1 } } + if ![info exists tmpdir] { set tmpdir "/tmp" } @@ -164,24 +132,24 @@ proc rust_init { args } { # compilation. They are passed first to allow individual # tests to override them. if [info exists TEST_ALWAYS_FLAGS] { - lappend ALWAYS_DFLAGS "additional_flags=$TEST_ALWAYS_FLAGS" + lappend ALWAYS_RUSTFLAGS "additional_flags=$TEST_ALWAYS_FLAGS" } if ![is_remote host] { if [info exists TOOL_OPTIONS] { - lappend ALWAYS_DFLAGS "additional_flags=[rust_include_flags [get_multilibs ${TOOL_OPTIONS}] ]" - lappend ALWAYS_DFLAGS "ldflags=[rust_link_flags [get_multilibs ${TOOL_OPTIONS}] ]" + lappend ALWAYS_RUSTFLAGS "additional_flags=[rust_include_flags [get_multilibs ${TOOL_OPTIONS}] ]" + lappend ALWAYS_RUSTFLAGS "ldflags=[rust_link_flags [get_multilibs ${TOOL_OPTIONS}] ]" } else { - lappend ALWAYS_DFLAGS "additional_flags=[rust_include_flags [get_multilibs] ]" - lappend ALWAYS_DFLAGS "ldflags=[rust_link_flags [get_multilibs] ]" + lappend ALWAYS_RUSTFLAGS "additional_flags=[rust_include_flags [get_multilibs] ]" + lappend ALWAYS_RUSTFLAGS "ldflags=[rust_link_flags [get_multilibs] ]" } } if [info exists TOOL_OPTIONS] { - lappend ALWAYS_DFLAGS "additional_flags=$TOOL_OPTIONS" + lappend ALWAYS_RUSTFLAGS "additional_flags=$TOOL_OPTIONS" } - verbose -log "ALWAYS_DFLAGS set to $ALWAYS_DFLAGS" + verbose -log "ALWAYS_RUSTFLAGS set to $ALWAYS_RUSTFLAGS" set gcc_warning_prefix "warning:" set gcc_error_prefix "(fatal )?error:" @@ -196,7 +164,7 @@ proc rust_init { args } { proc rust_target_compile { source dest type options } { global tmpdir global gluefile wrap_flags - global ALWAYS_DFLAGS + global ALWAYS_RUSTFLAGS global RUST_UNDER_TEST if { [target_info needs_status_wrapper] != "" && [info exists gluefile] } { @@ -207,7 +175,14 @@ proc rust_target_compile { source dest type options } { lappend options "timeout=[timeout_value]" lappend options "compiler=$RUST_UNDER_TEST" - set options [concat "$ALWAYS_DFLAGS" $options] + set options [concat "$ALWAYS_RUSTFLAGS" $options] set options [dg-additional-files-options $options $source] + + ## FIXME: until the compiler is made less verbose, we need to prune its output completely. + # Only keep line containing error so that the test will correctly report the error and the test + # can FAIL or XFAIL + global additional_prunes + set additional_prunes "^((?!error).)*$" + return [target_compile $source $dest $type $options] } diff --git a/gcc/testsuite/rust.test/compilable/arithmetic_expressions1.rs b/gcc/testsuite/rust.test/compile/arithmetic_expressions1.rs index efc63f5..efc63f5 100644 --- a/gcc/testsuite/rust.test/compilable/arithmetic_expressions1.rs +++ b/gcc/testsuite/rust.test/compile/arithmetic_expressions1.rs diff --git a/gcc/testsuite/rust.test/compilable/arrays1.rs b/gcc/testsuite/rust.test/compile/arrays1.rs index f7e66af..f7e66af 100644 --- a/gcc/testsuite/rust.test/compilable/arrays1.rs +++ b/gcc/testsuite/rust.test/compile/arrays1.rs diff --git a/gcc/testsuite/rust.test/compilable/arrays2.rs b/gcc/testsuite/rust.test/compile/arrays2.rs index a3c8523..a3c8523 100644 --- a/gcc/testsuite/rust.test/compilable/arrays2.rs +++ b/gcc/testsuite/rust.test/compile/arrays2.rs diff --git a/gcc/testsuite/rust.test/compilable/arrays_index1.rs b/gcc/testsuite/rust.test/compile/arrays_index1.rs index 8dd1c04..8dd1c04 100644 --- a/gcc/testsuite/rust.test/compilable/arrays_index1.rs +++ b/gcc/testsuite/rust.test/compile/arrays_index1.rs diff --git a/gcc/testsuite/rust.test/compilable/arrays_index2.rs b/gcc/testsuite/rust.test/compile/arrays_index2.rs index f9bee77..f9bee77 100644 --- a/gcc/testsuite/rust.test/compilable/arrays_index2.rs +++ b/gcc/testsuite/rust.test/compile/arrays_index2.rs diff --git a/gcc/testsuite/rust.test/compilable/block_expr1.rs b/gcc/testsuite/rust.test/compile/block_expr1.rs index fe63252..fe63252 100644 --- a/gcc/testsuite/rust.test/compilable/block_expr1.rs +++ b/gcc/testsuite/rust.test/compile/block_expr1.rs diff --git a/gcc/testsuite/rust.test/compilable/block_expr2.rs b/gcc/testsuite/rust.test/compile/block_expr2.rs index a66ca7b..a66ca7b 100644 --- a/gcc/testsuite/rust.test/compilable/block_expr2.rs +++ b/gcc/testsuite/rust.test/compile/block_expr2.rs diff --git a/gcc/testsuite/rust.test/compilable/block_expr3.rs b/gcc/testsuite/rust.test/compile/block_expr3.rs index a8b2f27..a8b2f27 100644 --- a/gcc/testsuite/rust.test/compilable/block_expr3.rs +++ b/gcc/testsuite/rust.test/compile/block_expr3.rs diff --git a/gcc/testsuite/rust.test/compilable/block_expr4.rs b/gcc/testsuite/rust.test/compile/block_expr4.rs index 35a5cd0..35a5cd0 100644 --- a/gcc/testsuite/rust.test/compilable/block_expr4.rs +++ b/gcc/testsuite/rust.test/compile/block_expr4.rs diff --git a/gcc/testsuite/rust.test/compilable/block_expr_parser_bug.rs b/gcc/testsuite/rust.test/compile/block_expr_parser_bug.rs index e583008..e583008 100644 --- a/gcc/testsuite/rust.test/compilable/block_expr_parser_bug.rs +++ b/gcc/testsuite/rust.test/compile/block_expr_parser_bug.rs diff --git a/gcc/testsuite/rust.test/compilable/borrow1.rs b/gcc/testsuite/rust.test/compile/borrow1.rs index 8afa474..8afa474 100644 --- a/gcc/testsuite/rust.test/compilable/borrow1.rs +++ b/gcc/testsuite/rust.test/compile/borrow1.rs diff --git a/gcc/testsuite/rust.test/compilable/char1.rs b/gcc/testsuite/rust.test/compile/char1.rs index 73835c2..73835c2 100644 --- a/gcc/testsuite/rust.test/compilable/char1.rs +++ b/gcc/testsuite/rust.test/compile/char1.rs diff --git a/gcc/testsuite/rust.test/compilable/comparison_expr1.rs b/gcc/testsuite/rust.test/compile/comparison_expr1.rs index d3c5263..d3c5263 100644 --- a/gcc/testsuite/rust.test/compilable/comparison_expr1.rs +++ b/gcc/testsuite/rust.test/compile/comparison_expr1.rs diff --git a/gcc/testsuite/rust.test/compile/compile.exp b/gcc/testsuite/rust.test/compile/compile.exp new file mode 100644 index 0000000..37cfd41 --- /dev/null +++ b/gcc/testsuite/rust.test/compile/compile.exp @@ -0,0 +1,35 @@ +# Copyright (C) 2021 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# <http://www.gnu.org/licenses/>. + +# +# Rust torture test suite. +# + +# Load support procs. +load_lib rust-dg.exp + +# Initialize `dg'. +dg-init + +# Main loop. +set saved-dg-do-what-default ${dg-do-what-default} + +set dg-do-what-default "compile" +gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.rs]] "" "-w" +set dg-do-what-default ${saved-dg-do-what-default} + +# All done. +dg-finish diff --git a/gcc/testsuite/rust.test/compilable/compound_assignment_expr1.rs b/gcc/testsuite/rust.test/compile/compound_assignment_expr1.rs index 1ff0d24..1ff0d24 100644 --- a/gcc/testsuite/rust.test/compilable/compound_assignment_expr1.rs +++ b/gcc/testsuite/rust.test/compile/compound_assignment_expr1.rs diff --git a/gcc/testsuite/rust.test/compilable/conditional.rs b/gcc/testsuite/rust.test/compile/conditional.rs index 2bb3a95..2bb3a95 100644 --- a/gcc/testsuite/rust.test/compilable/conditional.rs +++ b/gcc/testsuite/rust.test/compile/conditional.rs diff --git a/gcc/testsuite/rust.test/compilable/constant1.rs b/gcc/testsuite/rust.test/compile/constant1.rs index e8ef96b..e8ef96b 100644 --- a/gcc/testsuite/rust.test/compilable/constant1.rs +++ b/gcc/testsuite/rust.test/compile/constant1.rs diff --git a/gcc/testsuite/rust.test/compilable/deadcode1.rs b/gcc/testsuite/rust.test/compile/deadcode1.rs index ec6e240..ec6e240 100644 --- a/gcc/testsuite/rust.test/compilable/deadcode1.rs +++ b/gcc/testsuite/rust.test/compile/deadcode1.rs diff --git a/gcc/testsuite/rust.test/compilable/deref1.rs b/gcc/testsuite/rust.test/compile/deref1.rs index 9bf3eb5..9bf3eb5 100644 --- a/gcc/testsuite/rust.test/compilable/deref1.rs +++ b/gcc/testsuite/rust.test/compile/deref1.rs diff --git a/gcc/testsuite/rust.test/compilable/float1.rs b/gcc/testsuite/rust.test/compile/float1.rs index 57a746f..57a746f 100644 --- a/gcc/testsuite/rust.test/compilable/float1.rs +++ b/gcc/testsuite/rust.test/compile/float1.rs diff --git a/gcc/testsuite/rust.test/compilable/float_types.rs b/gcc/testsuite/rust.test/compile/float_types.rs index 50b392e..50b392e 100644 --- a/gcc/testsuite/rust.test/compilable/float_types.rs +++ b/gcc/testsuite/rust.test/compile/float_types.rs diff --git a/gcc/testsuite/rust.test/compilable/forward_decl_1.rs b/gcc/testsuite/rust.test/compile/forward_decl_1.rs index a69c07e..a69c07e 100644 --- a/gcc/testsuite/rust.test/compilable/forward_decl_1.rs +++ b/gcc/testsuite/rust.test/compile/forward_decl_1.rs diff --git a/gcc/testsuite/rust.test/compilable/forward_decl_2.rs b/gcc/testsuite/rust.test/compile/forward_decl_2.rs index ba9c963..ba9c963 100644 --- a/gcc/testsuite/rust.test/compilable/forward_decl_2.rs +++ b/gcc/testsuite/rust.test/compile/forward_decl_2.rs diff --git a/gcc/testsuite/rust.test/compilable/forward_decl_3.rs b/gcc/testsuite/rust.test/compile/forward_decl_3.rs index 257b0f7..257b0f7 100644 --- a/gcc/testsuite/rust.test/compilable/forward_decl_3.rs +++ b/gcc/testsuite/rust.test/compile/forward_decl_3.rs diff --git a/gcc/testsuite/rust.test/compilable/forward_decl_4.rs b/gcc/testsuite/rust.test/compile/forward_decl_4.rs index dd8a725..dd8a725 100644 --- a/gcc/testsuite/rust.test/compilable/forward_decl_4.rs +++ b/gcc/testsuite/rust.test/compile/forward_decl_4.rs diff --git a/gcc/testsuite/rust.test/compilable/function_reference1.rs b/gcc/testsuite/rust.test/compile/function_reference1.rs index 604bad0..604bad0 100644 --- a/gcc/testsuite/rust.test/compilable/function_reference1.rs +++ b/gcc/testsuite/rust.test/compile/function_reference1.rs diff --git a/gcc/testsuite/rust.test/compilable/function_reference2.rs b/gcc/testsuite/rust.test/compile/function_reference2.rs index 0b963b2..0b963b2 100644 --- a/gcc/testsuite/rust.test/compilable/function_reference2.rs +++ b/gcc/testsuite/rust.test/compile/function_reference2.rs diff --git a/gcc/testsuite/rust.test/compilable/function_reference3.rs b/gcc/testsuite/rust.test/compile/function_reference3.rs index 32f4728..32f4728 100644 --- a/gcc/testsuite/rust.test/compilable/function_reference3.rs +++ b/gcc/testsuite/rust.test/compile/function_reference3.rs diff --git a/gcc/testsuite/rust.test/compilable/function_reference4.rs b/gcc/testsuite/rust.test/compile/function_reference4.rs index a27f0e4..a27f0e4 100644 --- a/gcc/testsuite/rust.test/compilable/function_reference4.rs +++ b/gcc/testsuite/rust.test/compile/function_reference4.rs diff --git a/gcc/testsuite/rust.test/compilable/generics1.rs b/gcc/testsuite/rust.test/compile/generics1.rs index 8a2965a..8a2965a 100644 --- a/gcc/testsuite/rust.test/compilable/generics1.rs +++ b/gcc/testsuite/rust.test/compile/generics1.rs diff --git a/gcc/testsuite/rust.test/compilable/generics2.rs b/gcc/testsuite/rust.test/compile/generics2.rs index ee759dd..ee759dd 100644 --- a/gcc/testsuite/rust.test/compilable/generics2.rs +++ b/gcc/testsuite/rust.test/compile/generics2.rs diff --git a/gcc/testsuite/rust.test/compilable/generics3.rs b/gcc/testsuite/rust.test/compile/generics3.rs index 0dc41c3..0dc41c3 100644 --- a/gcc/testsuite/rust.test/compilable/generics3.rs +++ b/gcc/testsuite/rust.test/compile/generics3.rs diff --git a/gcc/testsuite/rust.test/compilable/generics4.rs b/gcc/testsuite/rust.test/compile/generics4.rs index 81ac4e6..81ac4e6 100644 --- a/gcc/testsuite/rust.test/compilable/generics4.rs +++ b/gcc/testsuite/rust.test/compile/generics4.rs diff --git a/gcc/testsuite/rust.test/compilable/generics5.rs b/gcc/testsuite/rust.test/compile/generics5.rs index 3d7f70d..3d7f70d 100644 --- a/gcc/testsuite/rust.test/compilable/generics5.rs +++ b/gcc/testsuite/rust.test/compile/generics5.rs diff --git a/gcc/testsuite/rust.test/compilable/generics6.rs b/gcc/testsuite/rust.test/compile/generics6.rs index da9f167..da9f167 100644 --- a/gcc/testsuite/rust.test/compilable/generics6.rs +++ b/gcc/testsuite/rust.test/compile/generics6.rs diff --git a/gcc/testsuite/rust.test/compilable/generics7.rs b/gcc/testsuite/rust.test/compile/generics7.rs index b534708..b534708 100644 --- a/gcc/testsuite/rust.test/compilable/generics7.rs +++ b/gcc/testsuite/rust.test/compile/generics7.rs diff --git a/gcc/testsuite/rust.test/compilable/if_elif_else_expr1.rs b/gcc/testsuite/rust.test/compile/if_elif_else_expr1.rs index eda6d17..eda6d17 100644 --- a/gcc/testsuite/rust.test/compilable/if_elif_else_expr1.rs +++ b/gcc/testsuite/rust.test/compile/if_elif_else_expr1.rs diff --git a/gcc/testsuite/rust.test/compilable/impl_block1.rs b/gcc/testsuite/rust.test/compile/impl_block1.rs index d67afa1..d67afa1 100644 --- a/gcc/testsuite/rust.test/compilable/impl_block1.rs +++ b/gcc/testsuite/rust.test/compile/impl_block1.rs diff --git a/gcc/testsuite/rust.test/compilable/impl_block2.rs b/gcc/testsuite/rust.test/compile/impl_block2.rs index 0ed592d..0ed592d 100644 --- a/gcc/testsuite/rust.test/compilable/impl_block2.rs +++ b/gcc/testsuite/rust.test/compile/impl_block2.rs diff --git a/gcc/testsuite/rust.test/compilable/impl_block3.rs b/gcc/testsuite/rust.test/compile/impl_block3.rs index 3093a6c..3093a6c 100644 --- a/gcc/testsuite/rust.test/compilable/impl_block3.rs +++ b/gcc/testsuite/rust.test/compile/impl_block3.rs diff --git a/gcc/testsuite/rust.test/compilable/implicit_returns1.rs b/gcc/testsuite/rust.test/compile/implicit_returns1.rs index 49457c6..49457c6 100644 --- a/gcc/testsuite/rust.test/compilable/implicit_returns1.rs +++ b/gcc/testsuite/rust.test/compile/implicit_returns1.rs diff --git a/gcc/testsuite/rust.test/compilable/infer_type1.rs b/gcc/testsuite/rust.test/compile/infer_type1.rs index 38bd8ae..38bd8ae 100644 --- a/gcc/testsuite/rust.test/compilable/infer_type1.rs +++ b/gcc/testsuite/rust.test/compile/infer_type1.rs diff --git a/gcc/testsuite/rust.test/compilable/integer_inference_var1.rs b/gcc/testsuite/rust.test/compile/integer_inference_var1.rs index ccee06a..ccee06a 100644 --- a/gcc/testsuite/rust.test/compilable/integer_inference_var1.rs +++ b/gcc/testsuite/rust.test/compile/integer_inference_var1.rs diff --git a/gcc/testsuite/rust.test/compilable/integer_inference_var2.rs b/gcc/testsuite/rust.test/compile/integer_inference_var2.rs index 2209e93..2209e93 100644 --- a/gcc/testsuite/rust.test/compilable/integer_inference_var2.rs +++ b/gcc/testsuite/rust.test/compile/integer_inference_var2.rs diff --git a/gcc/testsuite/rust.test/compilable/integer_inference_var3.rs b/gcc/testsuite/rust.test/compile/integer_inference_var3.rs index 858c5d3..858c5d3 100644 --- a/gcc/testsuite/rust.test/compilable/integer_inference_var3.rs +++ b/gcc/testsuite/rust.test/compile/integer_inference_var3.rs diff --git a/gcc/testsuite/rust.test/compilable/integer_inference_var4.rs b/gcc/testsuite/rust.test/compile/integer_inference_var4.rs index 136d818..136d818 100644 --- a/gcc/testsuite/rust.test/compilable/integer_inference_var4.rs +++ b/gcc/testsuite/rust.test/compile/integer_inference_var4.rs diff --git a/gcc/testsuite/rust.test/compilable/integer_inference_var5.rs b/gcc/testsuite/rust.test/compile/integer_inference_var5.rs index 6b97de5..6b97de5 100644 --- a/gcc/testsuite/rust.test/compilable/integer_inference_var5.rs +++ b/gcc/testsuite/rust.test/compile/integer_inference_var5.rs diff --git a/gcc/testsuite/rust.test/compilable/integer_types.rs b/gcc/testsuite/rust.test/compile/integer_types.rs index 22a9164..22a9164 100644 --- a/gcc/testsuite/rust.test/compilable/integer_types.rs +++ b/gcc/testsuite/rust.test/compile/integer_types.rs diff --git a/gcc/testsuite/rust.test/compilable/literals1.rs b/gcc/testsuite/rust.test/compile/literals1.rs index cd48e83..cd48e83 100644 --- a/gcc/testsuite/rust.test/compilable/literals1.rs +++ b/gcc/testsuite/rust.test/compile/literals1.rs diff --git a/gcc/testsuite/rust.test/compilable/loop1.rs b/gcc/testsuite/rust.test/compile/loop1.rs index a8ee2f5..a8ee2f5 100644 --- a/gcc/testsuite/rust.test/compilable/loop1.rs +++ b/gcc/testsuite/rust.test/compile/loop1.rs diff --git a/gcc/testsuite/rust.test/compilable/loop2.rs b/gcc/testsuite/rust.test/compile/loop2.rs index 3de3ea8..3de3ea8 100644 --- a/gcc/testsuite/rust.test/compilable/loop2.rs +++ b/gcc/testsuite/rust.test/compile/loop2.rs diff --git a/gcc/testsuite/rust.test/compilable/loop3.rs b/gcc/testsuite/rust.test/compile/loop3.rs index 76fadfb..76fadfb 100644 --- a/gcc/testsuite/rust.test/compilable/loop3.rs +++ b/gcc/testsuite/rust.test/compile/loop3.rs diff --git a/gcc/testsuite/rust.test/compilable/loop4.rs b/gcc/testsuite/rust.test/compile/loop4.rs index f7b5935..f7b5935 100644 --- a/gcc/testsuite/rust.test/compilable/loop4.rs +++ b/gcc/testsuite/rust.test/compile/loop4.rs diff --git a/gcc/testsuite/rust.test/compilable/loop5.rs b/gcc/testsuite/rust.test/compile/loop5.rs index 4004cd3..4004cd3 100644 --- a/gcc/testsuite/rust.test/compilable/loop5.rs +++ b/gcc/testsuite/rust.test/compile/loop5.rs diff --git a/gcc/testsuite/rust.test/compilable/loop6.rs b/gcc/testsuite/rust.test/compile/loop6.rs index ecd3ad4..ecd3ad4 100644 --- a/gcc/testsuite/rust.test/compilable/loop6.rs +++ b/gcc/testsuite/rust.test/compile/loop6.rs diff --git a/gcc/testsuite/rust.test/compilable/loop7.rs b/gcc/testsuite/rust.test/compile/loop7.rs index 0cd8445..0cd8445 100644 --- a/gcc/testsuite/rust.test/compilable/loop7.rs +++ b/gcc/testsuite/rust.test/compile/loop7.rs diff --git a/gcc/testsuite/rust.test/compilable/methods1.rs b/gcc/testsuite/rust.test/compile/methods1.rs index cffa02e..cffa02e 100644 --- a/gcc/testsuite/rust.test/compilable/methods1.rs +++ b/gcc/testsuite/rust.test/compile/methods1.rs diff --git a/gcc/testsuite/rust.test/compilable/methods2.rs b/gcc/testsuite/rust.test/compile/methods2.rs index 96a3211..96a3211 100644 --- a/gcc/testsuite/rust.test/compilable/methods2.rs +++ b/gcc/testsuite/rust.test/compile/methods2.rs diff --git a/gcc/testsuite/rust.test/compilable/name_resolve1.rs b/gcc/testsuite/rust.test/compile/name_resolve1.rs index 817f48b..817f48b 100644 --- a/gcc/testsuite/rust.test/compilable/name_resolve1.rs +++ b/gcc/testsuite/rust.test/compile/name_resolve1.rs diff --git a/gcc/testsuite/rust.test/compilable/nested_struct1.rs b/gcc/testsuite/rust.test/compile/nested_struct1.rs index 3880be0..3880be0 100644 --- a/gcc/testsuite/rust.test/compilable/nested_struct1.rs +++ b/gcc/testsuite/rust.test/compile/nested_struct1.rs diff --git a/gcc/testsuite/rust.test/compilable/parameter_usage1.rs b/gcc/testsuite/rust.test/compile/parameter_usage1.rs index 7bba6c6..7bba6c6 100644 --- a/gcc/testsuite/rust.test/compilable/parameter_usage1.rs +++ b/gcc/testsuite/rust.test/compile/parameter_usage1.rs diff --git a/gcc/testsuite/rust.test/compilable/parens1.rs b/gcc/testsuite/rust.test/compile/parens1.rs index 33d9d86..33d9d86 100644 --- a/gcc/testsuite/rust.test/compilable/parens1.rs +++ b/gcc/testsuite/rust.test/compile/parens1.rs diff --git a/gcc/testsuite/rust.test/compilable/recursive_fn1.rs b/gcc/testsuite/rust.test/compile/recursive_fn1.rs index 89c21d0..89c21d0 100644 --- a/gcc/testsuite/rust.test/compilable/recursive_fn1.rs +++ b/gcc/testsuite/rust.test/compile/recursive_fn1.rs diff --git a/gcc/testsuite/rust.test/compilable/scoping1.rs b/gcc/testsuite/rust.test/compile/scoping1.rs index 74af41e..74af41e 100644 --- a/gcc/testsuite/rust.test/compilable/scoping1.rs +++ b/gcc/testsuite/rust.test/compile/scoping1.rs diff --git a/gcc/testsuite/rust.test/compilable/self_type1.rs b/gcc/testsuite/rust.test/compile/self_type1.rs index 373d6dd..373d6dd 100644 --- a/gcc/testsuite/rust.test/compilable/self_type1.rs +++ b/gcc/testsuite/rust.test/compile/self_type1.rs diff --git a/gcc/testsuite/rust.test/compilable/shadow1.rs b/gcc/testsuite/rust.test/compile/shadow1.rs index 3cb1ec5..3cb1ec5 100644 --- a/gcc/testsuite/rust.test/compilable/shadow1.rs +++ b/gcc/testsuite/rust.test/compile/shadow1.rs diff --git a/gcc/testsuite/rust.test/compilable/shadow2.rs b/gcc/testsuite/rust.test/compile/shadow2.rs index fbac8c0..fbac8c0 100644 --- a/gcc/testsuite/rust.test/compilable/shadow2.rs +++ b/gcc/testsuite/rust.test/compile/shadow2.rs diff --git a/gcc/testsuite/rust.test/compilable/static_function.rs b/gcc/testsuite/rust.test/compile/static_function.rs index 7a564af..7a564af 100644 --- a/gcc/testsuite/rust.test/compilable/static_function.rs +++ b/gcc/testsuite/rust.test/compile/static_function.rs diff --git a/gcc/testsuite/rust.test/compilable/static_var1.rs b/gcc/testsuite/rust.test/compile/static_var1.rs index 8464f41..8464f41 100644 --- a/gcc/testsuite/rust.test/compilable/static_var1.rs +++ b/gcc/testsuite/rust.test/compile/static_var1.rs diff --git a/gcc/testsuite/rust.test/compilable/str1.rs b/gcc/testsuite/rust.test/compile/str1.rs index 08882785..08882785 100644 --- a/gcc/testsuite/rust.test/compilable/str1.rs +++ b/gcc/testsuite/rust.test/compile/str1.rs diff --git a/gcc/testsuite/rust.test/compilable/struct_access1.rs b/gcc/testsuite/rust.test/compile/struct_access1.rs index bc12b93..bc12b93 100644 --- a/gcc/testsuite/rust.test/compilable/struct_access1.rs +++ b/gcc/testsuite/rust.test/compile/struct_access1.rs diff --git a/gcc/testsuite/rust.test/compilable/struct_base_init_1.rs b/gcc/testsuite/rust.test/compile/struct_base_init_1.rs index 3c0b24a..3c0b24a 100644 --- a/gcc/testsuite/rust.test/compilable/struct_base_init_1.rs +++ b/gcc/testsuite/rust.test/compile/struct_base_init_1.rs diff --git a/gcc/testsuite/rust.test/compilable/struct_init.rs b/gcc/testsuite/rust.test/compile/struct_init.rs index 6081476..6081476 100644 --- a/gcc/testsuite/rust.test/compilable/struct_init.rs +++ b/gcc/testsuite/rust.test/compile/struct_init.rs diff --git a/gcc/testsuite/rust.test/compilable/struct_init_2.rs b/gcc/testsuite/rust.test/compile/struct_init_2.rs index 8d210b8..8d210b8 100644 --- a/gcc/testsuite/rust.test/compilable/struct_init_2.rs +++ b/gcc/testsuite/rust.test/compile/struct_init_2.rs diff --git a/gcc/testsuite/rust.test/compilable/struct_init_3.rs b/gcc/testsuite/rust.test/compile/struct_init_3.rs index fb1e58e..fb1e58e 100644 --- a/gcc/testsuite/rust.test/compilable/struct_init_3.rs +++ b/gcc/testsuite/rust.test/compile/struct_init_3.rs diff --git a/gcc/testsuite/rust.test/compilable/struct_init_4.rs b/gcc/testsuite/rust.test/compile/struct_init_4.rs index 2cc8a19..2cc8a19 100644 --- a/gcc/testsuite/rust.test/compilable/struct_init_4.rs +++ b/gcc/testsuite/rust.test/compile/struct_init_4.rs diff --git a/gcc/testsuite/rust.test/compilable/struct_init_5.rs b/gcc/testsuite/rust.test/compile/struct_init_5.rs index c79ea71..c79ea71 100644 --- a/gcc/testsuite/rust.test/compilable/struct_init_5.rs +++ b/gcc/testsuite/rust.test/compile/struct_init_5.rs diff --git a/gcc/testsuite/rust.test/compilable/struct_init_6.rs b/gcc/testsuite/rust.test/compile/struct_init_6.rs index 51b90bc..51b90bc 100644 --- a/gcc/testsuite/rust.test/compilable/struct_init_6.rs +++ b/gcc/testsuite/rust.test/compile/struct_init_6.rs diff --git a/gcc/testsuite/rust.test/compilable/struct_init_7.rs b/gcc/testsuite/rust.test/compile/struct_init_7.rs index 615eae7..615eae7 100644 --- a/gcc/testsuite/rust.test/compilable/struct_init_7.rs +++ b/gcc/testsuite/rust.test/compile/struct_init_7.rs diff --git a/gcc/testsuite/rust.test/compilable/struct_init_8.rs b/gcc/testsuite/rust.test/compile/struct_init_8.rs index e62f40a..e62f40a 100644 --- a/gcc/testsuite/rust.test/compilable/struct_init_8.rs +++ b/gcc/testsuite/rust.test/compile/struct_init_8.rs diff --git a/gcc/testsuite/rust.test/compilable/tuple1.rs b/gcc/testsuite/rust.test/compile/tuple1.rs index 8b89601..8b89601 100644 --- a/gcc/testsuite/rust.test/compilable/tuple1.rs +++ b/gcc/testsuite/rust.test/compile/tuple1.rs diff --git a/gcc/testsuite/rust.test/compilable/tuple2.rs b/gcc/testsuite/rust.test/compile/tuple2.rs index 51333d8..51333d8 100644 --- a/gcc/testsuite/rust.test/compilable/tuple2.rs +++ b/gcc/testsuite/rust.test/compile/tuple2.rs diff --git a/gcc/testsuite/rust.test/compilable/tuple3.rs b/gcc/testsuite/rust.test/compile/tuple3.rs index d0fb6fc..d0fb6fc 100644 --- a/gcc/testsuite/rust.test/compilable/tuple3.rs +++ b/gcc/testsuite/rust.test/compile/tuple3.rs diff --git a/gcc/testsuite/rust.test/compilable/tuple_field_access.rs b/gcc/testsuite/rust.test/compile/tuple_field_access.rs index 8d1bbe9..8d1bbe9 100644 --- a/gcc/testsuite/rust.test/compilable/tuple_field_access.rs +++ b/gcc/testsuite/rust.test/compile/tuple_field_access.rs diff --git a/gcc/testsuite/rust.test/compilable/tuple_struct1.rs b/gcc/testsuite/rust.test/compile/tuple_struct1.rs index 65e29f7..65e29f7 100644 --- a/gcc/testsuite/rust.test/compilable/tuple_struct1.rs +++ b/gcc/testsuite/rust.test/compile/tuple_struct1.rs diff --git a/gcc/testsuite/rust.test/compilable/tuple_struct2.rs b/gcc/testsuite/rust.test/compile/tuple_struct2.rs index 5e0a76e..5e0a76e 100644 --- a/gcc/testsuite/rust.test/compilable/tuple_struct2.rs +++ b/gcc/testsuite/rust.test/compile/tuple_struct2.rs diff --git a/gcc/testsuite/rust.test/compilable/type_infer1.rs b/gcc/testsuite/rust.test/compile/type_infer1.rs index bc4b09a..bc4b09a 100644 --- a/gcc/testsuite/rust.test/compilable/type_infer1.rs +++ b/gcc/testsuite/rust.test/compile/type_infer1.rs diff --git a/gcc/testsuite/rust.test/compilable/type_infer2.rs b/gcc/testsuite/rust.test/compile/type_infer2.rs index 614c67d..614c67d 100644 --- a/gcc/testsuite/rust.test/compilable/type_infer2.rs +++ b/gcc/testsuite/rust.test/compile/type_infer2.rs diff --git a/gcc/testsuite/rust.test/compilable/type_infer3.rs b/gcc/testsuite/rust.test/compile/type_infer3.rs index b20b565..b20b565 100644 --- a/gcc/testsuite/rust.test/compilable/type_infer3.rs +++ b/gcc/testsuite/rust.test/compile/type_infer3.rs diff --git a/gcc/testsuite/rust.test/compilable/type_infer4.rs b/gcc/testsuite/rust.test/compile/type_infer4.rs index 8e123e2..8e123e2 100644 --- a/gcc/testsuite/rust.test/compilable/type_infer4.rs +++ b/gcc/testsuite/rust.test/compile/type_infer4.rs diff --git a/gcc/testsuite/rust.test/compilable/type_infer5.rs b/gcc/testsuite/rust.test/compile/type_infer5.rs index 65c7058..65c7058 100644 --- a/gcc/testsuite/rust.test/compilable/type_infer5.rs +++ b/gcc/testsuite/rust.test/compile/type_infer5.rs diff --git a/gcc/testsuite/rust.test/compilable/type_infer6.rs b/gcc/testsuite/rust.test/compile/type_infer6.rs index f6eac9e..f6eac9e 100644 --- a/gcc/testsuite/rust.test/compilable/type_infer6.rs +++ b/gcc/testsuite/rust.test/compile/type_infer6.rs diff --git a/gcc/testsuite/rust.test/compilable/unary_operators.rs b/gcc/testsuite/rust.test/compile/unary_operators.rs index 1ed9666..1ed9666 100644 --- a/gcc/testsuite/rust.test/compilable/unary_operators.rs +++ b/gcc/testsuite/rust.test/compile/unary_operators.rs diff --git a/gcc/testsuite/rust.test/compilable/unit_type1.rs b/gcc/testsuite/rust.test/compile/unit_type1.rs index ea1ebb3..ea1ebb3 100644 --- a/gcc/testsuite/rust.test/compilable/unit_type1.rs +++ b/gcc/testsuite/rust.test/compile/unit_type1.rs diff --git a/gcc/testsuite/rust.test/compilable/unused1.rs b/gcc/testsuite/rust.test/compile/unused1.rs index cb50188..cb50188 100644 --- a/gcc/testsuite/rust.test/compilable/unused1.rs +++ b/gcc/testsuite/rust.test/compile/unused1.rs diff --git a/gcc/testsuite/rust.test/compilable/usize1.rs b/gcc/testsuite/rust.test/compile/usize1.rs index 0df0a85..0df0a85 100644 --- a/gcc/testsuite/rust.test/compilable/usize1.rs +++ b/gcc/testsuite/rust.test/compile/usize1.rs diff --git a/gcc/testsuite/rust.test/execute/empty_main.rs b/gcc/testsuite/rust.test/execute/empty_main.rs new file mode 100644 index 0000000..6442e1e --- /dev/null +++ b/gcc/testsuite/rust.test/execute/empty_main.rs @@ -0,0 +1,3 @@ +fn main() -> i32 { + 0 +} diff --git a/gcc/testsuite/rust.test/execute/execute.exp b/gcc/testsuite/rust.test/execute/execute.exp new file mode 100644 index 0000000..d4e9949 --- /dev/null +++ b/gcc/testsuite/rust.test/execute/execute.exp @@ -0,0 +1,35 @@ +# Copyright (C) 2021 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# <http://www.gnu.org/licenses/>. + +# +# Rust torture test suite. +# + +# Load support procs. +load_lib rust-dg.exp + +# Initialize `dg'. +dg-init + +# Main loop. +set saved-dg-do-what-default ${dg-do-what-default} + +set dg-do-what-default "run" +gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.rs]] "" "-w" +set dg-do-what-default ${saved-dg-do-what-default} + +# All done. +dg-finish diff --git a/gcc/testsuite/rust.test/execute/exit_error.rs b/gcc/testsuite/rust.test/execute/exit_error.rs new file mode 100644 index 0000000..02f0c8b --- /dev/null +++ b/gcc/testsuite/rust.test/execute/exit_error.rs @@ -0,0 +1,5 @@ +// { dg-xfail-run-if "" { *-*-* } } +// { dg-excess-errors "Noisy debug print" } +fn main() -> i32 { + 1 +} diff --git a/gcc/testsuite/rust.test/fail_compilation/arrays1.rs b/gcc/testsuite/rust.test/fail_compilation/arrays1.rs deleted file mode 100644 index 797f1ca..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/arrays1.rs +++ /dev/null @@ -1,4 +0,0 @@ -fn main() { - let xs: [i32; 5] = [1, 2, 3, 4, 5]; - let a: bool = xs[0]; -} diff --git a/gcc/testsuite/rust.test/fail_compilation/arrays2.rs b/gcc/testsuite/rust.test/fail_compilation/arrays2.rs deleted file mode 100644 index 9ecf322..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/arrays2.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - let array: [i32; 5] = [1, 2, 3]; -} diff --git a/gcc/testsuite/rust.test/fail_compilation/bad_type1.rs b/gcc/testsuite/rust.test/fail_compilation/bad_type1.rs deleted file mode 100644 index 83e16f3..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/bad_type1.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - let logical: bool = 123; -} diff --git a/gcc/testsuite/rust.test/fail_compilation/break1.rs b/gcc/testsuite/rust.test/fail_compilation/break1.rs deleted file mode 100644 index 401a575..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/break1.rs +++ /dev/null @@ -1,5 +0,0 @@ -fn main() { - let a; - a = 1; - break a; -} diff --git a/gcc/testsuite/rust.test/fail_compilation/break2.rs b/gcc/testsuite/rust.test/fail_compilation/break2.rs deleted file mode 100644 index 53cee9a..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/break2.rs +++ /dev/null @@ -1,14 +0,0 @@ -fn main() { - let mut a = 1; - let mut b = 1; - - let mut c; - while b > 10 { - if (b == 2) { - break b; - } - c = a + b; - a = b; - b = c; - } -} diff --git a/gcc/testsuite/rust.test/fail_compilation/continue1.rs b/gcc/testsuite/rust.test/fail_compilation/continue1.rs deleted file mode 100644 index 2ec25a4..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/continue1.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn main() { - let mut a = 1; - let mut b = 1; - - let _fib = { - continue; - 123 - }; -} diff --git a/gcc/testsuite/rust.test/fail_compilation/func1.rs b/gcc/testsuite/rust.test/fail_compilation/func1.rs deleted file mode 100644 index 5578c27..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/func1.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn test(x: i32) -> bool { - return x + 1; -} - -fn main() { - let an_integer = 5; - - let call_test = test(1); -} diff --git a/gcc/testsuite/rust.test/fail_compilation/func2.rs b/gcc/testsuite/rust.test/fail_compilation/func2.rs deleted file mode 100644 index eae433a..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/func2.rs +++ /dev/null @@ -1,7 +0,0 @@ -fn test(a: i32, b: i32) -> i32 { - a + b -} - -fn main() { - let a = test(1); -} diff --git a/gcc/testsuite/rust.test/fail_compilation/func3.rs b/gcc/testsuite/rust.test/fail_compilation/func3.rs deleted file mode 100644 index 781caf7..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/func3.rs +++ /dev/null @@ -1,7 +0,0 @@ -fn test(a: i32, b: i32) -> i32 { - a + b -} - -fn main() { - let a = test(1, true); -} diff --git a/gcc/testsuite/rust.test/fail_compilation/generics1.rs b/gcc/testsuite/rust.test/fail_compilation/generics1.rs deleted file mode 100644 index 71ff7d6..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/generics1.rs +++ /dev/null @@ -1,9 +0,0 @@ -struct GenericStruct<T>(T, usize); - -fn main() { - let a2: GenericStruct<i8>; - a2 = GenericStruct::<_>(1, 456); - - let b2: i32 = a2.0; - let c2: usize = a2.1; -} diff --git a/gcc/testsuite/rust.test/fail_compilation/generics2.rs b/gcc/testsuite/rust.test/fail_compilation/generics2.rs deleted file mode 100644 index 7fe09e7..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/generics2.rs +++ /dev/null @@ -1,9 +0,0 @@ -struct GenericStruct<T>(T, usize); - -fn main() { - let a2: GenericStruct<i8>; - a2 = GenericStruct(1, 456); - - let b2: i32 = a2.0; - let c2: usize = a2.1; -} diff --git a/gcc/testsuite/rust.test/fail_compilation/generics3.rs b/gcc/testsuite/rust.test/fail_compilation/generics3.rs deleted file mode 100644 index 80ccdec..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/generics3.rs +++ /dev/null @@ -1,9 +0,0 @@ -struct GenericStruct<T>(T, usize); - -fn main() { - let a2; - a2 = GenericStruct::<i8>(1, 456); - - let b2: i32 = a2.0; - let c2: usize = a2.1; -} diff --git a/gcc/testsuite/rust.test/fail_compilation/generics5.rs b/gcc/testsuite/rust.test/fail_compilation/generics5.rs deleted file mode 100644 index ef8250b..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/generics5.rs +++ /dev/null @@ -1,9 +0,0 @@ -struct GenericStruct<T>(T, usize); - -fn main() { - let a2; - a2 = GenericStruct::<i8, T>(1, 456); - - let b2: i32 = a2.0; - let c2: usize = a2.1; -} diff --git a/gcc/testsuite/rust.test/fail_compilation/immutable1.rs b/gcc/testsuite/rust.test/fail_compilation/immutable1.rs deleted file mode 100644 index 5713d3b1..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/immutable1.rs +++ /dev/null @@ -1,5 +0,0 @@ -static x: i32 = 3; - -fn main() { - x = 1; -} diff --git a/gcc/testsuite/rust.test/fail_compilation/immutable2.rs b/gcc/testsuite/rust.test/fail_compilation/immutable2.rs deleted file mode 100644 index e316e72..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/immutable2.rs +++ /dev/null @@ -1,5 +0,0 @@ -const TEST_CONST: i32 = 10; - -fn main() { - TEST_CONST = 1; -} diff --git a/gcc/testsuite/rust.test/fail_compilation/immutable3.rs b/gcc/testsuite/rust.test/fail_compilation/immutable3.rs deleted file mode 100644 index b310193..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/immutable3.rs +++ /dev/null @@ -1,4 +0,0 @@ -fn main() { - let a = 1; - a += 2; -} diff --git a/gcc/testsuite/rust.test/fail_compilation/immutable4.rs b/gcc/testsuite/rust.test/fail_compilation/immutable4.rs deleted file mode 100644 index d2e740f..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/immutable4.rs +++ /dev/null @@ -1,4 +0,0 @@ -fn main() { - let array: [i32; 3] = [0; 3]; - array[0] = 1; -} diff --git a/gcc/testsuite/rust.test/fail_compilation/missing_return1.rs b/gcc/testsuite/rust.test/fail_compilation/missing_return1.rs deleted file mode 100644 index 500d007..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/missing_return1.rs +++ /dev/null @@ -1,5 +0,0 @@ -fn test1() -> i32 {} - -fn main() { - let call1 = test1(); -} diff --git a/gcc/testsuite/rust.test/fail_compilation/redef_error1.rs b/gcc/testsuite/rust.test/fail_compilation/redef_error1.rs deleted file mode 100644 index 9acdf5f..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/redef_error1.rs +++ /dev/null @@ -1,8 +0,0 @@ -struct S1 { - x: f64, - y: f64, -} - -struct S1(i32, bool); - -fn main() {} diff --git a/gcc/testsuite/rust.test/fail_compilation/redef_error2.rs b/gcc/testsuite/rust.test/fail_compilation/redef_error2.rs deleted file mode 100644 index c04d2cf..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/redef_error2.rs +++ /dev/null @@ -1,4 +0,0 @@ -const TEST: i32 = 2; -const TEST: f32 = 3.0; - -fn main() {} diff --git a/gcc/testsuite/rust.test/fail_compilation/redef_error3.rs b/gcc/testsuite/rust.test/fail_compilation/redef_error3.rs deleted file mode 100644 index 9ffa4e5..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/redef_error3.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn test() -> bool { - true -} - -fn test() -> i32 { - 123 -} - -fn main() {} diff --git a/gcc/testsuite/rust.test/fail_compilation/redef_error5.rs b/gcc/testsuite/rust.test/fail_compilation/redef_error5.rs deleted file mode 100644 index 342a67e..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/redef_error5.rs +++ /dev/null @@ -1,8 +0,0 @@ -struct Foo(i32, bool); - -impl Foo { - const TEST: i32 = 123; - const TEST: bool = false; -} - -fn main() {} diff --git a/gcc/testsuite/rust.test/fail_compilation/shadow1.rs b/gcc/testsuite/rust.test/fail_compilation/shadow1.rs deleted file mode 100644 index 18c5c58..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/shadow1.rs +++ /dev/null @@ -1,6 +0,0 @@ -fn main() { - let mut x = 5; - let mut x; - x = true; - x = x + 2; -} diff --git a/gcc/testsuite/rust.test/fail_compilation/static_var1.rs b/gcc/testsuite/rust.test/fail_compilation/static_var1.rs deleted file mode 100644 index d94c8c1..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/static_var1.rs +++ /dev/null @@ -1,5 +0,0 @@ -static x = 3; - -fn main() { - let y = x +1; -} diff --git a/gcc/testsuite/rust.test/fail_compilation/struct_init1.rs b/gcc/testsuite/rust.test/fail_compilation/struct_init1.rs deleted file mode 100644 index 3eadaef..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/struct_init1.rs +++ /dev/null @@ -1,8 +0,0 @@ -struct Foo { - a: f32, - b: f32, -} - -fn main() { - let a = Foo { 0: 10.0, 1: 20.0 }; -} diff --git a/gcc/testsuite/rust.test/fail_compilation/tuple1.rs b/gcc/testsuite/rust.test/fail_compilation/tuple1.rs deleted file mode 100644 index d551365..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/tuple1.rs +++ /dev/null @@ -1,5 +0,0 @@ -fn main() { - let a: (i32, bool) = (123, 123); - let b; - b = (456, 5f32); -} diff --git a/gcc/testsuite/rust.test/fail_compilation/tuple_struct1.rs b/gcc/testsuite/rust.test/fail_compilation/tuple_struct1.rs deleted file mode 100644 index 0df07d9..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/tuple_struct1.rs +++ /dev/null @@ -1,8 +0,0 @@ -struct Foo { - one: i32, - two: i32, -} - -fn main() { - let a = Foo(1, 2); -} diff --git a/gcc/testsuite/rust.test/fail_compilation/tuple_struct2.rs b/gcc/testsuite/rust.test/fail_compilation/tuple_struct2.rs deleted file mode 100644 index 6c3c0ab..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/tuple_struct2.rs +++ /dev/null @@ -1,5 +0,0 @@ -struct Bar(i32, i32, bool); - -fn main() { - let a = Bar(1, 2); -} diff --git a/gcc/testsuite/rust.test/fail_compilation/tuple_struct3.rs b/gcc/testsuite/rust.test/fail_compilation/tuple_struct3.rs deleted file mode 100644 index 832df8b..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/tuple_struct3.rs +++ /dev/null @@ -1,5 +0,0 @@ -struct Foo(i32, i32, bool); - -fn main() { - let c = Foo(1, 2f32, true); -} diff --git a/gcc/testsuite/rust.test/fail_compilation/unary_negation.rs b/gcc/testsuite/rust.test/fail_compilation/unary_negation.rs deleted file mode 100644 index 476b908..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/unary_negation.rs +++ /dev/null @@ -1,8 +0,0 @@ -fn main() { - let a: i32 = -1; - let b: i32 = 3 - -1; - let c: bool = !false; - let d: i32 = !3; - - let e: f32 = -true; -} diff --git a/gcc/testsuite/rust.test/fail_compilation/unary_not.rs b/gcc/testsuite/rust.test/fail_compilation/unary_not.rs deleted file mode 100644 index f358f0e..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/unary_not.rs +++ /dev/null @@ -1,8 +0,0 @@ -fn main() { - let a: i32 = -1; - let b: i32 = 3 - -1; - let c: bool = !false; - let d: i32 = !3; - - let e: f32 = !5f32; -} diff --git a/gcc/testsuite/rust.test/fail_compilation/usize1.rs b/gcc/testsuite/rust.test/fail_compilation/usize1.rs deleted file mode 100644 index 92393e7..0000000 --- a/gcc/testsuite/rust.test/fail_compilation/usize1.rs +++ /dev/null @@ -1,5 +0,0 @@ -fn main() { - let a = [1, 2, 3]; - let b: u32 = 1; - let c = a[b]; -} diff --git a/gcc/testsuite/rust.test/rust-test.exp b/gcc/testsuite/rust.test/rust-test.exp deleted file mode 100644 index 20ebe25..0000000 --- a/gcc/testsuite/rust.test/rust-test.exp +++ /dev/null @@ -1,437 +0,0 @@ -# Copyright (C) 2012-2019 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GCC; see the file COPYING3. If not see -# <http://www.gnu.org/licenses/>. - -# Test using the DMD testsuite. -# Load support procs. -load_lib rust-dg.exp - -# -# Convert DMD arguments to RUST equivalent -# - -proc rust-convert-args { args } { - set out "" - - foreach arg [split [lindex $args 0] " "] { - # List of switches kept in ASCII collated order. - if [string match "-D" $arg] { - lappend out "-fdoc" - - } elseif { [regexp -- {^-I([\w+/-]+)} $arg pattern path] } { - lappend out "-I$path" - - } elseif { [regexp -- {^-J([\w+/-]+)} $arg pattern path] } { - lappend out "-J$path" - - } elseif [string match "-allinst" $arg] { - lappend out "-fall-instantiations" - - } elseif [string match "-betterC" $arg] { - lappend out "-fno-druntime" - - } elseif { [string match "-boundscheck" $arg] - || [string match "-boundscheck=on" $arg] } { - lappend out "-fbounds-check" - - } elseif { [string match "-boundscheck=off" $arg] - || [string match "-noboundscheck" $arg] } { - lappend out "-fno-bounds-check" - - } elseif [string match "-boundscheck=safeonly" $arg] { - lappend out "-fbounds-check=safeonly" - - } elseif [string match "-c" $arg] { - lappend out "-c" - - } elseif [string match "-d" $arg] { - lappend out "-Wno-deprecated" - - } elseif [string match "-de" $arg] { - lappend out "-Wdeprecated" - lappend out "-Werror" - - } elseif [string match "-debug" $arg] { - lappend out "-fdebug" - - } elseif [regexp -- {^-debug=(\w+)} $arg pattern value] { - lappend out "-fdebug=$value" - - } elseif [string match "-dip1000" $arg] { - lappend out "-ftransition=dip1000" - - } elseif [string match "-dip25" $arg] { - lappend out "-ftransition=dip25" - - } elseif [string match "-dw" $arg] { - lappend out "-Wdeprecated" - lappend out "-Wno-error" - - } elseif [string match "-fPIC" $arg] { - lappend out "-fPIC" - - } elseif { [string match "-g" $arg] - || [string match "-gc" $arg] } { - lappend out "-g" - - } elseif [string match "-inline" $arg] { - lappend out "-finline-functions" - - } elseif [string match "-main" $arg] { - lappend out "-fmain" - - } elseif [regexp -- {^-mv=([\w+=./-]+)} $arg pattern value] { - lappend out "-fmodule-file=$value" - - } elseif [string match "-O" $arg] { - lappend out "-O2" - - } elseif [string match "-release" $arg] { - lappend out "-frelease" - - } elseif [regexp -- {^-transition=(\w+)} $arg pattern value] { - lappend out "-ftransition=$value" - - } elseif [string match "-unittest" $arg] { - lappend out "-funittest" - - } elseif [string match "-verrors=spec" $arg] { - lappend out "-Wspeculative" - - } elseif [regexp -- {^-verrors=(\d+)} $arg pattern num] { - lappend out "-fmax-errors=$num" - - } elseif [regexp -- {^-version=(\w+)} $arg pattern value] { - lappend out "-fversion=$value" - - } elseif [string match "-vtls" $arg] { - lappend out "-ftransition=tls" - - } elseif [string match "-w" $arg] { - lappend out "-Wall" - lappend out "-Werror" - - } elseif [string match "-wi" $arg] { - lappend out "-Wall" - lappend out "-Wno-error" - - } else { - # print "Unhandled Argument: $arg" - } - } - - return $out -} - -proc rust-copy-extra { base extra } { - # Split base, folder/file. - set type [file dirname $extra] - - # print "Filename: $base - $extra" - - set fdin [open $base/$extra r] - fconfigure $fdin -encoding binary - - file mkdir $type - set fdout [open $extra w] - fconfigure $fdout -encoding binary - - while { [gets $fdin copy_line] >= 0 } { - set out_line $copy_line - puts $fdout $out_line - } - - close $fdin - close $fdout - - # Remove file once test is finished. - upvar 2 cleanup_extra_files cleanups - lappend cleanups $extra - - return $extra -} - -# -# Translate DMD test directives to dejagnu equivalent. -# -# COMPILE_SEPARATELY: Not handled. -# EXECUTE_ARGS: Parameters to add to the execution of the test. -# COMPILED_IMPORTS: List of modules files that are imported by the main -# source file that should be included in compilation. -# Currently handled the same as EXTRA_SOURCES. -# EXTRA_SOURCES: List of extra sources to build and link along with -# the test. -# EXTRA_FILES: List of extra files to copy for the test runs. -# PERMUTE_ARGS: The set of arguments to permute in multiple compiler -# invocations. An empty set means only one permutation -# with no arguments. -# TEST_OUTPUT: The output expected from the compilation. -# POST_SCRIPT: Not handled. -# REQUIRED_ARGS: Arguments to add to the compiler command line. -# DISABLED: Not handled. -# - -proc dmd2dg { base test } { - global DEFAULT_DFLAGS - global PERMUTE_ARGS - global RUST_EXECUTE_ARGS - - set PERMUTE_ARGS $DEFAULT_DFLAGS - set RUST_EXECUTE_ARGS "" - - set extra_sources "" - set extra_files "" - - # Split base, folder/file. - set type [file dirname $test] - set name [file tail $test] - - print "Filename: $base - $test" - - set fdin [open $base/$test r] - #fconfigure $fdin -encoding binary - - file mkdir $type - set fdout [open $test w] - #fconfigure $fdout -encoding binary - - while { [gets $fdin copy_line] >= 0 } { - set out_line $copy_line - - if [regexp -- {COMPILE_SEPARATELY} $copy_line] { - # COMPILE_SEPARATELY is not handled. - regsub -- {COMPILE_SEPARATELY.*$} $copy_line "" out_line - - } elseif [regexp -- {DISABLED} $copy_line] { - # DISABLED is not handled. - regsub -- {DISABLED.*$} $copy_line "" out_line - - } elseif [regexp -- {POST_SCRIPT} $copy_line] { - # POST_SCRIPT is not handled - regsub -- {POST_SCRIPT.*$} $copy_line "" out_line - - } elseif [regexp -- {PERMUTE_ARGS\s*:\s*(.*)} $copy_line match args] { - # PERMUTE_ARGS is handled by rust-do-test. - set PERMUTE_ARGS [rust-convert-args $args] - regsub -- {PERMUTE_ARGS.*$} $copy_line "" out_line - - } elseif [regexp -- {EXECUTE_ARGS\s*:\s*(.*)} $copy_line match args] { - # EXECUTE_ARGS is handled by rust_load. - foreach arg $args { - lappend RUST_EXECUTE_ARGS $arg - } - regsub -- {EXECUTE_ARGS.*$} $copy_line "" out_line - - } elseif [regexp -- {REQUIRED_ARGS\s*:\s*(.*)} $copy_line match args] { - # Convert all listed arguments to from dmd to rust-style. - set new_option "{ dg-additional-options \"[rust-convert-args $args]\" }" - regsub -- {REQUIRED_ARGS.*$} $copy_line $new_option out_line - - } elseif [regexp -- {EXTRA_SOURCES\s*:\s*(.*)} $copy_line match sources] { - # EXTRA_SOURCES are appended to extra_sources list - foreach srcfile $sources { - lappend extra_sources $srcfile - } - regsub -- {EXTRA_SOURCES.*$} $copy_line "" out_line - - } elseif [regexp -- {EXTRA_CPP_SOURCES\s*:\s*(.*)} $copy_line match sources] { - # EXTRA_CPP_SOURCES are appended to extra_sources list - foreach srcfile $sources { - # C++ sources are found in the extra-files directory. - lappend extra_sources "extra-files/$srcfile" - } - regsub -- {EXTRA_CPP_SOURCES.*$} $copy_line "" out_line - - } elseif [regexp -- {EXTRA_FILES\s*:\s*(.*)} $copy_line match files] { - # EXTRA_FILES are appended to extra_files list - foreach file $files { - lappend extra_files $file - } - regsub -- {EXTRA_FILES.*$} $copy_line "" out_line - - } elseif [regexp -- {COMPILED_IMPORTS\s*:\s*(.*)} $copy_line match sources] { - # COMPILED_IMPORTS are appended to extra_sources list - foreach import $sources { - lappend extra_sources $import - } - regsub -- {COMPILED_IMPORTS.*$} $copy_line "" out_line - - } - - puts $fdout $out_line - } - - # Now that all extra sources and files have been collected, copy them all - # to the testsuite build directory. - if { [llength $extra_sources] > 0 } { - foreach srcfile $extra_sources { - rust-copy-extra $base "$type/$srcfile" - } - set out_line "// { dg-additional-sources \"$extra_sources\" }" - puts $fdout $out_line - } - - if { [llength $extra_files] > 0 } { - foreach file $extra_files { - rust-copy-extra $base "$type/$file" - } - set out_line "// { dg-additional-files \"$extra_files\" }" - puts $fdout $out_line - } - - # Add specific options for test type - - # DMD's testsuite is extremely verbose, compiler messages from constructs - # such as pragma(msg, ...) would otherwise cause tests to fail. - set out_line "// { dg-prune-output .* }" - puts $fdout $out_line - - # Compilable files are successful if an output is generated. - # Fail compilable are successful if an output is not generated. - # Runnable must compile, link, and return 0 to be successful by default. - switch $type { - runnable { - if ![isnative] { - set out_line "// { dg-final { output-exists } }" - puts $fdout $out_line - } - } - - compilable { - puts $fdout "// { dg-final { output-exists } }" - } - - fail_compilation { - puts $fdout "// { dg-do compile }" - puts $fdout "// { dg-final { output-exists-not } }" - } - } - - close $fdin - close $fdout - - return $test -} - - -proc rust-permute-options { options } { - set result { } - set n [expr 1<<[llength $options]] - for { set i 0 } { $i<$n } { incr i } { - set option "" - for { set j 0 } { $j<[llength $options] } { incr j } { - if [expr $i & 1 << $j] { - append option [lindex $options $j] - append option " " - } - } - lappend result $option - - } - return $result -} - - -proc rust-do-test { } { - global srcdir subdir - global dg-do-what-default - global verbose - - # If a testcase doesn't have special options, use these. - global DEFAULT_DFLAGS - if ![info exists DEFAULT_DFLAGS] then { - set DEFAULT_DFLAGS "-g -O2" - } - - # These are special options to use on testcase, and override DEFAULT_DFLAGS - global PERMUTE_ARGS - - # Set if an extra option should be passed to link to shared druntime. - global SHARED_OPTION - - # Additional arguments for rust_load - global RUST_EXECUTE_ARGS - - # Initialize `dg'. - dg-init - - # Allow blank linkes in output for all of rust.test. - global allow_blank_lines - set save_allow_blank_lines $allow_blank_lines - if { !$allow_blank_lines } { - set allow_blank_lines 2 - } - - # Create rust.test link so test names include that subdir. - catch { file link $subdir . } - - # Main loop. - - # set verbose 1 - # set dg-final-code "" - # Find all tests and pass to routine. - foreach test [lsort [find $srcdir/$subdir *]] { - regexp -- "(.*)/(.+)/(.+)\.rs$" $test match base dir name ext - set ext "rs" - - # Skip invalid test extensions - if { [lsearch "rs" $ext] == -1 } { - continue - } - - # Convert to DG test. - set imports [format "-I%s/%s" $base $dir] - set cleanup_extra_files "" - # Include $subdir prefix so test names follow DejaGnu conventions. - set filename "$subdir/[dmd2dg $base $dir/$name.$ext]" - - if { $dir == "runnable" } { - append PERMUTE_ARGS " $SHARED_OPTION" - } - set options [rust-permute-options [lsort -unique $PERMUTE_ARGS]] - - switch $dir { - compilable { - for { set i 0 } { $i<[llength $options] } { incr i } { - set flags [lindex $options $i] - set dg-do-what-default "compile" - rust-dg-runtest $filename $flags $imports - } - } - - fail_compilation { - for { set i 0 } { $i<[llength $options] } { incr i } { - set flags [lindex $options $i] - set dg-do-what-default "compile" - rust-dg-runtest $filename $flags $imports - } - } - } - - # Cleanup test directory. - foreach srcfile $cleanup_extra_files { - file delete $subdir/$srcfile - } - file delete $filename - } - - set allow_blank_lines $save_allow_blank_lines - - # All done. - dg-finish -} - -rust-do-test - diff --git a/gcc/testsuite/rust.test/xfail_compile/arrays1.rs b/gcc/testsuite/rust.test/xfail_compile/arrays1.rs new file mode 100644 index 0000000..ee844a6 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/arrays1.rs @@ -0,0 +1,5 @@ +fn main() { + let xs: [i32; 5] = [1, 2, 3, 4, 5]; + let a: bool = xs[0]; // { dg-error "expected .bool. got .i32." } + // { dg-error "failure in setting up let stmt type" "" { target { *-*-* } } .-1 } +} diff --git a/gcc/testsuite/rust.test/xfail_compile/arrays2.rs b/gcc/testsuite/rust.test/xfail_compile/arrays2.rs new file mode 100644 index 0000000..69d362d --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/arrays2.rs @@ -0,0 +1,5 @@ +fn main() { + let array: [i32; 5] = [1, 2, 3]; // { dg-error "mismatch in array capacity" } + // { dg-error "expected ..i32:5.. got ..i32:3.." "" { target { *-*-* } } .-1 } + // { dg-error "failure in setting up let stmt type" "" { target { *-*-* } } .-2 } +} diff --git a/gcc/testsuite/rust.test/xfail_compile/bad_type1.rs b/gcc/testsuite/rust.test/xfail_compile/bad_type1.rs new file mode 100644 index 0000000..336661e --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/bad_type1.rs @@ -0,0 +1,4 @@ +fn main() { + let logical: bool = 123; // { dg-error "expected .bool. got .<integer>." } + // { dg-error "failure in setting up let stmt type" "" { target { *-*-* } } .-1 } +} diff --git a/gcc/testsuite/rust.test/fail_compilation/bad_type2.rs b/gcc/testsuite/rust.test/xfail_compile/bad_type2.rs index f1e17ed..b596189 100644 --- a/gcc/testsuite/rust.test/fail_compilation/bad_type2.rs +++ b/gcc/testsuite/rust.test/xfail_compile/bad_type2.rs @@ -8,7 +8,8 @@ fn main() { let mut x; x = 1; - x = true; + x = true; // { dg-error "expected .<integer>. got .bool." } + // { dg-error "type resolution failure in AssignmentExpr" "" { target { *-*-* } } .-1 } let call_test = test(1); } diff --git a/gcc/testsuite/rust.test/xfail_compile/break1.rs b/gcc/testsuite/rust.test/xfail_compile/break1.rs new file mode 100644 index 0000000..be3c9e8 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/break1.rs @@ -0,0 +1,7 @@ +// { dg-excess-errors "Noisy error and debug" } +fn main() { // { dg-error "expected .... got .<tyty::error>." } + let a; + a = 1; + break a; // { dg-error "cannot `break` outside of a loop" + // { dg-error "failed to type resolve expression" "" { target { *-*-* } } .-1 } +} diff --git a/gcc/testsuite/rust.test/xfail_compile/break2.rs b/gcc/testsuite/rust.test/xfail_compile/break2.rs new file mode 100644 index 0000000..da7fa77 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/break2.rs @@ -0,0 +1,16 @@ +// { dg-excess-errors "Noisy error and debug" } +fn main() { + let mut a = 1; + let mut b = 1; + + let mut c; + while b > 10 { + if (b == 2) { + break b; // { dg-error "can only break with a value inside `loop`" + // { dg-error "failed to type resolve expression" "" { target { *-*-* } } .-1 } + } + c = a + b; + a = b; + b = c; + } +} diff --git a/gcc/testsuite/rust.test/xfail_compile/continue1.rs b/gcc/testsuite/rust.test/xfail_compile/continue1.rs new file mode 100644 index 0000000..de48ef2 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/continue1.rs @@ -0,0 +1,11 @@ +// { dg-excess-errors "Noisy error and debug" } +fn main() { + let mut a = 1; + let mut b = 1; + + let _fib = { + continue; // { dg-error "cannot `continue` outside of a loop" } + // { dg-error "failed to type resolve expression" "" { target { *-*-* } } .-1 } + 123 + }; +} diff --git a/gcc/testsuite/rust.test/xfail_compile/func1.rs b/gcc/testsuite/rust.test/xfail_compile/func1.rs new file mode 100644 index 0000000..7c1ce52 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/func1.rs @@ -0,0 +1,9 @@ +fn test(x: i32) -> bool { // { dg-error "expected .bool. got .<tyty::error>.." } + return x + 1; // { dg-error "expected .bool. got .i32." } +} + +fn main() { + let an_integer = 5; + + let call_test = test(1); +} diff --git a/gcc/testsuite/rust.test/xfail_compile/func2.rs b/gcc/testsuite/rust.test/xfail_compile/func2.rs new file mode 100644 index 0000000..1a8a30b --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/func2.rs @@ -0,0 +1,10 @@ +// { dg-excess-errors "Noisy error and debug" } +fn test(a: i32, b: i32) -> i32 { + a + b +} + +fn main() { + let a = test(1); // { dg-error "unexpected number of arguments 1 expected 2" + // { dg-error "failed to lookup type to CallExpr" "" { target { *-*-* } } .-1 } + // { dg-error "failed to type resolve expression" "" { target { *-*-* } } .-2 } +} diff --git a/gcc/testsuite/rust.test/xfail_compile/func3.rs b/gcc/testsuite/rust.test/xfail_compile/func3.rs new file mode 100644 index 0000000..6cedf8e --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/func3.rs @@ -0,0 +1,7 @@ +fn test(a: i32, b: i32) -> i32 { + a + b +} + +fn main() { + let a = test(1, true); // { dg-error "expected .i32. got .bool." } +} diff --git a/gcc/testsuite/rust.test/xfail_compile/generics1.rs b/gcc/testsuite/rust.test/xfail_compile/generics1.rs new file mode 100644 index 0000000..7f2493d --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/generics1.rs @@ -0,0 +1,11 @@ +// { dg-error "expected .i32. got .i8." "" { target { *-*-* } } 0 } + +struct GenericStruct<T>(T, usize); + +fn main() { + let a2: GenericStruct<i8>; + a2 = GenericStruct::<_>(1, 456); + + let b2: i32 = a2.0; // { dg-error "failure in setting up let stmt type" } + let c2: usize = a2.1; +} diff --git a/gcc/testsuite/rust.test/xfail_compile/generics2.rs b/gcc/testsuite/rust.test/xfail_compile/generics2.rs new file mode 100644 index 0000000..d7a1b50 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/generics2.rs @@ -0,0 +1,11 @@ +// { dg-error "expected .i32. got .i8." "" { target { *-*-* } } 0 } + +struct GenericStruct<T>(T, usize); + +fn main() { + let a2: GenericStruct<i8>; + a2 = GenericStruct(1, 456); + + let b2: i32 = a2.0; // { dg-error "failure in setting up let stmt type" } + let c2: usize = a2.1; +} diff --git a/gcc/testsuite/rust.test/xfail_compile/generics3.rs b/gcc/testsuite/rust.test/xfail_compile/generics3.rs new file mode 100644 index 0000000..14bcc59 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/generics3.rs @@ -0,0 +1,10 @@ +// { dg-error "expected .i32. got .i8." "" { target { *-*-* } } 0 } +struct GenericStruct<T>(T, usize); + +fn main() { + let a2; + a2 = GenericStruct::<i8>(1, 456); + + let b2: i32 = a2.0; // { dg-error "failure in setting up let stmt type" } + let c2: usize = a2.1; +} diff --git a/gcc/testsuite/rust.test/fail_compilation/generics4.rs b/gcc/testsuite/rust.test/xfail_compile/generics4.rs index 2052ce6..8097832 100644 --- a/gcc/testsuite/rust.test/fail_compilation/generics4.rs +++ b/gcc/testsuite/rust.test/xfail_compile/generics4.rs @@ -1,3 +1,4 @@ +// { dg-excess-errors "Noisy error and debug" } struct GenericStruct<T>(T, usize); fn main() { diff --git a/gcc/testsuite/rust.test/xfail_compile/generics5.rs b/gcc/testsuite/rust.test/xfail_compile/generics5.rs new file mode 100644 index 0000000..5b03bd9 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/generics5.rs @@ -0,0 +1,13 @@ +// Current errors are too noisy to match specific ones. +// { dg-error "failed to resolve TypePath: T" "" { target { *-*-* } } 0 } +// { dg-error "unresolved type" "" { target { *-*-* } } 0 } + +struct GenericStruct<T>(T, usize); + +fn main() { + let a2; + a2 = GenericStruct::<i8, T>(1, 456); + + let b2: i32 = a2.0; + let c2: usize = a2.1; +} diff --git a/gcc/testsuite/rust.test/xfail_compile/immutable1.rs b/gcc/testsuite/rust.test/xfail_compile/immutable1.rs new file mode 100644 index 0000000..d78c1b7 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/immutable1.rs @@ -0,0 +1,5 @@ +static x: i32 = 3; + +fn main() { + x = 1; /* { dg-error "cannot assign to immutable" } */ +} diff --git a/gcc/testsuite/rust.test/xfail_compile/immutable2.rs b/gcc/testsuite/rust.test/xfail_compile/immutable2.rs new file mode 100644 index 0000000..86e70fe --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/immutable2.rs @@ -0,0 +1,5 @@ +const TEST_CONST: i32 = 10; + +fn main() { + TEST_CONST = 1; // { dg-error "cannot assign to immutable" } +} diff --git a/gcc/testsuite/rust.test/xfail_compile/immutable3.rs b/gcc/testsuite/rust.test/xfail_compile/immutable3.rs new file mode 100644 index 0000000..fb60280 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/immutable3.rs @@ -0,0 +1,4 @@ +fn main() { + let a = 1; + a += 2; // { dg-error "cannot assign to immutable" } +} diff --git a/gcc/testsuite/rust.test/xfail_compile/immutable4.rs b/gcc/testsuite/rust.test/xfail_compile/immutable4.rs new file mode 100644 index 0000000..fb14554 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/immutable4.rs @@ -0,0 +1,4 @@ +fn main() { + let array: [i32; 3] = [0; 3]; + array[0] = 1; // { dg-error "cannot assign to immutable" } +} diff --git a/gcc/testsuite/rust.test/fail_compilation/immutable5.rs b/gcc/testsuite/rust.test/xfail_compile/immutable5.rs index c442ba5..db23609 100644 --- a/gcc/testsuite/rust.test/fail_compilation/immutable5.rs +++ b/gcc/testsuite/rust.test/xfail_compile/immutable5.rs @@ -2,5 +2,5 @@ struct Foo(f32, i32); fn main() { let a = Foo(1, 2); - a.0 = 22; + a.0 = 22; // { dg-error "cannot assign to immutable" } } diff --git a/gcc/testsuite/rust.test/fail_compilation/implicit_returns_err1.rs b/gcc/testsuite/rust.test/xfail_compile/implicit_returns_err1.rs index b450e18..37eb562 100644 --- a/gcc/testsuite/rust.test/fail_compilation/implicit_returns_err1.rs +++ b/gcc/testsuite/rust.test/xfail_compile/implicit_returns_err1.rs @@ -1,3 +1,5 @@ +// { dg-error "expected .* got .*" "" { target { *-*-* } } 0 } + fn test(x: i32) -> i32 { if x > 1 { 1 diff --git a/gcc/testsuite/rust.test/fail_compilation/implicit_returns_err2.rs b/gcc/testsuite/rust.test/xfail_compile/implicit_returns_err2.rs index b5fbd0a..3b9a402 100644 --- a/gcc/testsuite/rust.test/fail_compilation/implicit_returns_err2.rs +++ b/gcc/testsuite/rust.test/xfail_compile/implicit_returns_err2.rs @@ -1,3 +1,5 @@ +// { dg-error "expected .* got .*" "" { target { *-*-* } } 0 } + fn test(x: i32) -> i32 { return 1; true diff --git a/gcc/testsuite/rust.test/fail_compilation/implicit_returns_err3.rs b/gcc/testsuite/rust.test/xfail_compile/implicit_returns_err3.rs index a83385e..2a64fcf 100644 --- a/gcc/testsuite/rust.test/fail_compilation/implicit_returns_err3.rs +++ b/gcc/testsuite/rust.test/xfail_compile/implicit_returns_err3.rs @@ -1,3 +1,4 @@ +// { dg-error "expected .* got .*" "" { target { *-*-* } } 0 } fn test(x: i32) -> i32 { if x > 1 { 1 diff --git a/gcc/testsuite/rust.test/xfail_compile/missing_return1.rs b/gcc/testsuite/rust.test/xfail_compile/missing_return1.rs new file mode 100644 index 0000000..d4ed4d9 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/missing_return1.rs @@ -0,0 +1,6 @@ +// { dg-error "expected .* got .*" "" { target { *-*-* } } 0 } +fn test1() -> i32 {} + +fn main() { + let call1 = test1(); +} diff --git a/gcc/testsuite/rust.test/xfail_compile/redef_error1.rs b/gcc/testsuite/rust.test/xfail_compile/redef_error1.rs new file mode 100644 index 0000000..cc25b76 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/redef_error1.rs @@ -0,0 +1,9 @@ +// { dg-excess-errors "Noisy error and debug" } +struct S1 { // { dg-error "was defined here" } + x: f64, + y: f64, +} + +struct S1(i32, bool); // { dg-error "redefined multiple times" } + +fn main() {} diff --git a/gcc/testsuite/rust.test/xfail_compile/redef_error2.rs b/gcc/testsuite/rust.test/xfail_compile/redef_error2.rs new file mode 100644 index 0000000..3e7e62f --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/redef_error2.rs @@ -0,0 +1,5 @@ +// { dg-excess-errors "Noisy error and debug" } +const TEST: i32 = 2; // { dg-error "was defined here" } +const TEST: f32 = 3.0; // { dg-error "redefined multiple times" } + +fn main() {} diff --git a/gcc/testsuite/rust.test/xfail_compile/redef_error3.rs b/gcc/testsuite/rust.test/xfail_compile/redef_error3.rs new file mode 100644 index 0000000..6be31e6 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/redef_error3.rs @@ -0,0 +1,10 @@ +// { dg-excess-errors "Noisy error and debug" } +fn test() -> bool { // { dg-error "was defined here" } + true +} + +fn test() -> i32 { // { dg-error "redefined multiple times" } + 123 +} + +fn main() {} diff --git a/gcc/testsuite/rust.test/fail_compilation/redef_error4.rs b/gcc/testsuite/rust.test/xfail_compile/redef_error4.rs index 5b20e1b..21f3415 100644 --- a/gcc/testsuite/rust.test/fail_compilation/redef_error4.rs +++ b/gcc/testsuite/rust.test/xfail_compile/redef_error4.rs @@ -1,3 +1,5 @@ +// { dg-excess-errors "Noisy error and debug" } + struct Foo(i32, bool); impl Foo { @@ -5,11 +7,11 @@ impl Foo { Foo(a, b) } - fn test() -> i32 { + fn test() -> i32 { // { dg-error "was defined here" } test() } - fn test() -> bool { + fn test() -> bool { // { dg-error "redefined multiple times" } true } } diff --git a/gcc/testsuite/rust.test/xfail_compile/redef_error5.rs b/gcc/testsuite/rust.test/xfail_compile/redef_error5.rs new file mode 100644 index 0000000..4b3c7af --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/redef_error5.rs @@ -0,0 +1,9 @@ +// { dg-excess-errors "Noisy error and debug" } +struct Foo(i32, bool); + +impl Foo { + const TEST: i32 = 123; // { dg-error "was defined here" } + const TEST: bool = false; // { dg-error "redefined multiple times" } +} + +fn main() {} diff --git a/gcc/testsuite/rust.test/xfail_compile/shadow1.rs b/gcc/testsuite/rust.test/xfail_compile/shadow1.rs new file mode 100644 index 0000000..35779bb --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/shadow1.rs @@ -0,0 +1,7 @@ +// { dg-excess-errors "Noisy error and debug" } +fn main() { + let mut x = 5; + let mut x; + x = true; + x = x + 2; // { dg-error "cannot apply this operator to types bool and <integer>" } +} diff --git a/gcc/testsuite/rust.test/xfail_compile/static_var1.rs b/gcc/testsuite/rust.test/xfail_compile/static_var1.rs new file mode 100644 index 0000000..b3b5751 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/static_var1.rs @@ -0,0 +1,5 @@ +static x = 3; // { dg-error "expecting ':' but '=' found" } + +fn main() {// { dg-error "failed to parse item in crate" } + let y = x +1; +} diff --git a/gcc/testsuite/rust.test/xfail_compile/struct_init1.rs b/gcc/testsuite/rust.test/xfail_compile/struct_init1.rs new file mode 100644 index 0000000..87ed443 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/struct_init1.rs @@ -0,0 +1,9 @@ +struct Foo { + a: f32, + b: f32, +} + +fn main() { + let a = Foo { 0: 10.0, 1: 20.0 }; // { dg-error "failed to resolve type for field" } + // { dg-error "unknown field" "" { target { *-*-* } } .-1 } +} diff --git a/gcc/testsuite/rust.test/xfail_compile/tuple1.rs b/gcc/testsuite/rust.test/xfail_compile/tuple1.rs new file mode 100644 index 0000000..84179b1 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/tuple1.rs @@ -0,0 +1,5 @@ +fn main() { + let a: (i32, bool) = (123, 123); // { dg-error "expected .bool. got .<integer>." } + let b; + b = (456, 5f32); +} diff --git a/gcc/testsuite/rust.test/xfail_compile/tuple_struct1.rs b/gcc/testsuite/rust.test/xfail_compile/tuple_struct1.rs new file mode 100644 index 0000000..5e45c1f --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/tuple_struct1.rs @@ -0,0 +1,10 @@ +struct Foo { + one: i32, + two: i32, +} + +fn main() { + let a = Foo(1, 2); // { dg-error "expected function, tuple struct or tuple variant, found struct `Foo`" } + // { dg-error "failed to lookup type to CallExpr" "" { target { *-*-* } } .-1 } + // { dg-error "failed to type resolve expression" "" { target { *-*-* } } .-2 } +} diff --git a/gcc/testsuite/rust.test/xfail_compile/tuple_struct2.rs b/gcc/testsuite/rust.test/xfail_compile/tuple_struct2.rs new file mode 100644 index 0000000..8e2f74b --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/tuple_struct2.rs @@ -0,0 +1,7 @@ +struct Bar(i32, i32, bool); + +fn main() { + let a = Bar(1, 2); // { dg-error "unexpected number of arguments 2 expected 3" } + // { dg-error "failed to lookup type to CallExpr" "" { target { *-*-* } } .-1 } + // { dg-error "failed to type resolve expression" "" { target { *-*-* } } .-2 } +} diff --git a/gcc/testsuite/rust.test/xfail_compile/tuple_struct3.rs b/gcc/testsuite/rust.test/xfail_compile/tuple_struct3.rs new file mode 100644 index 0000000..c52a610 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/tuple_struct3.rs @@ -0,0 +1,5 @@ +struct Foo(i32, i32, bool); + +fn main() { + let c = Foo(1, 2f32, true); // { dg-error "expected .i32. got .f32." } +} diff --git a/gcc/testsuite/rust.test/xfail_compile/unary_negation.rs b/gcc/testsuite/rust.test/xfail_compile/unary_negation.rs new file mode 100644 index 0000000..1acb853 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/unary_negation.rs @@ -0,0 +1,10 @@ +// { dg-excess-errors "Noisy error and debug" } + +fn main() { + let a: i32 = -1; + let b: i32 = 3 - -1; + let c: bool = !false; + let d: i32 = !3; + + let e: f32 = -true; // // { dg-error "cannot apply unary - to bool" } +} diff --git a/gcc/testsuite/rust.test/xfail_compile/unary_not.rs b/gcc/testsuite/rust.test/xfail_compile/unary_not.rs new file mode 100644 index 0000000..1620b40 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/unary_not.rs @@ -0,0 +1,9 @@ +// { dg-excess-errors "Noisy error and debug" } +fn main() { + let a: i32 = -1; + let b: i32 = 3 - -1; + let c: bool = !false; + let d: i32 = !3; + + let e: f32 = !5f32; // { dg-error "cannot apply unary ! to f32" } +} diff --git a/gcc/testsuite/rust.test/xfail_compile/usize1.rs b/gcc/testsuite/rust.test/xfail_compile/usize1.rs new file mode 100644 index 0000000..8c12789 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/usize1.rs @@ -0,0 +1,5 @@ +fn main() { + let a = [1, 2, 3]; + let b: u32 = 1; + let c = a[b]; // { dg-error "expected .usize. got .u32." } +} diff --git a/gcc/testsuite/rust.test/xfail_compile/xfail_compile.exp b/gcc/testsuite/rust.test/xfail_compile/xfail_compile.exp new file mode 100644 index 0000000..68453a1 --- /dev/null +++ b/gcc/testsuite/rust.test/xfail_compile/xfail_compile.exp @@ -0,0 +1,36 @@ +# Copyright (C) 2021 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# <http://www.gnu.org/licenses/>. + +# +# Rust test suite. +# These tests are expected to raise an error in the frontend +# + +# Load support procs. +load_lib rust-dg.exp + +# Initialize `dg'. +dg-init + +# Main loop. +set saved-dg-do-what-default ${dg-do-what-default} + +set dg-do-what-default "compile" +dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.rs]] "" "-w" +set dg-do-what-default ${saved-dg-do-what-default} + +# All done. +dg-finish |