Changeset 48

Show
Ignore:
Timestamp:
04/08/09 13:33:56 (3 years ago)
Author:
mgalloy
Message:

Added error message to failure message when setup or teardown methods fail. This allows a type of test to be done for all tests i.e. like memory leaks.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/mgunit/src/mguttestcase__define.pro

    r28 r48  
    104104 
    105105 
    106  
     106;+ 
     107; Removes the given prefix from the msg if present. 
     108;  
     109; :Params: 
     110;    msg : in, required, type=string 
     111;       string to remove prefix from, may be undefined 
     112;    prefix : in, required, type=string 
     113;       prefix to remove from msg 
     114;- 
     115pro mguttestcase::_removePrefix, msg, prefix 
     116  compile_opt strictarr 
     117   
     118  if (n_elements(msg) gt 0 && strpos(msg, prefix) eq 0) then begin 
     119    prefixLength = strlen(prefix) 
     120    msg = strmid(msg, prefixLength) 
     121  endif 
     122end 
     123 
     124   
    107125;+ 
    108126; Run the tests for this class (i.e. methods with names that start with "test"). 
     
    131149    passed = result && ~setupFailed && ~teardownFailed 
    132150     
    133     if (setupFailed) then msg = 'setup failed' 
    134     if (result && teardownFailed) then msg = 'teardown failed' 
     151    if (setupFailed) then begin 
     152      msg = !error_state.msg 
     153      self->_removePrefix, msg, 'ASSERT: '       
     154      msg = 'setup failed: ' + msg 
     155    endif 
     156     
     157    if (result && teardownFailed) then begin 
     158      msg = !error_state.msg       
     159      self->_removePrefix, msg, 'ASSERT: '       
     160      msg = 'teardown failed: ' + msg     
     161    endif 
    135162 
    136163    if (passed) then begin 
     
    140167    endelse 
    141168 
    142     ; remove prefix from msg if present 
    143     prefix = obj_class(self) + '::' + (*self.testnames)[t] + ': ' 
    144     if (n_elements(msg) gt 0 && strpos(msg, prefix) eq 0) then begin 
    145       prefixLength = strlen(prefix) 
    146       msg = strmid(msg, prefixLength) 
    147     endif 
     169    ; remove method name from msg, if present 
     170    self->_removePrefix, msg, obj_class(self) + '::' + (*self.testnames)[t] + ': ' 
    148171 
    149172    ; remove ASSERT from msg if present  
    150     prefix = 'ASSERT: ' 
    151     if (n_elements(msg) gt 0 && strpos(msg, prefix) eq 0) then begin 
    152       prefixLength = strlen(prefix) 
    153       msg = strmid(msg, prefixLength) 
    154     endif 
     173    self->_removePrefix, msg, 'ASSERT: ' 
    155174     
    156175    ; construct the log message for the test