/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
* Description:
*
*/
#ifndef __G_LOG_MRT2_GLIB2_TEST
#define __G_LOG_MRT2_GLIB2_TEST
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <dirent.h>
gboolean assert_failed = FALSE;
#undef g_assert
#define g_assert(expr) G_STMT_START{ if (expr) { } else {g_log (G_LOG_DOMAIN,G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING | G_LOG_LEVEL_MESSAGE | G_LOG_LEVEL_INFO | G_LOG_LEVEL_DEBUG, "file %s: line %d: assertion failed: (%s)", __FILE__, __LINE__, #expr);assert_failed = TRUE; }}G_STMT_END
void mrtLogHandler(const gchar* log_domain, GLogLevelFlags log_level,
const gchar* message, gpointer user_data)
{
FILE *fp;
fp = fopen("c:\\logtests.txt","a");
if(fp)
{
fprintf(fp,message);
fprintf(fp,"\n");
fclose(fp);
}
}
void mrtPrintHandler(const gchar *message)
{
FILE *fp;
fp = fopen("c:\\logtests.txt","a");
if(fp)
{
fprintf(fp,message);
fprintf(fp,"\n");
fclose(fp);
}
}
// This function is used to generate the xml file used bt ATS
void testResultXml(char *filename)
{
char time_buf[50];
char result[10];
char xmlfilename[256];
time_t t = time(NULL);
struct tm *tm1 = localtime(&t);
char *atsinitmsg = "<test-report>\n\t<test-batch>";
char *atsbatchinit1 = \
"\n\t\t<batch-init>\
\n\t\t\t<description></description>\
\n\t\t\t<date>";
char *atsbatchinit2 = "</date>\
\n\t\t\t<factory>NA</factory>\
\n\t\t\t<component>\
\n\t\t\t\t<name>NA</name>\
\n\t\t\t\t<version>NA</version>\
\n\t\t\t</component>\
\n\t\t</batch-init>";
char *atsbatchresult= \
"\n\t\t<batch-result>\
\n\t\t\t<run-time>00:00:00</run-time>\
\n\t\t</batch-result>";
char *atsclosemsg = \
"\n\t</test-batch>\
\n</test-report>\n ";
char *atstestinit = "\n\t\t<test-case time-stamp=\"00:00:00\">";
char *atscaseinit1 = \
"\n\t\t\t<case-init>\
\n\t\t\t\t<version></version>\
\n\t\t\t\t<id>";
char *atscaseinit2 = "</id>\
\n\t\t\t\t<expected-result description=\"\">0</expected-result>\
\n\t\t\t</case-init>";
char *atscaseresult1= \
"\n\t\t\t<case-result status=\"";
char *atscaseresult2= "\">\
\n\t\t\t\t<actual-result>0</actual-result>\
\n\t\t\t\t<run-time>00:00:00</run-time>\
\n\t\t\t</case-result>";
char *atstestclose = "\n\t\t</test-case>";
/* Check and see if spd_logs/xml is existent or not. If not present create it */
DIR *dir;
FILE *fp;
dir = opendir("c:\\spd_logs");
if(!dir)
mkdir("c:\\spd_logs",0777);
dir = opendir("c:\\spd_logs\\xml");
if(!dir)
mkdir("c:\\spd_logs\\xml",0777);
// create the xml file name
strcpy(xmlfilename,"c:/spd_logs/xml/");
strcat(xmlfilename,filename);
strcat(xmlfilename,".xml");
strftime(time_buf,50,"%c",tm1);
if(assert_failed )
strcpy(result,"FAILED");
else
strcpy(result,"PASSED");
fp = fopen(xmlfilename,"w");
if(fp)
{
fprintf(fp,"%s%s%s%s%s%s%s%s%s%s%s%s%s%s",atsinitmsg,atsbatchinit1,time_buf,atsbatchinit2,atstestinit,
atscaseinit1,filename,atscaseinit2,atscaseresult1,result,atscaseresult2,
atstestclose,atsbatchresult,atsclosemsg);
fclose(fp);
}
else
{
g_assert(FALSE && "Failed to create the xml file");
}
}
#endif