Differences From Artifact [09cc57fcd7c969ca]:
- File        
tricks/test.d
- 2010-11-09 14:24:09 - part of checkin [2459e9a821] on branch trunk - refactored eof-driven REPL (user: kinaba) [annotate]
 
 
To Artifact [7c50b0e91b8919b8]:
- File        
tricks/test.d
- 2010-11-09 14:59:36 - part of checkin [7465fcdd7f] on branch trunk - layered function invocation (user: kinaba) [annotate]
 
 
    6   */                                                                                    6   */
    7  module tricks.test;                                                                    7  module tricks.test;
    8  import std.conv : to;                                                                  8  import std.conv : to;
    9  import core.exception;                                                                 9  import core.exception;
   10                                                                                        10  
   11  /// Unittest helper that asserts an expression must throw something                   11  /// Unittest helper that asserts an expression must throw something
   12                                                                                        12  
                                                                                        >    13  void assert_throw(ExceptionType=Throwable,
   13  void assert_throw(ExceptionType, T, string fn=__FILE__, size_t ln=__LINE__)(lazy |    14          T, string fn=__FILE__, size_t ln=__LINE__)(lazy T t, string msg="")
   14  {                                                                                     15  {
                                                                                        >    16          static if( is(ExceptionType == Throwable) )
   15          try                                                                      |    17                  try
   16                  { t(); }                                                         |    18                          { t(); }
   17          catch(ExceptionType)                                                     |    19                  catch(ExceptionType)
   18                  { return; }                                                      |    20                          { return; }
                                                                                        >    21          else
                                                                                        >    22                  try
                                                                                        >    23                          { t(); }
                                                                                        >    24                  catch(ExceptionType)
                                                                                        >    25                          { return; }
   19          catch(Throwable e)                                                       |    26                  catch(Throwable e)
   20                  { onAssertErrorMsg(fn, ln, msg.length ? msg : "bad exception\n > |    27                          { onAssertErrorMsg(fn, ln, msg.length ? msg : "bad excep
   21          onAssertErrorMsg(fn, ln, msg.length ? msg : "not thrown");                    28          onAssertErrorMsg(fn, ln, msg.length ? msg : "not thrown");
   22  }                                                                                     29  }
   23                                                                                        30  
   24  /// Unittest helper that asserts an expression must not throw anything                31  /// Unittest helper that asserts an expression must not throw anything
   25                                                                                        32  
   26  auto assert_nothrow(T, string fn=__FILE__, size_t ln=__LINE__)(lazy T t, string       33  auto assert_nothrow(T, string fn=__FILE__, size_t ln=__LINE__)(lazy T t, string 
   27  {                                                                                     34  {