/// Internal namespace. pub( crate ) mod private { // xxx : move here test tools // /// // /// Mechanism to define test suite. // /// This macro encourages refactoring the code of the test in the most readable way, gathering a list of all test routines at the end of the test file. // /// // /// Name of test routine should have postfix `*_test`. In the index of test routine the postfix should be ommited. // /// // /// ### Sample // /// use wtest_basic::*; // /// // /// // // /// // /// fn pass1_test() // /// { // /// assert_eq!( true, true ); // /// } // /// // /// // // /// // /// fn pass2_test() // /// { // /// assert_eq!( 1, 1 ); // /// } // /// // /// // // /// // /// test_suite! // /// { // /// pass1, // /// pass2, // /// } // /// // // #[ macro_export ] // macro_rules! test_suite // { // // () => { }; // // ( // $( #[ $Meta : meta ] )* // $Name : ident , // $( $Rest : tt )* // ) // => // { // $( #[ $Meta ] )* // #[test] // fn $Name() // { // $crate::paste::paste!([< $Name _test >])() // } // $crate::test_suite!( $( $Rest )* ); // }; // // } // /// Pass only if callback fails either returning error or panicing. // // pub fn should_throw< R, F : FnOnce() -> anyhow::Result< R > >( f : F ) -> anyhow::Result< R > // { // f() // } // // #[panic_handler] // fn panic( info : &core::panic::PanicInfo ) -> ! // { // println!( "{:?}", info ); // loop {} // } // pub use test_suite; // pub use test_suite_internals; // pub use index; } /// Exposed namespace of the module. pub mod exposed { // use super::private as i; pub use super::prelude::*; // pub use super::private::test_suite; } pub use exposed::*; /// Prelude to use essentials: `use my_module::prelude::*`. pub mod prelude { // use super::private as i; // pub use super::private::test_suite; pub use core::fmt; // zzz : add to prelude of wtools under feature fair_context }