sbsv2/raptor/test/unit_suite/raptor_cli_unit.py
changeset 591 22486c9c7b15
child 674 37ee82a83d43
equal deleted inserted replaced
590:360bd6b35136 591:22486c9c7b15
       
     1 #
       
     2 # Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 # All rights reserved.
       
     4 # This component and the accompanying materials are made available
       
     5 # under the terms of the License "Eclipse Public License v1.0"
       
     6 # which accompanies this distribution, and is available
       
     7 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 #
       
     9 # Initial Contributors:
       
    10 # Nokia Corporation - initial contribution.
       
    11 #
       
    12 # Contributors:
       
    13 #
       
    14 # Description: 
       
    15 #
       
    16 
       
    17 # Unit Test for the Raptor_cli (command line interface) module
       
    18 
       
    19 import raptor_cli
       
    20 import sys
       
    21 import unittest
       
    22 import os,subprocess
       
    23 import re
       
    24 
       
    25 class TestRaptorCli(unittest.TestCase):
       
    26 
       
    27 	def setUp(self):
       
    28 		sbsHome = os.environ["SBS_HOME"]
       
    29 		self.windows = sys.platform.lower().startswith("win")
       
    30 		
       
    31 		self.doExportsOnly = False
       
    32 		self.whatDir = sbsHome + "/test/simple"
       
    33 		self.listconfig=[]
       
    34 		self.bldinfvalue=[]
       
    35 		self.makeoptions=[]
       
    36 		self.sysdeflayers=[]
       
    37 		self.sysdeforderlayers = True
       
    38 		self.whatlist = []
       
    39 		self.targets = []
       
    40 		self.regexpwin = re.compile(r"^[A-Za-z]:\\",re.I)
       
    41 		self.RunningQuiet = False
       
    42 		self.allowCommandLineOverrides = True
       
    43 		self.ignoreOsDetection = False
       
    44 		self.filterList = "filter_terminal,filter_logfile"
       
    45 		self.noDependInclude = False
       
    46 		self.noDependGenerate = False
       
    47 		
       
    48 	def AddConfigName(self,configname):
       
    49 		self.listconfig.append(configname)
       
    50 		return True
       
    51 
       
    52 	def AddConfigList(self,configlist):
       
    53 		return True
       
    54 
       
    55 	def AddSpecFile(self,specfilename):
       
    56 		self.listspec.append(specfilename)
       
    57 		return True
       
    58 
       
    59 	def SetRoot(self,root):
       
    60 		self.rootvalue = root
       
    61 		return True
       
    62 	
       
    63 	def SetCheck(self,check):
       
    64 		self.doCheck = check
       
    65 		return True
       
    66 	
       
    67 	def SetWhat(self,what):
       
    68 		self.doWhat = what
       
    69 		return True
       
    70 	
       
    71 	def SetTries(self,tries):
       
    72 		self.tries = tries
       
    73 		return True
       
    74 		
       
    75 	def SetSysDefFile(self,sysdef):
       
    76 		self.sysdefvalue = sysdef
       
    77 		return True
       
    78 			
       
    79 	def SetSysDefBase(self,sysdefbase):
       
    80 		self.sysdefbasevalue = sysdefbase
       
    81 		return True
       
    82 
       
    83 	def AddSysDefLayer(self,sysdeflayer):
       
    84 		self.sysdeflayers.append(sysdeflayer)
       
    85 		return True
       
    86 
       
    87 	def SetSysDefOrderLayers(self,sysdeforderlayers):
       
    88 		self.sysdeflayers = sysdeforderlayers
       
    89 		return True
       
    90 
       
    91 	def AddBuildInfoFile(self,bldinf):
       
    92 		self.bldinfvalue.append(bldinf)
       
    93 		return True
       
    94 
       
    95 	def RunQuietly(self,QuietMode):
       
    96 		self.RunningQuiet = QuietMode
       
    97 		return True
       
    98 
       
    99 	def SetTopMakefile(self,topmake):
       
   100 		self.topmake = topmake
       
   101 		return True
       
   102 	
       
   103 	def SetLogFileName(self, logfile):
       
   104 		self.logFileName = logfile
       
   105 		return True
       
   106 		
       
   107 	def SetMakeEngine(self, engine):
       
   108 		self.makeEngine = engine
       
   109 		return True
       
   110 		
       
   111 	def AddMakeOption(self, makeOption):
       
   112 		self.makeOptions.append(makeOption)
       
   113 		return True
       
   114 			
       
   115 	def SetDebugOutput(self, filename):
       
   116 		return True
       
   117 		
       
   118 	def SetExportOnly(self, yesOrNo):
       
   119 		self.doExportOnly = yesOrNo
       
   120 		return True
       
   121 
       
   122 	def SetNoExport(self, yesOrNo):
       
   123 		self.doExport = not yesOrNo
       
   124 		return True
       
   125 	
       
   126 	def SetKeepGoing(self, yesOrNo):
       
   127 		return True
       
   128 	
       
   129 	def SetNoBuild(self, yesOrNo):
       
   130 		return True
       
   131 	
       
   132 	def SetNoDependInclude(self, yesOrNo):
       
   133 		self.noDependInclude = yesOrNo
       
   134 		return True
       
   135 
       
   136 	def SetNoDependGenerate(self, yesOrNo):
       
   137 		self.noDependGenerate = yesOrNo
       
   138 		return True
       
   139 		
       
   140 	def SetJobs(self, N):
       
   141 		return True
       
   142 
       
   143 	def SetToolCheck(self, toolcheck):
       
   144 		return True
       
   145 	
       
   146 	def SetTiming(self, yesOrNo):
       
   147 		return True
       
   148 
       
   149 	def SetParallelParsing(self, onoroff):
       
   150 		self.pp=onoroff
       
   151 		return True
       
   152 
       
   153 	def AddProject(self, project):
       
   154 		return True
       
   155 
       
   156 	def AddQuery(self, query):
       
   157 		return True
       
   158 	
       
   159 	def PrintVersion(self):
       
   160 		return True
       
   161 			 			 
       
   162 	def Info(self, format, *extras):
       
   163 		"Send an information message to the configured channel"
       
   164 		if self.RunningQuiet==False:
       
   165 			sys.stdout.write(("INFO: " + format + "\n") % extras)
       
   166 
       
   167 	def Warn(self, format, *extras):
       
   168 		"Send a warning message to the configured channel"
       
   169 		sys.stdout.write(("WARNING: " + format + "\n") % extras)
       
   170 		
       
   171 	def IgnoreOsDetection(self, value):
       
   172 		self.ignoreOsDetection = value
       
   173 		return True
       
   174 	
       
   175 	def FilterList(self, value):
       
   176 		self.filterList = value
       
   177 		return True
       
   178 	
       
   179 	def AddSourceTarget(self, filename):
       
   180 		self.targets.append(filename)
       
   181 	
       
   182 	def testDoRaptor(self):
       
   183 		args = ['-c','config1',
       
   184 				'-c','config name with spaces',
       
   185 				'-s', 'wrong_file.xml',
       
   186 				'--sysdef', 'system_definition.xml',
       
   187 				'-a', 'wrong_base_dir',
       
   188 				'--sysdefbase', 'C:\definitions',
       
   189 				'-l', 'a_layer',
       
   190 				'--layer', 'b_layer',
       
   191 				'-b', 'bld1.inf',
       
   192 				'--bldinf', 'bld2.inf',
       
   193 				'-f', 'a_log_file.log',
       
   194 				'-m', 'top.mk',
       
   195 				'--makefile', '/home/Makefile',
       
   196 				'--filters', 'filter_01,filter_02',
       
   197 				'--export-only',
       
   198 				'--source-target', 'some_source_file.cpp',
       
   199 				'--source-target', 'some_resource_file.rss',
       
   200 				'--pp', 'on',
       
   201 				'--no-depend-include',
       
   202 				'--no-depend-generate']
       
   203 		
       
   204 		raptor_cli.GetArgs(self,args)
       
   205 		self.assertEqual(self.RunningQuiet,False)
       
   206 		self.assertEqual(self.listconfig[0],'config1')
       
   207 		self.assertEqual(self.listconfig[1],'config name with spaces')
       
   208 		self.assertEqual(self.sysdefvalue,'system_definition.xml')
       
   209 		self.assertEqual(self.sysdefbasevalue,'C:\\definitions')
       
   210 		self.assertEqual(self.sysdeflayers[0],'a_layer')
       
   211 		self.assertEqual(self.sysdeflayers[1],'b_layer')
       
   212 		self.assertEqual(self.bldinfvalue[0],'bld1.inf')
       
   213 		self.assertEqual(self.bldinfvalue[1],'bld2.inf')
       
   214 		self.assertEqual(self.topmake,'/home/Makefile')
       
   215 		self.assertEqual(self.logFileName,'a_log_file.log')
       
   216 		self.assertEqual(self.filterList,'filter_01,filter_02')
       
   217 		self.assertEqual(self.doExportOnly,True)
       
   218 		self.assertEqual(self.targets[0], 'some_source_file.cpp')
       
   219 		self.assertEqual(self.targets[1], 'some_resource_file.rss')
       
   220 		self.assertEqual(self.pp, 'on')
       
   221 		self.assertEqual(self.noDependInclude, True)
       
   222 		self.assertEqual(self.noDependGenerate, True)
       
   223 
       
   224 # run all the tests
       
   225 
       
   226 from raptor_tests import SmokeTest
       
   227 
       
   228 def run():
       
   229 	t = SmokeTest()
       
   230 	t.id = "999"
       
   231 	t.name = "raptor_cli_unit"
       
   232 
       
   233 	tests = unittest.makeSuite(TestRaptorCli)
       
   234 	result = unittest.TextTestRunner(verbosity=2).run(tests)
       
   235 
       
   236 	if result.wasSuccessful():
       
   237 		t.result = SmokeTest.PASS
       
   238 	else:
       
   239 		t.result = SmokeTest.FAIL
       
   240 
       
   241 	return t