[SOCIS] Testing Framework
    Sebastian Huber 
    sebastian.huber at embedded-brains.de
       
    Wed Nov 20 15:11:13 UTC 2013
    
    
  
Hello Marcin,
I just checked out the Unity sources and had a brief look at it.  I see one 
major problem with this framework.  It is not thread-safe, e.g. you have 
functions like this:
https://github.com/ThrowTheSwitch/Unity/blob/master/src/unity.c
[...]
//-----------------------------------------------
void UnityAssertNumbersWithin( const _U_SINT delta,
                                const _U_SINT expected,
                                const _U_SINT actual,
                                const char* msg,
                                const UNITY_LINE_TYPE lineNumber,
                                const UNITY_DISPLAY_STYLE_T style)
{
     UNITY_SKIP_EXECUTION;
     if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT)
     {
         if (actual > expected)
           Unity.CurrentTestFailed = ((actual - expected) > delta);
         else
           Unity.CurrentTestFailed = ((expected - actual) > delta);
     }
     else
     {
         if ((_U_UINT)actual > (_U_UINT)expected)
             Unity.CurrentTestFailed = ((_U_UINT)(actual - expected) > 
(_U_UINT)delta);
         else
             Unity.CurrentTestFailed = ((_U_UINT)(expected - actual) > 
(_U_UINT)delta);
     }
     if (Unity.CurrentTestFailed)
     {
         UnityTestResultsFailBegin(lineNumber);
         UnityPrint(UnityStrDelta);
         UnityPrintNumberByStyle(delta, style);
         UnityPrint(UnityStrExpected);
         UnityPrintNumberByStyle(expected, style);
         UnityPrint(UnityStrWas);
         UnityPrintNumberByStyle(actual, style);
         UnityAddMsgIfSpecified(msg);
         UNITY_FAIL_AND_BAIL;
     }
}
[...]
So now if multiple threads call this function the result is unpredictable.
Thread-safety is a mandatory feature for a unit test framework for RTEMS from 
my point of view, so either we add this to Unity or search for something else.
-- 
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
    
    
More information about the devel
mailing list