glib/tests/std_log_result.h
author hgs
Thu, 05 Aug 2010 23:23:13 +0530
changeset 50 79045913e4e9
permissions -rw-r--r--
201031
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
50
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: 
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#ifndef _STD_LOG_FILE_H__
hgs
parents:
diff changeset
    21
#define _STD_LOG_FILE_H__
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
#include <stdio.h>
hgs
parents:
diff changeset
    24
#include <time.h>
hgs
parents:
diff changeset
    25
#include <string.h>
hgs
parents:
diff changeset
    26
#include <stdarg.h>
hgs
parents:
diff changeset
    27
#include <dirent.h>
hgs
parents:
diff changeset
    28
#ifdef __SYMBIAN32__
hgs
parents:
diff changeset
    29
//#define LOG_FILE "c:\\logs\\std_test_log.txt"
hgs
parents:
diff changeset
    30
#define LOG_DIR "c:\\logs\\"
hgs
parents:
diff changeset
    31
#define LOG_FILE_EXT "xml"
hgs
parents:
diff changeset
    32
int assert_failed = 0;
hgs
parents:
diff changeset
    33
#else
hgs
parents:
diff changeset
    34
#define LOG_DIR ""
hgs
parents:
diff changeset
    35
#define LOG_FILE_EXT "xml"
hgs
parents:
diff changeset
    36
#define LOG_FILE "std_test_log.txt"
hgs
parents:
diff changeset
    37
int assert_failed = 0;
hgs
parents:
diff changeset
    38
#endif
hgs
parents:
diff changeset
    39
FILE *fp;
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
int gnutest = 1;
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
# define VERIFY(fn) gnutest &= (fn)
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
void std_log(const char *filename,const int lineno,const char* aformat,...)
hgs
parents:
diff changeset
    47
{
hgs
parents:
diff changeset
    48
	va_list va;
hgs
parents:
diff changeset
    49
	if(fp==NULL)
hgs
parents:
diff changeset
    50
	{
hgs
parents:
diff changeset
    51
		fp = fopen(LOG_FILE,"a");
hgs
parents:
diff changeset
    52
	}
hgs
parents:
diff changeset
    53
	
hgs
parents:
diff changeset
    54
	va_start(va,aformat);    
hgs
parents:
diff changeset
    55
    {
hgs
parents:
diff changeset
    56
		fprintf(fp,"%s - [%d] : ",filename,lineno);
hgs
parents:
diff changeset
    57
		vfprintf(fp,aformat,va);
hgs
parents:
diff changeset
    58
		fprintf(fp,"\n");
hgs
parents:
diff changeset
    59
	}
hgs
parents:
diff changeset
    60
	va_end(va);
hgs
parents:
diff changeset
    61
	fflush(fp);
hgs
parents:
diff changeset
    62
}
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
void init_log_file()
hgs
parents:
diff changeset
    66
{
hgs
parents:
diff changeset
    67
	if(fp == NULL)
hgs
parents:
diff changeset
    68
	{
hgs
parents:
diff changeset
    69
		fp = fopen(LOG_FILE, "a");
hgs
parents:
diff changeset
    70
	}
hgs
parents:
diff changeset
    71
}
hgs
parents:
diff changeset
    72
hgs
parents:
diff changeset
    73
void close_log_file()
hgs
parents:
diff changeset
    74
{
hgs
parents:
diff changeset
    75
   fclose(fp);
hgs
parents:
diff changeset
    76
}
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
// This function is used to generate the xml file used bt ATS
hgs
parents:
diff changeset
    79
void testResultXml(char *filename)
hgs
parents:
diff changeset
    80
{
hgs
parents:
diff changeset
    81
    char time_buf[50];
hgs
parents:
diff changeset
    82
    
hgs
parents:
diff changeset
    83
    char result[10];
hgs
parents:
diff changeset
    84
    
hgs
parents:
diff changeset
    85
    char xmlfilename[256];
hgs
parents:
diff changeset
    86
        
hgs
parents:
diff changeset
    87
    time_t t = time(NULL);
hgs
parents:
diff changeset
    88
    
hgs
parents:
diff changeset
    89
    struct tm *tm1 = localtime(&t);
hgs
parents:
diff changeset
    90
    
hgs
parents:
diff changeset
    91
    char *atsinitmsg    =   "<test-report>\n\t<test-batch>";
hgs
parents:
diff changeset
    92
    
hgs
parents:
diff changeset
    93
    char *atsbatchinit1 =   \
hgs
parents:
diff changeset
    94
                            "\n\t\t<batch-init>\
hgs
parents:
diff changeset
    95
                            \n\t\t\t<description></description>\
hgs
parents:
diff changeset
    96
                            \n\t\t\t<date>";                        
hgs
parents:
diff changeset
    97
                            
hgs
parents:
diff changeset
    98
    char *atsbatchinit2 =   "</date>\
hgs
parents:
diff changeset
    99
                            \n\t\t\t<factory>NA</factory>\
hgs
parents:
diff changeset
   100
                            \n\t\t\t<component>\
hgs
parents:
diff changeset
   101
                            \n\t\t\t\t<name>NA</name>\
hgs
parents:
diff changeset
   102
                            \n\t\t\t\t<version>NA</version>\
hgs
parents:
diff changeset
   103
                            \n\t\t\t</component>\
hgs
parents:
diff changeset
   104
                            \n\t\t</batch-init>";
hgs
parents:
diff changeset
   105
                            
hgs
parents:
diff changeset
   106
    char *atsbatchresult=   \
hgs
parents:
diff changeset
   107
                            "\n\t\t<batch-result>\
hgs
parents:
diff changeset
   108
                            \n\t\t\t<run-time>00:00:00</run-time>\
hgs
parents:
diff changeset
   109
                            \n\t\t</batch-result>";
hgs
parents:
diff changeset
   110
                            
hgs
parents:
diff changeset
   111
    char *atsclosemsg   =   \
hgs
parents:
diff changeset
   112
                            "\n\t</test-batch>\
hgs
parents:
diff changeset
   113
                            \n</test-report>\n ";
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
    char *atstestinit   =   "\n\t\t<test-case time-stamp=\"00:00:00\">";
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
    
hgs
parents:
diff changeset
   118
    char *atscaseinit1  =   \
hgs
parents:
diff changeset
   119
                            "\n\t\t\t<case-init>\
hgs
parents:
diff changeset
   120
                            \n\t\t\t\t<version></version>\
hgs
parents:
diff changeset
   121
                            \n\t\t\t\t<id>";
hgs
parents:
diff changeset
   122
                                                
hgs
parents:
diff changeset
   123
    char *atscaseinit2 =    "</id>\
hgs
parents:
diff changeset
   124
                            \n\t\t\t\t<expected-result description=\"\">0</expected-result>\
hgs
parents:
diff changeset
   125
                            \n\t\t\t</case-init>";
hgs
parents:
diff changeset
   126
                            
hgs
parents:
diff changeset
   127
    char *atscaseresult1=   \
hgs
parents:
diff changeset
   128
                            "\n\t\t\t<case-result status=\"";
hgs
parents:
diff changeset
   129
                            
hgs
parents:
diff changeset
   130
    char *atscaseresult2=   "\">\
hgs
parents:
diff changeset
   131
                            \n\t\t\t\t<actual-result>0</actual-result>\
hgs
parents:
diff changeset
   132
                            \n\t\t\t\t<run-time>00:00:00</run-time>\
hgs
parents:
diff changeset
   133
                            \n\t\t\t</case-result>";
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
    char *atstestclose  =   "\n\t\t</test-case>";
hgs
parents:
diff changeset
   136
    
hgs
parents:
diff changeset
   137
    /* Check and see if spd_logs/xml is existent or not. If not present create it */
hgs
parents:
diff changeset
   138
    DIR *dir;
hgs
parents:
diff changeset
   139
    FILE *fp;
hgs
parents:
diff changeset
   140
    
hgs
parents:
diff changeset
   141
    dir = opendir("c:\\spd_logs");
hgs
parents:
diff changeset
   142
    if(!dir)
hgs
parents:
diff changeset
   143
        mkdir("c:\\spd_logs",0777);
hgs
parents:
diff changeset
   144
    
hgs
parents:
diff changeset
   145
    dir = opendir("c:\\spd_logs\\xml");
hgs
parents:
diff changeset
   146
    if(!dir)
hgs
parents:
diff changeset
   147
        mkdir("c:\\spd_logs\\xml",0777);
hgs
parents:
diff changeset
   148
    
hgs
parents:
diff changeset
   149
    // create the xml file name
hgs
parents:
diff changeset
   150
    strcpy(xmlfilename,"c:/spd_logs/xml/");
hgs
parents:
diff changeset
   151
    strcat(xmlfilename,filename);
hgs
parents:
diff changeset
   152
    strcat(xmlfilename,".xml");
hgs
parents:
diff changeset
   153
    
hgs
parents:
diff changeset
   154
    strftime(time_buf,50,"%c",tm1);
hgs
parents:
diff changeset
   155
    
hgs
parents:
diff changeset
   156
    if(assert_failed )
hgs
parents:
diff changeset
   157
        strcpy(result,"FAILED");
hgs
parents:
diff changeset
   158
    else
hgs
parents:
diff changeset
   159
        strcpy(result,"PASSED");
hgs
parents:
diff changeset
   160
    
hgs
parents:
diff changeset
   161
    fp = fopen(xmlfilename,"w");
hgs
parents:
diff changeset
   162
    
hgs
parents:
diff changeset
   163
    if(fp)
hgs
parents:
diff changeset
   164
    {
hgs
parents:
diff changeset
   165
        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
   166
            atscaseinit1,filename,atscaseinit2,atscaseresult1,result,atscaseresult2,
hgs
parents:
diff changeset
   167
            atstestclose,atsbatchresult,atsclosemsg);
hgs
parents:
diff changeset
   168
            
hgs
parents:
diff changeset
   169
        fclose(fp); 
hgs
parents:
diff changeset
   170
    }
hgs
parents:
diff changeset
   171
    else
hgs
parents:
diff changeset
   172
    {
hgs
parents:
diff changeset
   173
        g_assert(FALSE && "Failed to create the xml file");
hgs
parents:
diff changeset
   174
    }
hgs
parents:
diff changeset
   175
}
hgs
parents:
diff changeset
   176
hgs
parents:
diff changeset
   177
#endif
hgs
parents:
diff changeset
   178