diff options
6 files changed, 39 insertions, 25 deletions
diff --git a/gcc/testsuite/rust.test/compilable/type_infer2.rs b/gcc/testsuite/rust.test/compilable/type_infer2.rs new file mode 100644 index 0000000..614c67d --- /dev/null +++ b/gcc/testsuite/rust.test/compilable/type_infer2.rs @@ -0,0 +1,8 @@ +fn test(x: i32) -> i32 { + return x + 1; +} + +fn main() { + let an_integer = 5; + let call_test = test(an_integer + 1); +} diff --git a/gcc/testsuite/rust.test/fail_compilation/arrays1.rs b/gcc/testsuite/rust.test/fail_compilation/arrays1.rs new file mode 100644 index 0000000..797f1ca --- /dev/null +++ b/gcc/testsuite/rust.test/fail_compilation/arrays1.rs @@ -0,0 +1,4 @@ +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 new file mode 100644 index 0000000..9ecf322 --- /dev/null +++ b/gcc/testsuite/rust.test/fail_compilation/arrays2.rs @@ -0,0 +1,3 @@ +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 new file mode 100644 index 0000000..83e16f3 --- /dev/null +++ b/gcc/testsuite/rust.test/fail_compilation/bad_type1.rs @@ -0,0 +1,3 @@ +fn main() { + let logical: bool = 123; +} diff --git a/gcc/testsuite/rust.test/fail_compilation/func1.rs b/gcc/testsuite/rust.test/fail_compilation/func1.rs new file mode 100644 index 0000000..5578c27 --- /dev/null +++ b/gcc/testsuite/rust.test/fail_compilation/func1.rs @@ -0,0 +1,9 @@ +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/rust-test.exp b/gcc/testsuite/rust.test/rust-test.exp index fca3f16..cc32454 100644 --- a/gcc/testsuite/rust.test/rust-test.exp +++ b/gcc/testsuite/rust.test/rust-test.exp @@ -310,23 +310,11 @@ proc dmd2dg { base test } { } compilable { - set out_line "// { dg-final { output-exists } }" - puts $fdout $out_line - - # Check that Ddoc tests also generate a html file. - if [regexp -- "ddoc.*" $name] { - set ddocfile "[file rootname $name].html" - set out_line "// { dg-final { scan-file $ddocfile \"Generated by Ddoc from $test\" } }" - puts $fdout $out_line - # Cleanup extra generated files. - set out_line "// { dg-final { file delete $ddocfile } }" - puts $fdout $out_line - } + puts $fdout "// { dg-final { output-exists } }" } fail_compilation { - set out_line "// { dg-final { output-exists-not } }" - puts $fdout $out_line + puts $fdout "// { dg-do run { xfail *-*-* } }" } } @@ -336,6 +324,7 @@ proc dmd2dg { base test } { return $test } + proc rust-permute-options { options } { set result { } set n [expr 1<<[llength $options]] @@ -395,11 +384,6 @@ proc rust-do-test { } { foreach test [lsort [find $srcdir/$subdir *]] { regexp -- "(.*)/(.+)/(.+)\.rs$" $test match base dir name ext set ext "rs" - - # Skip invalid test directory - if { [lsearch "compilable" $dir] == -1 } { - continue - } # Skip invalid test extensions if { [lsearch "rs" $ext] == -1 } { @@ -421,12 +405,15 @@ proc rust-do-test { } { compilable { for { set i 0 } { $i<[llength $options] } { incr i } { set flags [lindex $options $i] - # Compilable test may require checking another kind of output file. - if [regexp -- "ddoc.*" $name] { - set dg-do-what-default "compile" - } else { - set dg-do-what-default "assemble" - } + 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 } } |