#[ allow( unused_imports ) ]
use super::*;
#[ allow( unused_imports ) ]
use the_module::prelude::*;
tests_impls!
{
#[ cfg( any( feature = "diagnostics_compiletime_assertions", feature = "diagnostics_compiletime_assertions" ) ) ]
fn cta_type_same_size_pass()
{
struct Int( i16 );
let got = cta_type_same_size!( Int, i16 );
assert!( got );
}
#[ cfg( any( feature = "diagnostics_compiletime_assertions", feature = "diagnostics_compiletime_assertions" ) ) ]
fn cta_type_same_align_pass()
{
struct Int1( i16 );
#[ repr( align( 128 ) ) ]
struct Int2( i16 );
let got = cta_type_same_align!( Int1, i16 );
assert!( got );
}
#[ cfg( any( feature = "diagnostics_compiletime_assertions", feature = "diagnostics_compiletime_assertions" ) ) ]
fn cta_ptr_same_size_pass()
{
struct Int( i16 );
let ins1 = Int( 31 );
let ins2 = 13_i16;
let got = cta_ptr_same_size!( &ins1, &ins2 );
assert!( got );
let got = cta_ptr_same_size!( &ins1, &ins2 );
assert!( got );
let got = cta_ptr_same_size!( &ins1, &31_i16 );
assert!( got );
}
#[ cfg( any( feature = "diagnostics_compiletime_assertions", feature = "diagnostics_compiletime_assertions" ) ) ]
fn cta_mem_same_size_pass()
{
struct Int( i16 );
let ins1 = Int( 31 );
let ins2 = 13_i16;
let got = cta_mem_same_size!( ins1, ins2 );
assert!( got );
let got = cta_mem_same_size!( ins1, ins2 );
assert!( got );
let got = cta_mem_same_size!( ins1, 31_i16 );
assert!( got );
}
}
only_for_terminal_module!
{
#[ cfg( any( feature = "diagnostics_compiletime_assertions", feature = "diagnostics_compiletime_assertions" ) ) ]
#[ test_tools::nightly ]
#[ test ]
fn cta_trybuild_tests()
{
let t = test_tools::compiletime::TestCases::new();
let current_exe_path = std::env::current_exe().expect( "No such file or directory" );
let exe_directory = current_exe_path.parent().expect( "No such file or directory" );
fn find_workspace_root( start_path : &std::path::Path ) -> Option< &std::path::Path >
{
start_path
.ancestors()
.find( |path| path.join( "Cargo.toml" ).exists() )
}
let workspace_root = find_workspace_root( exe_directory ).expect( "No such file or directory" );
let current_dir = workspace_root.join( "module/core/diagnostics_tools" );
t.compile_fail( current_dir.join("tests/inc/snipet/cta_type_same_size_fail.rs") );
t.compile_fail( current_dir.join("tests/inc/snipet/cta_type_same_align_fail.rs") );
t.compile_fail( current_dir.join("tests/inc/snipet/cta_ptr_same_size_fail.rs") );
t.compile_fail( current_dir.join("tests/inc/snipet/cta_mem_same_size_fail.rs") );
}
}
tests_index!
{
cta_type_same_size_pass,
cta_type_same_align_pass,
cta_ptr_same_size_pass,
cta_mem_same_size_pass,
}