apicompatanamdw/compatanalysercmd/checkbc/tsrc/testcases.py
changeset 12 a0eee409ff14
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apicompatanamdw/compatanalysercmd/checkbc/tsrc/testcases.py	Mon Sep 27 14:51:17 2010 +0530
@@ -0,0 +1,667 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+import subprocess
+import os
+import re
+import sys
+import shutil
+from xml.dom import minidom
+
+
+if os.name == 'nt':
+    path = os.path.dirname(sys.argv[0])
+else:
+    path = os.getcwd()
+
+TC_DIR = path
+CHECKBC = "python " + "\""+ TC_DIR + os.sep + os.pardir + os.sep + "CheckBC.py" +"\""
+DEFAULT_TEMP = TC_DIR + os.sep + os.pardir + os.sep + "temp"
+
+#will create a seperate process for invoking checkbc with given parameters
+def runTest(args):
+    return subprocess.call(CHECKBC + args, shell=True)
+
+def comment(list, updatepairs):
+    ip = open( TC_DIR + os.sep + 'config_template', 'r')
+    op = open( TC_DIR + os.sep + 'temp' + os.sep + 'config', 'w')
+    for line in ip:
+        if line[0] == '#':
+            continue
+        line = line.strip(' \t\n\r')
+        pair = line.split('=')
+        if updatepairs.has_key(pair[0]):
+            line = pair[0] + '=' + updatepairs[pair[0]]
+        if pair[0] not in list:
+            op.write(line)
+            op.write('\n')
+    ip.close()
+    op.close()
+
+def failUnless(res, exp_res):
+	if res == exp_res:
+		return True
+	else:
+		return False	
+		
+def checklists(list1,list2):
+    for val in list1:
+        if not val in list2:
+            return False
+    return True
+
+def checkreports(tag):
+    expectedreport=TC_DIR + os.sep + 'testdata' + os.sep + 'expected_results' + os.sep + tag + '.xml'
+    actualreport=TC_DIR + os.sep + 'temp' + os.sep + 'results' + os.sep + tag + '.xml'
+    if not os.path.exists(actualreport):
+    	return False
+    
+    expdoc=minidom.parse(expectedreport)
+    actdoc=minidom.parse(actualreport)
+    expparent=expdoc.documentElement
+    actparent=actdoc.documentElement
+    
+    expparms=expparent.getElementsByTagName("parm")
+    actparms=actparent.getElementsByTagName("parm")
+    
+    expparmslen=expparms.length
+    actparmslen=actparms.length
+
+    if expparmslen!=actparmslen:
+    	return False
+    
+    for expparm in expparms:
+    	exparg=expparm.getElementsByTagName("pname")[0].firstChild.nodeValue
+    	expargval=""
+    	if expparm.getElementsByTagName("pvalue")[0].firstChild:
+    		expargval=expparm.getElementsByTagName("pvalue")[0].firstChild.nodeValue
+    	
+    	found=False
+    	for actparm in actparms:
+    		actarg=actparm.getElementsByTagName("pname")[0].firstChild.nodeValue
+    		actargval=""
+    		if actparm.getElementsByTagName("pvalue")[0].firstChild:
+    			actargval=actparm.getElementsByTagName("pvalue")[0].firstChild.nodeValue
+    		if exparg==actarg:
+    			if exparg in "baselineversion currentversion bundlesize recursive replace excludedirs toolchain".split():
+    				if expargval == actargval:
+    					found=True
+    				break
+    					   	
+    			if exparg in "baseplatformdata currentplatformdata".split():
+    				expargval=expargval[ expargval.index(os.sep+'data') : len(expargval) ]
+    				actargval=actargval[ actargval.index(os.sep+'data') : len(actargval) ]
+    				if expargval == actargval:
+    					found=True
+    				break
+    				
+    			if exparg == 'cfilt':
+    				if expargval.rfind(os.sep+'bin') != -1:
+    					expargval=expargval[ expargval.index(os.sep+'bin') : len(expargval) ]
+    					actargval=actargval[ actargval.index(os.sep+'bin') : len(actargval) ]
+    				if expargval == actargval:
+    					found=True
+    				break
+    						
+    			if exparg in "forcebaseinclude forcecurrentinclude".split():			
+    				list1=expargval.split(';')
+    				list2=actargval.split(';')
+    				if len(list1) == len(list2):
+    				    for i in range(0,len(list1)): 
+    				        list1[i]=list1[i][ list1[i].index(os.sep+'bin') : len(list1[i]) ]
+    				        list2[i]=list2[i][ list2[i].index(os.sep+'bin') : len(list2[i]) ]        	
+    				    found=checklists(list1,list2)
+    				break
+    				
+    			if exparg in "baselinedir currentdir baselinelibdir currentlibdir baselinedlldir currentdlldir baseplatformheaders currentplatformheaders reportfile".split():
+    				list1=expargval.split(';')
+    				list2=actargval.split(';')
+    				if len(list1) == len(list2):
+    				    for i in range(0,len(list1)):
+    				    	if list1[i].find(os.sep+'tsrc') != -1:
+    				    		list1[i]=list1[i][ list1[i].index(os.sep+'tsrc') : len(list1[i]) ]
+    				    		list2[i]=list2[i][ list2[i].index(os.sep+'tsrc') : len(list2[i]) ]
+    				    	else:
+    				    		list1[i]=list1[i][ list1[i].index(os.sep+'data') : len(list1[i]) ]
+    				    		list2[i]=list2[i][ list2[i].index(os.sep+'data') : len(list2[i]) ]
+    				    found=checklists(list1,list2)
+    				break
+					
+    			if exparg in "baselinedlldir currentdlldir reportfile".split():
+    				list1=expargval.split(';')
+    				list2=actargval.split(';')
+    				if len(list1) == len(list2):
+    					  if actargval.find('.xml') != -1 and  expargval.find('.xml') != -1:
+    					  	found = True
+    					  	break
+
+    					  for i in range(0,len(list1)):
+    					    list1[i]=list1[i][ list1[i].index(os.sep+'tsrc') : len(list1[i]) ]
+    					    list2[i]=list2[i][ list2[i].index(os.sep+'tsrc') : len(list2[i]) ]
+    					  found=checklists(list1,list2)
+    				    
+    				break
+    				
+    			if exparg == 'set':
+    				if expparent.getElementsByTagName("haversion").length > 0:
+    					if expargval == actargval:
+    						found=True
+    					break	
+    				if expparent.getElementsByTagName("laversion").length > 0:
+    					if expargval.rfind(os.sep) != -1:
+    						expargval=expargval[ expargval.rindex(os.sep) : len(expargval) ]
+    						actargval=actargval[ actargval.rindex(os.sep) : len(actargval) ]
+    					if expargval == actargval:
+    						found=True
+    					break
+    						
+    			if actarg == 'commandfile':
+    				if expargval.rfind(os.sep) != -1:
+    					expargval=expargval[ expargval.rindex(os.sep) : len(expargval) ]
+    					actargval=actargval[ actargval.rindex(os.sep) : len(actargval) ]
+    					if expargval == actargval:
+    						found=True
+    					break
+    						
+    			if exparg in "tools temp".split():
+    				found=True
+    				break
+    	
+    	if not found:
+    		return False
+  		
+    return True
+    			
+#print checkreports('headers_test_17')		
+#print child  		
+    
+
+#Test without passing any parameters, procees should return 1 on exit
+def test_00():
+    print "Executing test: test_00"
+    str = 'FAILED'
+    args = ""
+    res = repr(runTest(args))
+    if failUnless(res, '3'):
+        str = 'PASSED'
+    return tuple(['3', res, str])
+
+#Test passing help parameters, procees should return 1 on exit    
+def test_01():
+    print "Executing test: test_01"
+    str = 'FAILED'
+    args = " -h"
+    res = repr(runTest(args))
+    if failUnless(res, '8'):
+        str = 'PASSED'
+    return tuple(['8', res, str])        
+
+#Test tool version parameter, process should return 1 on exit
+def test_02():
+    print "Executing test: test_02"
+    str = 'FAILED'
+    v = re.compile('[1-9]+[.][0-9]+[.][0-9]+[ ][-][ ]([12]?[0-9]+|30|31)(nd|st|th|rd)[ ](January|February|March|April|May|June|July|August|September|October|November|December)[ ](2008|2009|2010)')
+    res = ''
+    args = " -v > test_02.txt"
+    runTest(args)
+    f = open('test_02.txt')
+    for line in f:
+        res = line
+        if re.match( v, line):
+            str = 'PASSED'
+        print line    
+    f.close()
+    os.remove('test_02.txt')
+    return tuple(['format : xx.yy.zz - dd month yyyy', res, str])
+
+#Test data version parameter, process should return 1 on exit
+def test_03():
+    print "Executing test: test_03"
+    str = 'FAILED'
+    res = ''
+    args = " -dv > test_03.txt"
+    runTest(args)
+    f = open('test_03.txt')
+    for line in f:
+        try:
+            res = int(line)
+        except ValueError:            
+            pass
+        else:
+            if ( 0 < res <= 9 ):
+                str = 'PASSED'            
+    f.close()
+    os.remove('test_03.txt')
+    return tuple(['integer value 0-9', repr(res), str])
+
+#Test wrong parameters, process should return 3 on exit        
+def test_04():
+    print "Executing test: test_04"
+    str = 'FAILED'
+    args = " report.xml temp/config -j -d file -b"
+    res = repr(runTest(args))
+    if failUnless(res, '3'):
+        str = 'PASSED'
+    return tuple(['3', res, str])
+
+#Test passing both header&libary analysis input
+def test_05():
+    print "Executing test: test_05"
+    str = 'FAILED'
+    cmt = ['BASELINE_HEADERS', 'CURRENT_HEADERS', 'EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER' ]
+    comment(cmt, {})
+    args = " temp/config -ha -la -f test_05"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):
+    	if checkreports('headers_test_05') and checkreports('libraries_test_05'):
+    	    str = 'PASSED'
+    return tuple(['0', res, str])
+
+#Test execution for all headers only        
+def test_06():
+    print "Executing test: test_06"
+    str = 'FAILED'
+    cmt = ['REPLACE_HEADERS' ]
+    comment(cmt, {'EXCLUDE_DIR_HEADERS':''})
+    args = " temp/config -ha test_06"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):
+        if checkreports('headers_test_06'):
+            str = 'PASSED'
+    return tuple(['0', res, str])
+
+#Test executiion for all libraries only      
+def test_07():
+    print "Executing test: test_07"
+    str = 'FAILED'
+    cmt = ['EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER' ]
+    comment(cmt, {})
+    args = " temp/config -la test_07"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):
+        if checkreports('libraries_test_07'):
+            str = 'PASSED'
+    return tuple(['0', res, str])
+
+#Test execution for all headers & filter        
+def test_08():
+    print "Executing test: test_08"
+    str = 'FAILED'
+    cmt = ['EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER', 'REPORT_FILE_LIBRARIES', 'FILTER_FILE_LIBRARIES' ]
+    comment(cmt, {})
+    args = " temp/config -ha -f test_08"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):
+        if checkreports('headers_test_08'):
+            str = 'PASSED'
+    return tuple(['0', res, str])
+
+#Test execution for all libraries & filter        
+def test_09():
+    print "Executing test: test_09"
+    str = 'FAILED'
+    cmt = ['EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_HEADERS', 'FILTER_FILE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER' ]
+    comment(cmt, {})
+    args = " temp/config -la -f test_09"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):    
+        if checkreports('libraries_test_09'):
+            str = 'PASSED'
+    return tuple(['0', res, str])
+
+#Test execution for only filtering        
+def test_10():
+    print "Executing test: test_10"
+    str = 'FAILED'
+    shutil.copy(os.getcwd()+'/testdata/SAReport_test_10.xml',os.getcwd()+'/testdata/SAReport_test_10.xml.bak')
+    cmt = ['EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_HEADERS', 'FILTER_FILE_HEADERS', 'REPORT_FILE_LIBRARIES', 'FILTER_FILE_LIBRARIES' ]
+    comment(cmt, {})
+    args = " temp/config -f test_10"
+    res = repr(runTest(args))
+    shutil.move(os.getcwd()+'/testdata/SAReport_test_10.xml.bak',os.getcwd()+'/testdata/SAReport_test_10.xml')
+    if failUnless(res, '0'):
+        str = 'PASSED'
+    return tuple(['0', res, str])
+
+#Test execution for multiple header analysis followed by filtering        
+def test_11():
+    print "Executing test: test_11"
+    str = 'FAILED'
+    cmt = ['EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER', 'REPORT_FILE_LIBRARIES', 'FILTER_FILE_LIBRARIES' ]
+    comment(cmt, {})
+    args = " temp/config -hm tsrc/testdata/headers.txt -f test_11"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):
+    	if checkreports('headers_test_11'):
+    	    str = 'PASSED'
+    return tuple(['0', res, str])
+
+#Test execution for multiple library analysis followed by filtering        
+def test_12():
+    print "Executing test: test_12"
+    str = 'FAILED'
+    cmt = ['EXCLUDE_DIR_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER', 'REPORT_FILE_HEADERS', 'FILTER_FILE_HEADERS' ]
+    comment(cmt, {})
+    args = " temp/config -lm tsrc/testdata/libraries.txt -f test_12"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):
+        if checkreports('libraries_test_12'):
+            str = 'PASSED'
+    return tuple(['0', res, str])
+
+#Test execution combining both multiple header and library analysis
+def test_13():
+    print "Executing test: test_13"
+    str = 'FAILED'
+    cmt = ['EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER' ]
+    comment(cmt, {})
+    args = " temp/config -lm tsrc/testdata/libraries.txt -hm tsrc/testdata/headers.txt -f test_13"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):
+        if checkreports('libraries_test_13') and checkreports('headers_test_13'):
+            str = 'PASSED'
+    return tuple(['0', res, str])
+    
+#Test execution for single header and single library analysis followed by filtering        
+def test_14():
+    print "Executing test: test_14"
+    str = 'FAILED'
+    cmt = ['EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER' ]
+    comment(cmt, {})
+    args = " temp/config -hs e32notif.h -ls agentdialog.dso -f test_14"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):
+    	if checkreports('headers_test_14') and checkreports('libraries_test_14'):
+    	    str = 'PASSED'
+    return tuple(['0', res, str])
+
+#Test execution for single header analysis followed by filtering        
+def test_15():
+    print "Executing test: test_15"
+    str = 'FAILED'
+    cmt = ['EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER', 'REPORT_FILE_LIBRARIES', 'FILTER_FILE_LIBRARIES' ]
+    comment(cmt, {})
+    args = " temp/config -hs bitbase.h -f test_15"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):
+        if checkreports('headers_test_15'):
+            str = 'PASSED'
+    return tuple(['0', res, str])
+
+#Test execution for single library analysis followed by filtering        
+def test_16():
+    print "Executing test: test_16"
+    str = 'FAILED'
+    cmt = ['REPORT_FILE_HEADERS', 'FILTER_FILE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER', 'EXCLUDE_DIR_HEADERS' ]
+    comment(cmt, {})
+    args = " temp/config -ls cafutils.dso -f test_16"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):
+        if checkreports('libraries_test_16'):
+            str = 'PASSED'
+    return tuple(['0', res, str])
+
+#Test replace headers parameters
+def test_17():
+    print "Executing test: test_17"
+    str = 'FAILED'
+    cmt = ['EXCLUDE_DIR_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER', 'REPORT_FILE_LIBRARIES', 'FILTER_FILE_LIBRARIES' ]
+    comment(cmt, {'REPLACE_HEADERS':'myheaderbase.h:myheadera.h'})
+    args = " temp/config -hs myheaderbase.h -f test_17"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):
+        if checkreports('headers_test_17'):
+            str = 'PASSED'
+    return tuple(['0', res, str])
+
+#Test Exclude directories
+def test_18():
+    print "Executing test: test_18"
+    str = 'FAILED'
+    cmt = ['REPLACE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER', 'REPORT_FILE_LIBRARIES', 'FILTER_FILE_LIBRARIES' ]
+    comment(cmt, {})
+    args = " temp/config -hs caf/agent.h -f test_18"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):
+        if checkreports('headers_test_18'):
+            str = 'PASSED'
+    return tuple(['0', res, str])
+
+#Test default Toolchain 
+def test_19():
+    print "Executing test: test_19"
+    str = 'FAILED'
+    cmt = ['TOOLCHAIN', 'EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER', 'FILTER_FILE_HEADERS', 'REPORT_FILE_HEADERS' ]
+    comment(cmt, {})
+    args = " temp/config -ls bitgdi.dso -f test_19"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):
+        if checkreports('libraries_test_19'):
+            str = 'PASSED'
+    return tuple(['0', res, str])
+
+#Test armv5 toolchain
+def test_20():
+    print "Executing test: test_20"
+    str = 'FAILED'
+    cmt = ['EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_HEADERS', 'FILTER_FILE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER' ]
+    comment(cmt, {'TOOLCHAIN':'rvct', 'TOOLCHAIN_PATH':os.environ.get('RVCT22BIN')})
+    args = " temp/config -ls audioequalizerutility.dso -f test_20"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):
+        if checkreports('libraries_test_20'):
+            str = 'PASSED'
+    return tuple(['0', res, str])
+
+#Test without toochain path
+def test_21():
+    print "Executing test: test_21"
+    str = 'FAILED'
+    cmt = ['EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_HEADERS', 'FILTER_FILE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER' ]
+    if os.name == 'nt':	
+        comment(cmt, {'TOOLCHAIN_PATH':''})
+    else:
+        print "Testcase currently not valid for Linux\n"
+    args = " temp/config -ls c32.dso -f test_21"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):
+        if checkreports('libraries_test_21'):
+            str = 'PASSED'
+    return tuple(['0', res, str])
+
+#Test without platform data
+def test_22():
+    print "Executing test: test_22"
+    str = 'FAILED'
+    cmt = ['EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_LIBRARIES', 'FILTER_FILE_LIBRARIES', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER' ]
+    comment(cmt, {'USE_PLATFORM_DATA':'false'})
+    args = " temp/config -hs s32strm.h -f test_22"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):
+        if checkreports('headers_test_22'):
+            str = 'PASSED'
+    return tuple(['0', res, str])
+    
+#Test carbide plugin options
+def test_23():
+    print "Executing test: test_23"
+    str = 'FAILED'
+    res = 'PID value in integer'
+    terms = []
+    cmt = ['EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER' ]
+    comment(cmt, {})
+    args = " temp/config -c -hs e32notif.h -ls caleninterimutils.dso -f test_23 > test_23.txt"
+    runTest(args)
+    f = open('test_23.txt')
+    for line in f:
+        print line
+        if line.find('PID:') != -1:
+            terms = line.split(':')
+            try:
+                val = int(terms[1])
+            except ValueError:
+                res = 'not integer'
+                str = 'FAILED'
+                break
+            else:
+                if (0 < val <= 100000):
+                    str = 'PASSED'
+    f.close()
+    os.remove('test_23.txt')
+    return tuple(['integer 1-100000', res, str])
+
+#Test execution without passing config file
+def test_24():
+    print "Executing test: test_24"
+    str = 'FAILED'
+    args = " -ha -la -f test_24"
+    res = repr(runTest(args))
+    if failUnless(res, '3'):
+        str = 'PASSED'
+    return tuple(['3', res, str])
+
+#Test execution without passing report-id
+def test_25():
+    print "Executing test: test_25"
+    str = 'FAILED'
+    cmt = ['REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER', 'EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS' ]
+    comment(cmt, {})
+    args = " temp/config -hs e32notif.h -ls aknnotify.dso -f test_25"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):
+        if checkreports('headers_test_25') and checkreports('libraries_test_25'):
+            str = 'PASSED'
+    return tuple(['0', res, str])
+
+#Test execution for recursive headers     
+def test_26():
+    print "Executing test: test_26"
+    str = 'FAILED'
+    cmt = ['RECURSIVE_HEADERS', 'EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER', 'REPORT_FILE_LIBRARIES', 'FILTER_FILE_LIBRARIES' ]
+    comment(cmt, {})
+    args = " temp/config -hs e32notif.h test_26"
+    res=repr(runTest(args))
+    if failUnless(res, '0'):
+        if checkreports('headers_test_26'):
+            str = 'PASSED'
+    return tuple(['0', res, str])
+    
+#Test execution for only filtering without issue file specified in config        
+def test_27():
+    print "Executing test: test_27"
+    str = 'FAILED'
+    shutil.copy(os.getcwd()+'/testdata/SAReport_test_10.xml',os.getcwd()+'/testdata/SAReport_test_10.xml.bak')
+    cmt = ['ISSUES_FILE', 'EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_HEADERS', 'FILTER_FILE_HEADERS', 'REPORT_FILE_LIBRARIES', 'FILTER_FILE_LIBRARIES' ]
+    comment(cmt, {})
+    args = " temp/config -f test_10"
+    res = repr(runTest(args))
+    shutil.move(os.getcwd()+'/testdata/SAReport_test_10.xml.bak',os.getcwd()+'/testdata/SAReport_test_10.xml')
+    if failUnless(res, '0'):
+        str = 'PASSED'
+    return tuple(['0', res, str])
+    
+#Test execution without passing the temp parameter
+def test_28():
+    print "Executing test: test_28"
+    str = 'FAILED'
+    cmt = ['TEMP', 'EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER' ]
+    comment(cmt, {})
+    args = " temp/config -hs e32notif.h -ls agentdialog.dso test_28"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):
+        if checkreports('headers_test_28') and checkreports('libraries_test_28'):
+            str = 'PASSED'
+    shutil.rmtree(DEFAULT_TEMP)
+    return tuple(['0', res, str])
+
+#Test execution to check baseline_sdk_dir and current_sdk_dir mandatory.
+def test_29():
+    print "Executing test: test_29"
+    str = 'FAILED'
+    cmt = ['TEMP','BASELINE_SDK_DIR', 'CURRENT_SDK_DIR']
+    comment(cmt, {})
+    args = " temp/config -hs e32notif.h -ls agentdialog.dso test_29"
+    res = repr(runTest(args))
+    if failUnless(res, '6'):
+      str = 'PASSED'
+    shutil.rmtree(DEFAULT_TEMP)
+    return tuple(['0', res, str])
+
+#Test execution for relative path in baseline headers     
+def test_30():
+    print "Executing test: test_30"
+    str = 'FAILED'
+    cmt = ['REPLACE_HEADERS' ]
+    comment(cmt, {'BASELINE_HEADERS':'ecom'})
+    args = " temp/config -ha test_30"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):
+      if checkreports('headers_test_30'):
+        str = 'PASSED'
+    return tuple(['0', res, str])
+
+#Test execution to check for dependency between import library and dll    
+def test_31():
+    print "Executing test: test_31"
+    str = 'FAILED'
+    cmt = ['EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_HEADERS', 'FILTER_FILE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER','BASELINE_IMPORTDLLS' ]
+    comment(cmt, {})
+    args = " temp/config -la -f test_31"
+    res = repr(runTest(args))
+    if failUnless(res, '6'):
+    	str = 'PASSED'
+    return tuple(['0', res, str])
+    
+#Test execution only with default sdk, not import library and dll    
+def test_32():
+    print "Executing test: test_32"
+    str = 'FAILED'
+    cmt = ['EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_HEADERS', 'FILTER_FILE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER','BASELINE_IMPORTLIBRARIES',
+            'CURRENT_IMPORTLIBRARIES','BASELINE_IMPORTDLLS','CURRENT_IMPORTDLLS']
+    comment(cmt, {})
+    args = " temp/config -la test_32"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):    
+        if checkreports('libraries_test_32'):
+            str = 'PASSED'
+    return tuple(['0', res, str])
+
+#Test execution with import library and dll    
+def test_33():
+    print "Executing test: test_33"
+    str = 'FAILED'
+    cmt = ['EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_HEADERS', 'FILTER_FILE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER']
+    comment(cmt, {})
+    args = " temp/config -la test_33"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):    
+        if checkreports('libraries_test_33'):
+            str = 'PASSED'
+    return tuple(['0', res, str])
+    
+#Test execution with multiple build target    
+def test_34():
+    print "Executing test: test_34"
+    str = 'FAILED'
+    cmt = ['EXCLUDE_DIR_HEADERS', 'REPLACE_HEADERS', 'REPORT_FILE_HEADERS', 'FILTER_FILE_HEADERS', 'REPORT_FILE_FILTER', 'OUTPUT_FILE_FILTER','BASELINE_IMPORTLIBRARIES',
+            'CURRENT_IMPORTLIBRARIES','BASELINE_IMPORTDLLS','CURRENT_IMPORTDLLS']
+    comment(cmt, {'BASELINE_BUILDTARGET':'ARMv5;ARMv6', 'CURRENT_BUILDTARGET':'ARMv5;ARMv6'})
+    args = " temp/config -la test_34"
+    res = repr(runTest(args))
+    if failUnless(res, '0'):    
+        if checkreports('libraries_test_34'):
+            str = 'PASSED'
+    return tuple(['0', res, str])