internal/gcce/inc/result_log.h
author hgs
Tue, 02 Nov 2010 19:23:22 +0530
changeset 79 564bc7b7ad27
permissions -rw-r--r--
201043
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
79
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
hgs
parents:
diff changeset
     3
hgs
parents:
diff changeset
     4
Redistribution and use in source and binary forms, with or without 
hgs
parents:
diff changeset
     5
modification, are permitted provided that the following conditions are met:
hgs
parents:
diff changeset
     6
hgs
parents:
diff changeset
     7
* Redistributions of source code must retain the above copyright notice, this 
hgs
parents:
diff changeset
     8
  list of conditions and the following disclaimer.
hgs
parents:
diff changeset
     9
* Redistributions in binary form must reproduce the above copyright notice, 
hgs
parents:
diff changeset
    10
  this list of conditions and the following disclaimer in the documentation 
hgs
parents:
diff changeset
    11
  and/or other materials provided with the distribution.
hgs
parents:
diff changeset
    12
* Neither the name of Nokia Corporation nor the names of its contributors 
hgs
parents:
diff changeset
    13
  may be used to endorse or promote products derived from this software 
hgs
parents:
diff changeset
    14
  without specific prior written permission.
hgs
parents:
diff changeset
    15
hgs
parents:
diff changeset
    16
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
hgs
parents:
diff changeset
    17
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
hgs
parents:
diff changeset
    18
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
hgs
parents:
diff changeset
    19
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 
hgs
parents:
diff changeset
    20
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
hgs
parents:
diff changeset
    21
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
hgs
parents:
diff changeset
    22
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
hgs
parents:
diff changeset
    23
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
hgs
parents:
diff changeset
    24
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
hgs
parents:
diff changeset
    25
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
* Description:
hgs
parents:
diff changeset
    28
*
hgs
parents:
diff changeset
    29
*/
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
#ifndef __RESULT_LOG_H__
hgs
parents:
diff changeset
    34
#define __RESULT_LOG_H__
hgs
parents:
diff changeset
    35
#include <sys/stat.h>
hgs
parents:
diff changeset
    36
#include <sys/types.h>
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
#include <stdio.h>
hgs
parents:
diff changeset
    39
#include <time.h>
hgs
parents:
diff changeset
    40
#include <string.h>
hgs
parents:
diff changeset
    41
#include <dirent.h>
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
#undef g_assert
hgs
parents:
diff changeset
    45
#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
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
	
hgs
parents:
diff changeset
    48
// This function is used to generate the xml file used bt ATS
hgs
parents:
diff changeset
    49
void testResultXml(char *filename,int passed)
hgs
parents:
diff changeset
    50
{
hgs
parents:
diff changeset
    51
	char time_buf[50];
hgs
parents:
diff changeset
    52
	
hgs
parents:
diff changeset
    53
	char result[10];
hgs
parents:
diff changeset
    54
	
hgs
parents:
diff changeset
    55
	char xmlfilename[256];
hgs
parents:
diff changeset
    56
		
hgs
parents:
diff changeset
    57
	time_t t = time(NULL);
hgs
parents:
diff changeset
    58
	
hgs
parents:
diff changeset
    59
	struct tm *tm1 = localtime(&t);
hgs
parents:
diff changeset
    60
	
hgs
parents:
diff changeset
    61
	char *atsinitmsg 	= 	"<test-report>\n\t<test-batch>";
hgs
parents:
diff changeset
    62
	
hgs
parents:
diff changeset
    63
	char *atsbatchinit1	=   \
hgs
parents:
diff changeset
    64
							"\n\t\t<batch-init>\
hgs
parents:
diff changeset
    65
							\n\t\t\t<description></description>\
hgs
parents:
diff changeset
    66
							\n\t\t\t<date>";						
hgs
parents:
diff changeset
    67
							
hgs
parents:
diff changeset
    68
	char *atsbatchinit2 =	"</date>\
hgs
parents:
diff changeset
    69
							\n\t\t\t<factory>NA</factory>\
hgs
parents:
diff changeset
    70
							\n\t\t\t<component>\
hgs
parents:
diff changeset
    71
							\n\t\t\t\t<name>NA</name>\
hgs
parents:
diff changeset
    72
							\n\t\t\t\t<version>NA</version>\
hgs
parents:
diff changeset
    73
							\n\t\t\t</component>\
hgs
parents:
diff changeset
    74
							\n\t\t</batch-init>";
hgs
parents:
diff changeset
    75
							
hgs
parents:
diff changeset
    76
	char *atsbatchresult=	\
hgs
parents:
diff changeset
    77
							"\n\t\t<batch-result>\
hgs
parents:
diff changeset
    78
							\n\t\t\t<run-time>00:00:00</run-time>\
hgs
parents:
diff changeset
    79
							\n\t\t</batch-result>";
hgs
parents:
diff changeset
    80
							
hgs
parents:
diff changeset
    81
	char *atsclosemsg	=   \
hgs
parents:
diff changeset
    82
							"\n\t</test-batch>\
hgs
parents:
diff changeset
    83
							\n</test-report>\n ";
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
	char *atstestinit	=	"\n\t\t<test-case time-stamp=\"00:00:00\">";
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
	
hgs
parents:
diff changeset
    88
	char *atscaseinit1	=	\
hgs
parents:
diff changeset
    89
							"\n\t\t\t<case-init>\
hgs
parents:
diff changeset
    90
							\n\t\t\t\t<version></version>\
hgs
parents:
diff changeset
    91
							\n\t\t\t\t<id>";
hgs
parents:
diff changeset
    92
												
hgs
parents:
diff changeset
    93
	char *atscaseinit2 = 	"</id>\
hgs
parents:
diff changeset
    94
							\n\t\t\t\t<expected-result description=\"\">0</expected-result>\
hgs
parents:
diff changeset
    95
							\n\t\t\t</case-init>";
hgs
parents:
diff changeset
    96
							
hgs
parents:
diff changeset
    97
	char *atscaseresult1=	\
hgs
parents:
diff changeset
    98
							"\n\t\t\t<case-result status=\"";
hgs
parents:
diff changeset
    99
							
hgs
parents:
diff changeset
   100
	char *atscaseresult2=	"\">\
hgs
parents:
diff changeset
   101
							\n\t\t\t\t<actual-result>0</actual-result>\
hgs
parents:
diff changeset
   102
							\n\t\t\t\t<run-time>00:00:00</run-time>\
hgs
parents:
diff changeset
   103
							\n\t\t\t</case-result>";
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
	char *atstestclose	=	"\n\t\t</test-case>";
hgs
parents:
diff changeset
   106
	
hgs
parents:
diff changeset
   107
	/* Check and see if spd_logs/xml is existent or not. If not present create it */
hgs
parents:
diff changeset
   108
	DIR *dir;
hgs
parents:
diff changeset
   109
	FILE *fp;
hgs
parents:
diff changeset
   110
	
hgs
parents:
diff changeset
   111
	dir = opendir("c:\\spd_logs");
hgs
parents:
diff changeset
   112
	if(!dir)
hgs
parents:
diff changeset
   113
		mkdir("c:\\spd_logs",0777);
hgs
parents:
diff changeset
   114
	
hgs
parents:
diff changeset
   115
	dir = opendir("c:\\spd_logs\\xml");
hgs
parents:
diff changeset
   116
	if(!dir)
hgs
parents:
diff changeset
   117
		mkdir("c:\\spd_logs\\xml",0777);
hgs
parents:
diff changeset
   118
	
hgs
parents:
diff changeset
   119
	// create the xml file name
hgs
parents:
diff changeset
   120
	strcpy(xmlfilename,"c:\\spd_logs\\xml\\");
hgs
parents:
diff changeset
   121
	strcat(xmlfilename,filename);
hgs
parents:
diff changeset
   122
	strcat(xmlfilename,".xml");
hgs
parents:
diff changeset
   123
	
hgs
parents:
diff changeset
   124
	strftime(time_buf,50,"%c",tm1);
hgs
parents:
diff changeset
   125
	
hgs
parents:
diff changeset
   126
	if(passed != 0)
hgs
parents:
diff changeset
   127
		strcpy(result,"FAILED");
hgs
parents:
diff changeset
   128
	else
hgs
parents:
diff changeset
   129
		strcpy(result,"PASSED");
hgs
parents:
diff changeset
   130
	
hgs
parents:
diff changeset
   131
	fp = fopen(xmlfilename,"w");
hgs
parents:
diff changeset
   132
	
hgs
parents:
diff changeset
   133
	if(fp)
hgs
parents:
diff changeset
   134
	{
hgs
parents:
diff changeset
   135
		fprintf(fp,"%s%s%s%s%s%s%s%s%s%s%s%s%s%s",atsinitmsg,atsbatchinit1,time_buf,atsbatchinit2,atstestinit,
hgs
parents:
diff changeset
   136
			atscaseinit1,filename,atscaseinit2,atscaseresult1,result,atscaseresult2,
hgs
parents:
diff changeset
   137
			atstestclose,atsbatchresult,atsclosemsg);
hgs
parents:
diff changeset
   138
			
hgs
parents:
diff changeset
   139
		fclose(fp);	
hgs
parents:
diff changeset
   140
	}
hgs
parents:
diff changeset
   141
	else
hgs
parents:
diff changeset
   142
	{
hgs
parents:
diff changeset
   143
	}
hgs
parents:
diff changeset
   144
}
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
#endif //__RESULT_LOG_H__