1- use std:: process:: Command ;
2-
31fn main ( ) {
42 use std:: env;
53 let opt_level = env:: var ( "OPT_LEVEL" )
@@ -12,88 +10,11 @@ fn main() {
1210 }
1311
1412 do_cc ( ) ;
15- test_ctest_c ( ) ;
16- test_ctest_cpp ( ) ;
17- test_ctest_next ( ) ;
18- }
19-
20- fn test_ctest_c ( ) {
21- ctest:: TestGenerator :: new ( )
22- . header ( "t1.h" )
23- . include ( "src" )
24- . fn_cname ( |a, b| b. unwrap_or ( a) . to_string ( ) )
25- . type_name ( move |ty, is_struct, is_union| match ty {
26- "T1Union" => ty. to_string ( ) ,
27- "Transparent" => ty. to_string ( ) ,
28- t if is_struct => format ! ( "struct {t}" ) ,
29- t if is_union => format ! ( "union {t}" ) ,
30- t => t. to_string ( ) ,
31- } )
32- . volatile_item ( t1_volatile)
33- . array_arg ( t1_arrays)
34- . skip_roundtrip ( |n| n == "Arr" )
35- . skip_const ( |name| name == "T1S" )
36- . generate ( "src/t1.rs" , "t1gen.rs" ) ;
37-
38- ctest:: TestGenerator :: new ( )
39- . header ( "t2.h" )
40- . include ( "src" )
41- . skip_const ( |name| name == "T2S" )
42- . type_name ( move |ty, is_struct, is_union| match ty {
43- "T2Union" => ty. to_string ( ) ,
44- t if is_struct => format ! ( "struct {t}" ) ,
45- t if is_union => format ! ( "union {t}" ) ,
46- t => t. to_string ( ) ,
47- } )
48- . skip_roundtrip ( |_| true )
49- . generate ( "src/t2.rs" , "t2gen.rs" ) ;
50- }
51-
52- fn test_ctest_cpp ( ) {
53- println ! ( "cargo::rustc-check-cfg=cfg(has_cxx)" ) ;
54- if !cfg ! ( unix) || Command :: new ( "c++" ) . arg ( "v" ) . output ( ) . is_ok ( ) {
55- // A C compiler is always available, but these are only run if a C++ compiler is
56- // also available.
57- println ! ( "cargo::rustc-cfg=has_cxx" ) ;
58-
59- ctest:: TestGenerator :: new ( )
60- . header ( "t1.h" )
61- . language ( ctest:: Lang :: CXX )
62- . include ( "src" )
63- . fn_cname ( |a, b| b. unwrap_or ( a) . to_string ( ) )
64- . type_name ( move |ty, is_struct, is_union| match ty {
65- "T1Union" => ty. to_string ( ) ,
66- "Transparent" => ty. to_string ( ) ,
67- t if is_struct => format ! ( "struct {t}" ) ,
68- t if is_union => format ! ( "union {t}" ) ,
69- t => t. to_string ( ) ,
70- } )
71- . skip_const ( |name| name == "T1S" )
72- . volatile_item ( t1_volatile)
73- . array_arg ( t1_arrays)
74- . skip_roundtrip ( |n| n == "Arr" )
75- . generate ( "src/t1.rs" , "t1gen_cxx.rs" ) ;
76-
77- ctest:: TestGenerator :: new ( )
78- . header ( "t2.h" )
79- . language ( ctest:: Lang :: CXX )
80- . include ( "src" )
81- . skip_const ( |name| name == "T2S" )
82- . type_name ( move |ty, is_struct, is_union| match ty {
83- "T2Union" => ty. to_string ( ) ,
84- t if is_struct => format ! ( "struct {t}" ) ,
85- t if is_union => format ! ( "union {t}" ) ,
86- t => t. to_string ( ) ,
87- } )
88- . skip_roundtrip ( |_| true )
89- . generate ( "src/t2.rs" , "t2gen_cxx.rs" ) ;
90- } else {
91- println ! ( "cargo::warning=skipping C++ tests" ) ;
92- }
13+ test_ctest ( ) ;
9314}
9415
95- fn test_ctest_next ( ) {
96- let mut t1gen = ctest_next :: TestGenerator :: new ( ) ;
16+ fn test_ctest ( ) {
17+ let mut t1gen = ctest :: TestGenerator :: new ( ) ;
9718 t1gen
9819 . header ( "t1.h" )
9920 . include ( "src" )
@@ -112,17 +33,17 @@ fn test_ctest_next() {
11233 // The parameter `a` of the functions `T1r`, `T1s`, `T1t`, `T1v` is an array.
11334 . array_arg ( |f, p| matches ! ( f. ident( ) , "T1r" | "T1s" | "T1t" | "T1v" ) && p. ident ( ) == "a" )
11435 . skip_roundtrip ( |n| n == "Arr" ) ;
115- ctest_next :: generate_test ( & mut t1gen, "src/t1.rs" , "t1nextgen .rs" ) . unwrap ( ) ;
36+ ctest :: generate_test ( & mut t1gen, "src/t1.rs" , "t1gen .rs" ) . unwrap ( ) ;
11637
117- let mut t2gen = ctest_next :: TestGenerator :: new ( ) ;
38+ let mut t2gen = ctest :: TestGenerator :: new ( ) ;
11839 t2gen
11940 . header ( "t2.h" )
12041 . include ( "src" )
12142 // public C typedefs have to manually be specified because they are identical to normal
12243 // structs on the Rust side.
12344 . rename_union_ty ( |ty| ( ty == "T2Union" ) . then_some ( ty. to_string ( ) ) )
12445 . skip_roundtrip ( |_| true ) ;
125- ctest_next :: generate_test ( & mut t2gen, "src/t2.rs" , "t2nextgen .rs" ) . unwrap ( ) ;
46+ ctest :: generate_test ( & mut t2gen, "src/t2.rs" , "t2gen .rs" ) . unwrap ( ) ;
12647}
12748
12849fn do_cc ( ) {
@@ -140,20 +61,3 @@ fn do_cc() {
14061 println ! ( "cargo:rerun-if-changed=src/t2.c" ) ;
14162 println ! ( "cargo:rerun-if-changed=src/t2.h" ) ;
14263}
143-
144- fn t1_volatile ( i : ctest:: VolatileItemKind ) -> bool {
145- use ctest:: VolatileItemKind :: * ;
146- match i {
147- StructField ( ref n, ref f) if n == "V" && f == "v" => true ,
148- Static ( ref n) if n == "vol_ptr" => true ,
149- FunctionArg ( ref n, 0 ) if n == "T1_vol0" => true ,
150- FunctionArg ( ref n, 1 ) if n == "T1_vol2" => true ,
151- FunctionRet ( ref n) if n == "T1_vol1" || n == "T1_vol2" => true ,
152- Static ( ref n) if n == "T1_fn_ptr_vol" => true ,
153- _ => false ,
154- }
155- }
156-
157- fn t1_arrays ( n : & str , i : usize ) -> bool {
158- i == 0 && matches ! ( n, "T1r" | "T1s" | "T1t" | "T1v" )
159- }
0 commit comments