// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
//
void CSymbianUnitTestResult::AddRequestLeakInfoL(
    TInt aLeakedRequest,
    TInt aAllocFailureRate )
    {
    const TInt KLength = 
        KSymbianUnitTestRequestLeakPhrase().Length() + 
        KMax64BitUintLengthAsDescriptor;    
    HBufC8* failureMsg = HBufC8::NewLC( KLength );
    failureMsg->Des().Format( 
        KSymbianUnitTestRequestLeakPhrase, aLeakedRequest );
    User::LeaveIfError( AddFailure( *failureMsg, aAllocFailureRate ) );
    CleanupStack::PopAndDestroy( failureMsg );  
    }
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
//
void CSymbianUnitTestResult::AddLeaveFromTestL(
    TInt aLeaveCode,
    TInt aAllocFailureRate )
    {
    const TInt KLength = 
        KSymbianUnitTestLeaveCodeMessageFormat().Length() + 
        KMax64BitUintLengthAsDescriptor;    
    HBufC8* failureMsg = HBufC8::NewLC( KLength );
    failureMsg->Des().Format( 
        KSymbianUnitTestLeaveCodeMessageFormat, aLeaveCode );
    User::LeaveIfError( AddFailure( *failureMsg, aAllocFailureRate ) );
    CleanupStack::PopAndDestroy( failureMsg );
    }
void TActionLog::AddFailure(Exception *E)
{
  std::unique_ptr<TStrings> Messages(ExceptionToMoreMessages(E));
  if (Messages.get() != nullptr)
  {
    try__finally
    {
      AddFailure(Messages.get());
    }
    __finally
    {
#if 0
      delete Messages;
#endif // #if 0
    };
  }
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
//
void CSymbianUnitTestResult::AddPanicInfoL( 
    const TExitCategoryName& aPanicCategory,
    TInt aPanicReason,
    TInt aAllocFailureRate )
    {
    const TInt KLength = 
        KSymbianUnitTestPanicPhrase().Length() + aPanicCategory.Length() + 
        KSymbianUnitTestPanicReasonFormat().Length() + 
        KMax64BitUintLengthAsDescriptor;
    HBufC8* panicAsText = HBufC8::NewLC( KLength );
    TPtr8 panicAsTextPtr( panicAsText->Des() );
    panicAsTextPtr.Append( KSymbianUnitTestPanicPhrase );
    panicAsTextPtr.Append( aPanicCategory );
    panicAsTextPtr.AppendFormat( 
        KSymbianUnitTestPanicReasonFormat, aPanicReason );
    User::LeaveIfError( AddFailure( panicAsTextPtr, aAllocFailureRate ) );
    CleanupStack::PopAndDestroy( panicAsText );
    }
void XmlTestReporter::ReportSummary(int totalTestCount, int failedTestCount,
                                    int failureCount, float secondsElapsed)
{
    AddXmlElement(m_ostream, NULL);

    BeginResults(m_ostream, totalTestCount, failedTestCount, failureCount, secondsElapsed);

    DeferredTestResultList const& results = GetResults();
    for (DeferredTestResultList::const_iterator i = results.begin(); i != results.end(); ++i)
    {
        BeginTest(m_ostream, *i);

        if (i->failed)
            AddFailure(m_ostream, *i);

        EndTest(m_ostream, *i);
    }

    EndResults(m_ostream);
}