sbsv2/raptor/test/unit_suite/raptor_meta_unit.py
author Jon Chatten
Thu, 26 Aug 2010 13:41:01 +0100
changeset 630 31ef8a13d4f4
parent 625 a1925fb7753a
child 674 37ee82a83d43
permissions -rw-r--r--
sbs version 2.15.1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     1
#
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     2
# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     3
# All rights reserved.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     4
# This component and the accompanying materials are made available
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     5
# under the terms of the License "Eclipse Public License v1.0"
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     6
# which accompanies this distribution, and is available
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     8
#
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     9
# Initial Contributors:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    10
# Nokia Corporation - initial contribution.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    11
#
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    12
# Contributors:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    13
#
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    14
# Description: 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    15
# raptor_meta_unit module
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    16
# This module tests the classes forming the Raptor bld.inf and .mmp parsing support
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    17
#
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    18
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    19
import raptor
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    20
import raptor_meta
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    21
import raptor_utilities
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    22
import raptor_data
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    23
import mmpparser
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    24
import unittest
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    25
import generic_path
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    26
import os
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    27
import sys
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    28
import re
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    29
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    30
class TestRaptorMeta(unittest.TestCase):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    31
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    32
	def setUp(self):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    33
		self.raptor = raptor.Raptor()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    34
		self.__testRoot = generic_path.Path(os.environ[raptor.env], "test").Absolute()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    35
		self.__makefilePathTestRoot = self.__testRoot
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    36
		self.__epocroot = self.__testRoot
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    37
		self.__variant_cfg_root = self.__testRoot.Append('metadata/config')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    38
		self.__variant_cfg = self.__variant_cfg_root.Append('test_cfg.cfg')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    39
		self.__platmacros_armv5 = "ARMCC EPOC32 MARM EABI ARMCC_2 ARMCC_2_2 GENERIC_MARM MARM_ARMV5"
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    40
		self.__platmacros_armv6 = "ARMCC EPOC32 MARM EABI ARMCC_2 ARMCC_2_2 GENERIC_MARM MARM_ARMV5 ARMV6"
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    41
		self.__platmacros_armv7 = "ARMCC EPOC32 MARM EABI ARMCC_2 ARMCC_2_2 GENERIC_MARM MARM_ARMV5 ARMV7"
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    42
		self.__platmacros_winscw = "CW32 WINS WINSCW"
625
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
    43
		self.__platmacros_x86gcc = "X86GCC EPOC32"
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    44
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    45
		self.variant_hrh = self.__testRoot.Append('metadata/include/test_hrh.hrh')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    46
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    47
		self.__OSRoot = ""
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    48
		if raptor_utilities.getOSFileSystem() == "cygwin":
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    49
			self.__OSRoot = str(self.__makefilePathTestRoot)[:2]
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    50
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    51
		# we need some sort of generic platform for preprocessing
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    52
		self.defaultPlatform = { 'PLATFORM': 'generic',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    53
							     'EPOCROOT': self.__epocroot,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    54
							     'VARIANT_HRH': self.variant_hrh,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    55
							     'SYSTEMINCLUDE' : '',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    56
							     'id': 0,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    57
							     'key': '0000000000000000',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    58
							     'key_md5': '0000000000000000',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    59
							     'ISFEATUREVARIANT' : False,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    60
							     'PLATMACROS' : self.__platmacros_armv5,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    61
								 'SBS_BUILD_DIR' : str(self.__epocroot) + "/epoc32/build",
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    62
								 'METADEPS' : [] 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    63
							   }
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    64
		# For testing purposes, the ARMV5 platform is flagged here as feature variant.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    65
		# In metadata processing terms, this means that the location of the HRH file
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    66
		# is not automatically added to the SYSTEMINCLUDE path, and so is specified
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    67
		# directly.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    68
		self.ARMV5           = { 'PLATFORM': 'ARMV5',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    69
							     'EPOCROOT': self.__epocroot,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    70
							     'VARIANT_HRH': self.variant_hrh,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    71
							     'SYSTEMINCLUDE' : str(self.variant_hrh.Dir()),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    72
							     'id': 1,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    73
							     'key': '1111111111111111',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    74
							     'key_md5': '1111111111111111',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    75
							     'ISFEATUREVARIANT' : True,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    76
							     'PLATMACROS' : self.__platmacros_armv5,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    77
								 'SBS_BUILD_DIR' : str(self.__epocroot) + "/epoc32/build",
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    78
								 'METADEPS' : [] 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    79
							   }
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    80
		self.ARMV5SMP        = { 'PLATFORM': 'ARMV5SMP',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    81
							     'EPOCROOT': self.__epocroot,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    82
							     'VARIANT_HRH': self.variant_hrh,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    83
							     'SYSTEMINCLUDE' : str(self.variant_hrh.Dir()),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    84
							     'id': 1,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    85
							     'key': '1111111111111111',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    86
							     'key_md5': '1111111111111111',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    87
							     'ISFEATUREVARIANT' : False,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    88
							     'PLATMACROS' : self.__platmacros_armv5,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    89
								 'SBS_BUILD_DIR' : str(self.__epocroot) + "/epoc32/build",
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    90
								 'METADEPS' : [] 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    91
							   }
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    92
		self.ARMV6           = { 'PLATFORM': 'ARMV6',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    93
							     'EPOCROOT': self.__epocroot,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    94
							     'VARIANT_HRH': self.variant_hrh,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    95
							     'SYSTEMINCLUDE' : str(self.variant_hrh.Dir()),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    96
							     'id': 1,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    97
							     'key': '1111111111111111',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    98
							     'key_md5': '1111111111111111',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    99
							     'ISFEATUREVARIANT' : False,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   100
							     'PLATMACROS' : self.__platmacros_armv6,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   101
								 'SBS_BUILD_DIR' : str(self.__epocroot) + "/epoc32/build",
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   102
								 'METADEPS' : [] 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   103
							   }
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   104
		self.ARMV7           = { 'PLATFORM': 'ARMV7',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   105
							     'EPOCROOT': self.__epocroot,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   106
							     'VARIANT_HRH': self.variant_hrh,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   107
							     'SYSTEMINCLUDE' : str(self.variant_hrh.Dir()),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   108
							     'id': 1,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   109
							     'key': '1111111111111111',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   110
							     'key_md5': '1111111111111111',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   111
							     'ISFEATUREVARIANT' : False,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   112
							     'PLATMACROS' : self.__platmacros_armv7,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   113
								 'SBS_BUILD_DIR' : str(self.__epocroot) + "/epoc32/build",
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   114
								 'METADEPS' : [] 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   115
							   }
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   116
		self.ARMV7SMP         = { 'PLATFORM': 'ARMV7SMP',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   117
							     'EPOCROOT': self.__epocroot,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   118
							     'VARIANT_HRH': self.variant_hrh,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   119
							     'SYSTEMINCLUDE' : str(self.variant_hrh.Dir()),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   120
							     'id': 1,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   121
							     'key': '1111111111111111',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   122
							     'key_md5': '1111111111111111',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   123
							     'ISFEATUREVARIANT' : False,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   124
							     'PLATMACROS' : self.__platmacros_armv7,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   125
								 'SBS_BUILD_DIR' : str(self.__epocroot) + "/epoc32/build",
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   126
								 'METADEPS' : [] 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   127
							   }
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   128
		self.WINSCW          = { 'PLATFORM': 'WINSCW',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   129
							     'EPOCROOT': self.__epocroot,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   130
							     'VARIANT_HRH': self.variant_hrh,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   131
							     'SYSTEMINCLUDE' : '',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   132
							     'id': 2,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   133
							     'key': '2222222222222222',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   134
							     'key_md5': '2222222222222222',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   135
							     'ISFEATUREVARIANT' : False,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   136
							     'PLATMACROS' : self.__platmacros_winscw,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   137
								 'SBS_BUILD_DIR' : str(self.__epocroot) + "/epoc32/build",
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   138
								 'METADEPS' : [] 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   139
							   }
625
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   140
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   141
		self.X86GCC          = { 'PLATFORM': 'X86',
625
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   142
							     'EPOCROOT': self.__epocroot,
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   143
							     'VARIANT_HRH': self.variant_hrh,
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   144
							     'SYSTEMINCLUDE' : '',
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   145
							     'id': 2,
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   146
							     'key': '2222222222222222',
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   147
							     'key_md5': '2222222222222222',
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   148
							     'ISFEATUREVARIANT' : False,
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   149
							     'PLATMACROS' : self.__platmacros_x86gcc,
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   150
								 'SBS_BUILD_DIR' : str(self.__epocroot) + "/epoc32/build",
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   151
								 'METADEPS' : [] 
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   152
							   }
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   153
				
625
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   154
		self.testPlats = [self.ARMV5, self.ARMV5SMP, self.ARMV6, self.ARMV7, self.ARMV7SMP, self.WINSCW, self.X86GCC]
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   155
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   156
		# Get the version of CPP that we are using and hope it's correct
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   157
		# since there is no tool check.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   158
		if os.environ.has_key('SBS_GNUCPP'):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   159
			self.__gnucpp = os.environ['SBS_GNUCPP']
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   160
		else: 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   161
			self.__gnucpp = "cpp" 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   162
	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   163
	def testPreProcessor(self):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   164
		# Just test for correct behaviour on failure, other tests excercise correct behaviour on success
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   165
		preProcessor = raptor_meta.PreProcessor('cpp_that_does_not_exist', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   166
											    '-undef -nostdinc', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   167
											    '-I', '-D', '-include',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   168
											    self.raptor)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   169
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   170
		try:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   171
			 preProcessor.preprocess()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   172
		except Exception, e:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   173
			self.assertTrue(isinstance(e, raptor_meta.MetaDataError))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   174
			self.assertTrue(re.match('^Preprocessor exception', e.Text))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   175
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   176
	def testConfigParsing(self):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   177
		# .cfg file specified, but does not exist		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   178
		try:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   179
			configDetails = raptor_meta.getVariantCfgDetail(self.__epocroot, 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   180
														    self.__variant_cfg_root.Append("missing"))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   181
		except Exception, e:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   182
			self.assertTrue(isinstance(e, raptor_meta.MetaDataError))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   183
			self.assertTrue(re.match('^Could not read variant configuration file.*$', e.Text))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   184
			
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   185
		# No .hrh file specified
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   186
		try:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   187
			configDetails = raptor_meta.getVariantCfgDetail(self.__epocroot,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   188
														    self.__variant_cfg_root.Append("empty_cfg.cfg"))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   189
		except Exception, e:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   190
			self.assertTrue(isinstance(e, raptor_meta.MetaDataError))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   191
			self.assertTrue(re.match('No variant file specified in .*', e.Text))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   192
					
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   193
		# .hrh file does not exist
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   194
		try:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   195
			configDetails = raptor_meta.getVariantCfgDetail(self.__epocroot,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   196
														    self.__variant_cfg_root.Append("invalid_cfg.cfg"))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   197
		except Exception, e:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   198
			self.assertTrue(isinstance(e, raptor_meta.MetaDataError))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   199
			self.assertTrue(re.match('Variant file .* does not exist', e.Text))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   200
				
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   201
		# Valid .cfg file
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   202
		configDetails = raptor_meta.getVariantCfgDetail(self.__epocroot, 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   203
													    self.__variant_cfg)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   204
		self.failUnless(configDetails)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   205
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   206
		found_variant_hrh = str(configDetails.get('VARIANT_HRH'))	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   207
		expected_variant_hrh = str(self.variant_hrh)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   208
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   209
		self.assertEqual(found_variant_hrh, expected_variant_hrh)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   210
	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   211
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   212
	def __testBuildPlatforms(self, aRootBldInfLocation, aBldInfFile, 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   213
							 aExpectedBldInfPlatforms, aExpectedBuildablePlatforms):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   214
		bldInfFile = aRootBldInfLocation.Append(aBldInfFile)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   215
		self.failUnless(bldInfFile)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   216
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   217
		depfiles=[]
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   218
		bldInfObject = raptor_meta.BldInfFile(bldInfFile, self.__gnucpp, depfiles=depfiles, log=self.raptor)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   219
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   220
		bp = bldInfObject.getBuildPlatforms(self.defaultPlatform)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   221
		self.assertEquals(bp, aExpectedBldInfPlatforms)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   222
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   223
		buildableBldInfBuildPlatforms = raptor_meta.getBuildableBldInfBuildPlatforms(bp,
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   224
				'ARMV5 ARMV7 WINSCW X86',
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   225
				'ARMV5 ARMV5SMP ARMV7 WINSCW X86',
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   226
				'ARMV5 ARMV7 WINSCW X86')
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   227
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   228
		for expectedBuildablePlatform in aExpectedBuildablePlatforms:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   229
			self.assertTrue(expectedBuildablePlatform in buildableBldInfBuildPlatforms)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   230
			
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   231
		self.assertEqual(len(aExpectedBuildablePlatforms),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   232
						 len(buildableBldInfBuildPlatforms))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   233
		return
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   234
	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   235
	def testBldInfPlatformDeduction(self):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   236
		bldInfTestRoot = self.__testRoot.Append('metadata/project/bld.infs')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   237
				
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   238
		self.__testBuildPlatforms(bldInfTestRoot, 'no_prj_platforms.inf', 
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   239
								  [], ['ARMV7', 'ARMV5', 'WINSCW', 'GCCXML', 'X86'])
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   240
		self.__testBuildPlatforms(bldInfTestRoot, 'no_plats.inf', 
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   241
								  [], ['ARMV7', 'ARMV5', 'WINSCW', 'GCCXML', 'X86'])
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   242
		self.__testBuildPlatforms(bldInfTestRoot, 'default_plats.inf', 
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   243
								  ['DEFAULT'], ['ARMV7', 'ARMV5', 'WINSCW', 'GCCXML', 'X86'])
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   244
		self.__testBuildPlatforms(bldInfTestRoot, 'default_plats_minus_plat.inf', 
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   245
								  ['DEFAULT', '-WINSCW'], ['ARMV7', 'ARMV5', 'GCCXML', 'X86'])
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   246
		self.__testBuildPlatforms(bldInfTestRoot, 'single_plat.inf', 
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   247
								  ['ARMV5'], ['ARMV5', 'GCCXML'])
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   248
		self.__testBuildPlatforms(bldInfTestRoot, 'multiple_plats.inf', 
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   249
								  ['ARMV5', 'WINSCW', 'TOOLS', 'X86'], ['ARMV5', 'WINSCW', 'TOOLS', 'GCCXML', 'X86'])
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   250
		return
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   251
	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   252
	def __testBldInfTestCode(self, aTestRoot, aBldInf, aActual, aExpected):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   253
		loop_number = 0
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   254
		for actual in aActual:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   255
			self.assertEquals(actual, aExpected[loop_number])
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   256
			loop_number += 1
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   257
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   258
	def testBldInfTestType(self):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   259
		bldInfTestRoot = self.__testRoot.Append('metadata/project/mmps/test_mmps')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   260
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   261
		bldInfFile = bldInfTestRoot.Append('test_mmps.inf')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   262
		depfiles = []
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   263
		bldInfObject = raptor_meta.BldInfFile(bldInfFile, self.__gnucpp, depfiles=depfiles, log=self.raptor)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   264
		testArmv5Platform = self.ARMV5
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   265
		testArmv5Platform["TESTCODE"] = True
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   266
		bldInfObject.getRomTestType(testArmv5Platform)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   267
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   268
		self.__testBldInfTestCode(bldInfTestRoot, 'test_mmps.inf',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   269
				[bldInfObject.testManual, bldInfObject.testAuto], [1, 1])
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   270
	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   271
	def __testExport(self, aExportObject, aSource, aDestination, aAction):			
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   272
		self.assertEquals(aExportObject.getSource(), aSource)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   273
		self.assertEqualsOrContainsPath(aExportObject.getDestination(), aDestination)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   274
		self.assertEquals(aExportObject.getAction(), aAction)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   275
	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   276
	def assertEqualsOrContainsPath(self, aRequirement, aCandidate):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   277
		# If aRequirement is a list, which it might well be, we should
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   278
		# assert that aPathString is contained in it
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   279
		# If aRequirement not a list, it will be a string, and 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   280
		# we should assert equality of the strings
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   281
		# On windows we shouldn't care about the case of the drive letter.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   282
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   283
		if isinstance(aRequirement, list):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   284
			pathsequal = False
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   285
			for r in aRequirement:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   286
				pathsequal = path_compare_notdrivelettercase(r,aCandidate) or pathsequal
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   287
			self.assertTrue(pathsequal)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   288
		else:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   289
			self.assertTrue(path_compare_notdrivelettercase(aRequirement,aCandidate))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   290
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   291
	def testBldInfExports(self):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   292
		bldInfTestRoot = self.__testRoot.Append('metadata/project/bld.infs')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   293
		bldInfMakefilePathTestRoot = str(self.__makefilePathTestRoot) + '/metadata/project/'
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   294
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   295
		depfiles = []
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   296
		bldInfObject = raptor_meta.BldInfFile(bldInfTestRoot.Append('exports.inf'), 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   297
											  self.__gnucpp, depfiles=depfiles, log=self.raptor)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   298
					
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   299
		exports = bldInfObject.getExports(self.defaultPlatform)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   300
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   301
		# export1.h
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   302
		self.__testExport(exports[0], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   303
						  bldInfMakefilePathTestRoot+'bld.infs/export1.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   304
						  '$(EPOCROOT)/epoc32/include/export1.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   305
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   306
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   307
		# export2.h				export_test\export2.h
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   308
		self.__testExport(exports[1], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   309
						  bldInfMakefilePathTestRoot+'bld.infs/export2.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   310
						  '$(EPOCROOT)/epoc32/include/export_test/export2.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   311
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   312
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   313
		# export3.h				..\export_test\export3.h
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   314
		self.__testExport(exports[2], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   315
						  bldInfMakefilePathTestRoot+'bld.infs/export3.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   316
						  '$(EPOCROOT)/epoc32/export_test/export3.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   317
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   318
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   319
		# export4.h				\export_test_abs\export4.h
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   320
		self.__testExport(exports[3], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   321
						  bldInfMakefilePathTestRoot+'bld.infs/export4.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   322
						  self.__OSRoot+'/export_test_abs/export4.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   323
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   324
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   325
		# export5.h				\epoc32\export_test_abs\export5.h
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   326
		self.__testExport(exports[4], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   327
						  bldInfMakefilePathTestRoot+'bld.infs/export5.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   328
						  '$(EPOCROOT)/epoc32/export_test_abs/export5.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   329
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   330
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   331
		# export6.h				|..\export_test_rel\export6.h
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   332
		self.__testExport(exports[5], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   333
						  bldInfMakefilePathTestRoot+'bld.infs/export6.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   334
						  bldInfMakefilePathTestRoot+'export_test_rel/export6.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   335
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   336
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   337
		# export6.h				|\export_test_rel\export7.h
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   338
		self.__testExport(exports[6], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   339
						  bldInfMakefilePathTestRoot+'bld.infs/export7.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   340
						  bldInfMakefilePathTestRoot+'bld.infs/export_test_rel/export7.h',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   341
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   342
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   343
		# export7.h				|export_test_rel\export8.h
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   344
		self.__testExport(exports[7], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   345
						  bldInfMakefilePathTestRoot+'bld.infs/export8.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   346
						  bldInfMakefilePathTestRoot+'bld.infs/export_test_rel/export8.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   347
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   348
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   349
		# :zip export9.zip
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   350
		self.__testExport(exports[8], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   351
						  bldInfMakefilePathTestRoot+'bld.infs/export9.zip', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   352
						  '$(EPOCROOT)', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   353
						  'unzip')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   354
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   355
		# :zip export10.zip		export_test
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   356
		self.__testExport(exports[9], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   357
						  bldInfMakefilePathTestRoot+'bld.infs/export10.zip', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   358
						  '$(EPOCROOT)/export_test', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   359
						  'unzip')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   360
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   361
		# :zip export11.zip		/export_test
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   362
		self.__testExport(exports[10], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   363
						  bldInfMakefilePathTestRoot+'bld.infs/export11.zip', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   364
						  self.__OSRoot+'/export_test', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   365
						  'unzip')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   366
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   367
		# :zip export12.zip		/epoc32/export_test
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   368
		self.__testExport(exports[11], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   369
						  bldInfMakefilePathTestRoot+'bld.infs/export12.zip', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   370
						  '$(EPOCROOT)/epoc32/export_test', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   371
						  'unzip')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   372
 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   373
		# export13.rsc			z:/resource/app/export13.rsc
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   374
		# Once for each of the three locations for emulated drives
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   375
		# epoc32/data/z/resource/app/export13.rsc *and* in
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   376
		# epoc32/release/winscw/udeb/z/resource/app/export13.rsc *and* in
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   377
		# epoc32/release/winscw/urel/z/resource/app/export13.rsc
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   378
		self.__testExport(exports[12], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   379
						  bldInfMakefilePathTestRoot+'bld.infs/export13.rsc', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   380
						  '$(EPOCROOT)/epoc32/data/z/resource/app/export13.rsc', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   381
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   382
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   383
		self.__testExport(exports[12], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   384
						  bldInfMakefilePathTestRoot+'bld.infs/export13.rsc', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   385
						  '$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/app/export13.rsc', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   386
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   387
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   388
		self.__testExport(exports[12], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   389
						  bldInfMakefilePathTestRoot+'bld.infs/export13.rsc', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   390
						  '$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/app/export13.rsc', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   391
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   392
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   393
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   394
		testExports = bldInfObject.getTestExports(self.defaultPlatform)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   395
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   396
		# testexport1.h
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   397
		self.__testExport(testExports[0], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   398
						  bldInfMakefilePathTestRoot+'bld.infs/testexport1.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   399
						  bldInfMakefilePathTestRoot+'bld.infs/testexport1.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   400
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   401
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   402
		# testexport2.h				export_test_rel\testexport2.h
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   403
		self.__testExport(testExports[1], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   404
						  bldInfMakefilePathTestRoot+'bld.infs/testexport2.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   405
						  bldInfMakefilePathTestRoot+'bld.infs/export_test_rel/testexport2.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   406
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   407
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   408
		# testexport3.h				..\export_test_rel\testexport3.h
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   409
		self.__testExport(testExports[2], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   410
						  bldInfMakefilePathTestRoot+'bld.infs/testexport3.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   411
						  bldInfMakefilePathTestRoot+'export_test_rel/testexport3.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   412
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   413
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   414
		# testexport4.h				\export_test_abs\testexport4.h
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   415
		self.__testExport(testExports[3], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   416
						  bldInfMakefilePathTestRoot+'bld.infs/testexport4.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   417
						  self.__OSRoot+'/export_test_abs/testexport4.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   418
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   419
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   420
		# testexport5.h				\epoc32\export_test_abs\testexport5.h
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   421
		self.__testExport(testExports[4], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   422
						  bldInfMakefilePathTestRoot+'bld.infs/testexport5.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   423
						  '$(EPOCROOT)/epoc32/export_test_abs/testexport5.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   424
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   425
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   426
		# testexport6.h				|..\export_test_rel\testexport6.h
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   427
		self.__testExport(testExports[5], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   428
						  bldInfMakefilePathTestRoot+'bld.infs/testexport6.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   429
						  bldInfMakefilePathTestRoot+'export_test_rel/testexport6.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   430
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   431
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   432
		# testexport7.h				|\export_test_rel\testexport7.h
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   433
		self.__testExport(testExports[6], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   434
						  bldInfMakefilePathTestRoot+'bld.infs/testexport7.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   435
						  bldInfMakefilePathTestRoot+'bld.infs/export_test_rel/testexport7.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   436
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   437
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   438
		# testexport8.h				|export_test_rel\testexport8.h
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   439
		self.__testExport(testExports[7], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   440
						  bldInfMakefilePathTestRoot+'bld.infs/testexport8.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   441
						  bldInfMakefilePathTestRoot+'bld.infs/export_test_rel/testexport8.h', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   442
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   443
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   444
		# :zip testexport9.zip
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   445
		self.__testExport(testExports[8], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   446
						  bldInfMakefilePathTestRoot+'bld.infs/testexport9.zip', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   447
						  '$(EPOCROOT)', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   448
						  'unzip')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   449
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   450
		# :zip testexport10.zip		export_test
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   451
		self.__testExport(testExports[9], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   452
						  bldInfMakefilePathTestRoot+'bld.infs/testexport10.zip', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   453
						  '$(EPOCROOT)/export_test', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   454
						  'unzip')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   455
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   456
		# :zip testexport11.zip		/export_test
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   457
		self.__testExport(testExports[10], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   458
						  bldInfMakefilePathTestRoot+'bld.infs/testexport11.zip', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   459
						  self.__OSRoot+'/export_test', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   460
						  'unzip')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   461
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   462
		# :zip testexport12.zip		/epoc32/export_test
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   463
		self.__testExport(testExports[11], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   464
						  bldInfMakefilePathTestRoot+'bld.infs/testexport12.zip', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   465
						  '$(EPOCROOT)/epoc32/export_test', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   466
						  'unzip')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   467
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   468
		# testexport13.rsc		z:/resource/app/testexport13.rsc
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   469
		# Once for each of the three locations for emulated drives
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   470
		# epoc32/data/z/resource/app/testexport13.rsc *and* in
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   471
		# epoc32/release/winscw/udeb/z/resource/app/testexport13.rsc *and* in
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   472
		# epoc32/release/winscw/urel/z/resource/app/testexport13.rsc
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   473
		self.__testExport(testExports[12], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   474
						  bldInfMakefilePathTestRoot+'bld.infs/testexport13.rsc', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   475
						  '$(EPOCROOT)/epoc32/data/z/resource/app/testexport13.rsc', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   476
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   477
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   478
		self.__testExport(testExports[12], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   479
						  bldInfMakefilePathTestRoot+'bld.infs/testexport13.rsc', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   480
						  '$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/app/testexport13.rsc', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   481
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   482
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   483
		self.__testExport(testExports[12], 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   484
						  bldInfMakefilePathTestRoot+'bld.infs/testexport13.rsc', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   485
						  '$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/app/testexport13.rsc', 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   486
						  'copy')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   487
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   488
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   489
	def __testExtension(self, aExtensionObject, aMakefile, aTestParameters):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   490
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   491
		templateExtensionRoot = ""
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   492
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   493
		if not aMakefile.startswith("$("):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   494
			templateExtensionRoot = '$(MAKEFILE_TEMPLATES)/'
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   495
			
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   496
		self.assertEquals(aExtensionObject.getMakefile(), templateExtensionRoot+aMakefile)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   497
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   498
		testOptions = aExtensionObject.getOptions()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   499
		testVariables = aExtensionObject.getStandardVariables()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   500
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   501
		for testParameter in aTestParameters.keys():
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   502
			if (testParameter.startswith("STDVAR_")):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   503
				stdvar = testParameter.replace("STDVAR_", "")
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   504
				stdvalue = aTestParameters.get(testParameter)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   505
				self.assertTrue(testVariables.has_key(stdvar))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   506
				self.assertEquals(testVariables.get(stdvar), aTestParameters.get(testParameter))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   507
			else:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   508
				self.assertTrue(testOptions.has_key(testParameter))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   509
				self.assertEquals(testOptions.get(testParameter), aTestParameters.get(testParameter))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   510
616
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
   511
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   512
	def testBldInfExtensions(self):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   513
		bldInfTestRoot = self.__testRoot.Append('metadata/project/bld.infs')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   514
		bldInfMakefilePathTestRoot = str(self.__makefilePathTestRoot)+'/metadata/project/bld.infs'			
616
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
   515
		if 'SRCROOT' in os.environ:
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
   516
			srcroot = os.environ['SRCROOT']
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
   517
		else:
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
   518
			srcroot = os.environ['SRCROOT'] = "x:/somesrcroot"
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
   519
		
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   520
		depfiles = []
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   521
		bldInfObject = raptor_meta.BldInfFile(bldInfTestRoot.Append('extensions.inf'),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   522
											  self.__gnucpp, depfiles=depfiles, log=self.raptor)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   523
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   524
		extensions = bldInfObject.getExtensions(self.ARMV5)
616
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
   525
				
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   526
		self.__testExtension(extensions[0],
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   527
							'test/dummyextension1.mk',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   528
							{'TARGET':'dummyoutput1.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   529
							'SOURCES':'dummysource11.cpp dummysource12.cpp dummysource13.cpp',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   530
							'DEPENDENCIES':'dummylib11.lib dummylib12.lib',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   531
							'TOOL':'dummytool1.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   532
							'OPTION11':'option11value',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   533
							'OPTION12':'$(MAKE_VAR)',
616
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
   534
							'STDVAR_TO_ROOT':srcroot,
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   535
							'STDVAR_TO_BLDINF':bldInfMakefilePathTestRoot,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   536
							'STDVAR_EXTENSION_ROOT':bldInfMakefilePathTestRoot}		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   537
							)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   538
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   539
		self.__testExtension(extensions[1],
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   540
							'test/dummyextension2.mk',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   541
							{'TARGET':'dummyoutput2.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   542
							'SOURCES':'dummysource21.cpp dummysource22.cpp dummysource23.cpp',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   543
							'DEPENDENCIES':'dummylib21.lib dummylib22.lib',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   544
							'TOOL':'dummytool2.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   545
							'OPTION21':'option21value',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   546
							'OPTION22':'$(MAKE_VAR)',
616
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
   547
							'STDVAR_TO_ROOT':srcroot,
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   548
							'STDVAR_TO_BLDINF':bldInfMakefilePathTestRoot,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   549
							'STDVAR_EXTENSION_ROOT':bldInfMakefilePathTestRoot}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   550
							)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   551
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   552
		self.__testExtension(extensions[2],
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   553
							'$(' + raptor.env + ')/test/dummyextension3.mk',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   554
							{'TARGET':'dummyoutput3.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   555
							'SOURCES':'dummysource31.cpp dummysource32.cpp dummysource33.cpp',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   556
							'DEPENDENCIES':'dummylib31.lib dummylib32.lib',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   557
							'TOOL':'dummytool3.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   558
							'OPTION31':'option31value',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   559
							'OPTION32':'$(MAKE_VAR)',
616
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
   560
							'STDVAR_TO_ROOT':srcroot,
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   561
							'STDVAR_TO_BLDINF':bldInfMakefilePathTestRoot,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   562
							'STDVAR_EXTENSION_ROOT':bldInfMakefilePathTestRoot}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   563
							)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   564
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   565
		testExtensions = bldInfObject.getTestExtensions(self.ARMV5)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   566
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   567
		self.__testExtension(testExtensions[0],
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   568
							'test/dummytestextension1.mk',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   569
							{'TARGET':'dummytestoutput1.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   570
							'SOURCES':'dummytestsource11.cpp dummytestsource12.cpp dummytestsource13.cpp',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   571
							'DEPENDENCIES':'dummytestlib11.lib dummytestlib12.lib',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   572
							'TOOL':'dummytesttool1.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   573
							'OPTIONTEST11':'optiontest11value',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   574
							'OPTIONTEST12':'$(MAKE_VAR)',
616
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
   575
							'STDVAR_TO_ROOT':srcroot,
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   576
							'STDVAR_TO_BLDINF':bldInfMakefilePathTestRoot,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   577
							'STDVAR_EXTENSION_ROOT':bldInfMakefilePathTestRoot}		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   578
							)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   579
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   580
		self.__testExtension(testExtensions[1],
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   581
							'test/dummytestextension2.mk',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   582
							{'TARGET':'dummytestoutput2.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   583
							'SOURCES':'dummytestsource21.cpp dummytestsource22.cpp dummytestsource23.cpp',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   584
							'DEPENDENCIES':'dummytestlib21.lib dummytestlib22.lib',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   585
							'TOOL':'dummytesttool2.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   586
							'OPTIONTEST21':'optiontest21value',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   587
							'OPTIONTEST22':'$(MAKE_VAR)',
616
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
   588
							'STDVAR_TO_ROOT':srcroot,
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   589
							'STDVAR_TO_BLDINF':bldInfMakefilePathTestRoot,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   590
							'STDVAR_EXTENSION_ROOT':bldInfMakefilePathTestRoot}		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   591
							)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   592
	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   593
	def testBadBldInfs(self):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   594
		bldInfTestRoot = self.__testRoot.Append('metadata/project/bld.infs')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   595
		depfiles=[]
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   596
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   597
		class BadBldInfLogger(object):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   598
			"mock logger to capture Error messages from the parser."
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   599
			
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   600
			def __init__(self):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   601
				self.errors = []
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   602
				self.debugOutput = False
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   603
				
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   604
			def Error(self, format, *extras, **attributes):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   605
				self.errors.append( ((format % extras), attributes) )
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   606
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   607
			def Debug(self, format, *extras, **attributes):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   608
				pass
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   609
				
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   610
		logger = BadBldInfLogger()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   611
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   612
		# this bld.inf has END lines with no matching START
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   613
		bldInfObject = raptor_meta.BldInfFile(bldInfTestRoot.Append('bad_lone_end.inf'),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   614
											  self.__gnucpp, depfiles=depfiles, 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   615
											  log=logger)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   616
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   617
		# the PRJ_EXTENSIONS section is bad for ARMV5
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   618
		extensions = bldInfObject.getExtensions(self.ARMV5)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   619
		#
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   620
		self.assertEquals(len(logger.errors), 1)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   621
		err = logger.errors[0]
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   622
		self.assertEquals(err[0], "unmatched END statement in PRJ_EXTENSIONS section")
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   623
		self.assertTrue("bldinf" in err[1])
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   624
		self.assertTrue(err[1]["bldinf"].endswith("bad_lone_end.inf"))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   625
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   626
		# the PRJ_TESTEXTENSIONS section is bad for WINSCW
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   627
		testextensions = bldInfObject.getTestExtensions(self.WINSCW)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   628
		#
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   629
		self.assertEquals(len(logger.errors), 2)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   630
		err = logger.errors[1]
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   631
		self.assertEquals(err[0], "unmatched END statement in PRJ_TESTEXTENSIONS section")
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   632
		self.assertTrue("bldinf" in err[1])
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   633
		self.assertTrue(err[1]["bldinf"].endswith("bad_lone_end.inf"))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   634
			
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   635
	def testBldInfIncludes(self):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   636
		bldInfTestRoot = self.__testRoot.Append('metadata/project/bld.infs/includes')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   637
		depfiles=[]
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   638
		bldInfObject = raptor_meta.BldInfFile(bldInfTestRoot.Append('top_level.inf'),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   639
											  self.__gnucpp, depfiles=depfiles, log=self.raptor)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   640
		Root = str(bldInfTestRoot)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   641
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   642
		mmpFiles = bldInfObject.getMMPList(self.ARMV5)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   643
		self.assertEquals(len(mmpFiles['mmpFileList']), 3)	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   644
		self.assertEquals(str(mmpFiles['mmpFileList'][0].filename), Root + "/dir3/down_dir.mmp")
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   645
		self.assertEquals(str(mmpFiles['mmpFileList'][1].filename), Root + "/dir1/dir2/up_dir.mmp")
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   646
		self.assertEquals(str(mmpFiles['mmpFileList'][2].filename), Root + "/top_level.mmp")
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   647
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   648
		exports = bldInfObject.getExports(self.ARMV5)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   649
		self.assertEquals(exports[0].getSource(), Root + "/dir3/down_dir_export_source.h")
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   650
		self.assertEquals(exports[1].getSource(), Root + "/dir1/dir2/up_dir_export_source.h")
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   651
		self.assertEquals(exports[2].getSource(), Root + "/top_level_export_source.h")
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   652
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   653
	def testMmpIncludes(self):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   654
		mmpTestRoot = self.__testRoot.Append('metadata/project/mmps/includes')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   655
		mmpMakefilePathTestRoot = str(self.__makefilePathTestRoot)+'/metadata/project/mmps/includes'
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   656
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   657
		depfiles=[]
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   658
		bldInfObject = raptor_meta.BldInfFile(mmpTestRoot.Append('top_level.inf'),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   659
										 self.__gnucpp, depfiles=depfiles, log=self.raptor)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   660
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   661
		mmpFiles = bldInfObject.getMMPList(self.ARMV5)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   662
		mmpdeps = []
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   663
		mmpFile = raptor_meta.MMPFile(mmpFiles['mmpFileList'][0].filename, 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   664
										   self.__gnucpp,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   665
										   bldInfObject,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   666
									           depfiles=mmpdeps,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   667
										   log=self.raptor)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   668
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   669
		self.assertEquals(str(mmpFile.filename), 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   670
						  str(mmpTestRoot.Append("top_level.mmp")))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   671
	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   672
	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   673
		mmpContent = mmpFile.getContent(self.ARMV5)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   674
		mmpBackend = raptor_meta.MMPRaptorBackend(None, str(mmpFile.filename), str(bldInfObject.filename))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   675
		mmpParser = mmpparser.MMPParser(mmpBackend)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   676
		parseresult = None
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   677
		try:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   678
			parseresult = mmpParser.mmp.parseString(mmpContent)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   679
		except Exception,e:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   680
			pass
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   681
			
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   682
		self.assertTrue(parseresult)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   683
		self.assertEquals(parseresult[0],'MMP')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   684
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   685
		mmpBackend.finalise(self.ARMV5)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   686
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   687
		var = mmpBackend.BuildVariant
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   688
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   689
		sources = []
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   690
		for i in var.ops:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   691
			if i.name == "SOURCE":
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   692
				sources.extend(i.value.split(" "))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   693
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   694
		self.assertTrue((mmpMakefilePathTestRoot+'/top_level.cpp') in sources)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   695
		self.assertTrue((mmpMakefilePathTestRoot+'/dir1/dir2/up_dir.cpp') in sources)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   696
		self.assertTrue((mmpMakefilePathTestRoot+'/dir3/down_dir.cpp') in sources)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   697
	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   698
	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   699
	def testDefFileResolution(self):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   700
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   701
		class DefFileTest(object):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   702
			""" Test resolveDefFile for a particular set of mmp options """
625
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   703
			def __init__(self, primarydeffile, secondarydeffile, mmpfilename, deffilekeyword, target, nostrictdef, platform):
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   704
				self.primarydeffile = primarydeffile
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   705
				self.secondarydeffile = secondarydeffile
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   706
				self.mmpfilename=mmpfilename
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   707
				self.deffilekeyword=deffilekeyword
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   708
				self.target=target
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   709
				self.nostrictdef = nostrictdef
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   710
				self.platform = platform
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   711
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   712
			def test(self, raptor):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   713
				m = raptor_meta.MMPRaptorBackend(raptor, self.mmpfilename, "")
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   714
				m.deffile = self.deffilekeyword
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   715
				m.nostrictdef = self.nostrictdef
625
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   716
				(resolvedDefFile, isSecondaryDefFile) = m.resolveDefFile(self.target, self.platform)
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   717
				
625
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   718
				expectedDefFile = self.primarydeffile
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   719
				if isSecondaryDefFile:
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   720
					expectedDefFile = self.secondarydeffile
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   721
				
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   722
				return path_compare_notdrivelettercase(expectedDefFile, resolvedDefFile)
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   723
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   724
		defFileTests = []
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   725
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   726
		for testPlat in self.testPlats:			
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   727
			epocroot = str(testPlat['EPOCROOT'])
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   728
			releaseDir = testPlat['PLATFORM'].lower()
625
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   729
			
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   730
			# Some configurations support both a primary location and a secondary location for .def files
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   731
			# In these cases, if the primary location .def file doesn't exist the secondary is used.
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   732
			primaryDefFileDir = "eabi"
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   733
			secondaryDefFileDir = ""
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   734
			if testPlat['PLATFORM'] == "WINSCW":
625
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   735
				primaryDefFileDir = "bwins"
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   736
			elif testPlat['PLATFORM'] == "X86":
625
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   737
				primaryDefFileDir = "bx86gcc"
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   738
				secondaryDefFileDir = "eabi"
625
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   739
											
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   740
			defFileTests.extend([
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   741
				DefFileTest(
625
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   742
					self.__OSRoot+'/test/'+primaryDefFileDir+'/targetu.def',
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   743
					self.__OSRoot+'/test/'+secondaryDefFileDir+'/targetu.def',
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   744
					'/test/component/mmpfile.mmp',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   745
					'',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   746
					'target.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   747
					False,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   748
					testPlat),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   749
				DefFileTest(
625
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   750
					self.__OSRoot+'/test/'+primaryDefFileDir+'/target.def',
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   751
					self.__OSRoot+'/test/'+secondaryDefFileDir+'/target.def',
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   752
					'/test/component/mmpfile.mmp',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   753
					'',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   754
					'target.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   755
					True,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   756
					testPlat),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   757
				DefFileTest(
625
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   758
					self.__OSRoot+'/test/'+primaryDefFileDir+'/targetu.DEF',
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   759
					self.__OSRoot+'/test/'+secondaryDefFileDir+'/targetu.DEF',
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   760
					'/test/component/mmpfile.mmp',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   761
					'target.DEF',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   762
					'target.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   763
					False,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   764
					testPlat),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   765
				DefFileTest(
625
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   766
					self.__OSRoot+'/test/'+primaryDefFileDir+'/target2.DEF',
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   767
					self.__OSRoot+'/test/'+secondaryDefFileDir+'/target2.DEF',
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   768
					'/test/component/mmpfile.mmp',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   769
					'target2.DEF',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   770
					'target.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   771
					True,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   772
					testPlat),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   773
				DefFileTest(
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   774
					self.__OSRoot+'/test/component/target2u.DEF',
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   775
					self.__OSRoot+'/test/'+secondaryDefFileDir+'/target2u.DEF',
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   776
					'/test/component/mmpfile.mmp',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   777
					'./target2.DEF',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   778
					'target.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   779
					False,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   780
					testPlat),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   781
				DefFileTest(
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   782
					self.__OSRoot+'/test/component/target2.DEF',
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   783
					self.__OSRoot+'/test/'+secondaryDefFileDir+'/target2.DEF',
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   784
					'/test/component/mmpfile.mmp',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   785
					'./target2.DEF',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   786
					'target.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   787
					True,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   788
					testPlat),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   789
				DefFileTest(
625
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   790
					self.__OSRoot+'/test/component/'+primaryDefFileDir+'/target3u.DEF',
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   791
					self.__OSRoot+'/test/component/'+secondaryDefFileDir+'/target3u.DEF',
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   792
					'/test/component/mmpfile.mmp',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   793
					'./~/target3.DEF',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   794
					'target.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   795
					False,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   796
					testPlat),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   797
				DefFileTest(
625
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   798
					epocroot+'/epoc32/include/def/'+primaryDefFileDir+'/targetu.def',
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   799
					epocroot+'/epoc32/include/def/'+secondaryDefFileDir+'/targetu.def',
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   800
					'/test/component/mmpfile.mmp',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   801
					'/epoc32/include/def/~/target.def',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   802
					'target.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   803
					False,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   804
					testPlat),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   805
				DefFileTest(
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   806
					epocroot+'/epoc32/release/'+releaseDir+'/target.def',
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   807
					epocroot+'/epoc32/release/'+secondaryDefFileDir+'/target.def',
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   808
					'/test/component/mmpfile.mmp',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   809
					'/epoc32/release/'+releaseDir+'/target.def',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   810
					'target.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   811
					True,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   812
					testPlat),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   813
				DefFileTest(
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   814
					self.__OSRoot+'/deffiles/targetu.def',
630
31ef8a13d4f4 sbs version 2.15.1
Jon Chatten
parents: 625
diff changeset
   815
					self.__OSRoot+'/'+secondaryDefFileDir+'/targetu.def',
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   816
					'/test/component/mmpfile.mmp',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   817
					'/deffiles/target.def',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   818
					'target.exe',
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   819
					False,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   820
					testPlat)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   821
				])
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   822
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   823
		for t in defFileTests:
625
a1925fb7753a sbs version 2.15.0
Richard Taylor <richard.i.taylor@nokia.com>
parents: 616
diff changeset
   824
			result = t.test(self.raptor)			
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   825
			self.assertEquals(result, True)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   826
	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   827
	def dummyMetaReader(self):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   828
		"make raptor_meta.MetaReader.__init__ into a none operation"
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   829
		self.savedInit = raptor_meta.MetaReader.__init__
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   830
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   831
		def DummyMetaReaderInit(self, aRaptor):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   832
			self._MetaReader__Raptor = aRaptor
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   833
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   834
		raptor_meta.MetaReader.__init__ = DummyMetaReaderInit
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   835
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   836
	def restoreMetaReader(self):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   837
		"make raptor_meta.MetaReader.__init__ operational again"
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   838
		raptor_meta.MetaReader.__init__ = self.savedInit
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   839
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   840
	def testApplyOsVariant(self):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   841
		self.dummyMetaReader()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   842
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   843
		# Mock output class
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   844
		class OutputMock(object):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   845
			def write(self, text):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   846
				pass
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   847
				
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   848
		bu = raptor_data.BuildUnit("os_variant", [])
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   849
					
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   850
		self.raptor.keepGoing = False
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   851
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   852
		metaReader = raptor_meta.MetaReader(self.raptor)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   853
		metaReader.ApplyOSVariant(bu, ".")
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   854
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   855
		self.raptor.keepGoing = True
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   856
		self.raptor.out = OutputMock()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   857
		metaReader = raptor_meta.MetaReader(self.raptor)	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   858
		metaReader.ApplyOSVariant(bu, ".")
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   859
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   860
		self.restoreMetaReader()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   861
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   862
	def __assertEqualStringList(self, aListOne, aListTwo):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   863
		self.assertEquals(len(aListOne), len(aListTwo))
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   864
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   865
		i = 0
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   866
		while i < len(aListOne) :
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   867
			self.assertEquals(aListOne[i], aListTwo[i])
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   868
			i = i + 1
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   869
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   870
	def testOptionReplace(self):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   871
		# Test how we resolve known permutations of values given to the .mmp file OPTION_REPLACE keyword
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   872
		mockBackend = raptor_meta.MMPRaptorBackend(self.raptor, "somefile.mmp", "")
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   873
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   874
		results = mockBackend.resolveOptionReplace('--argA')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   875
		self.__assertEqualStringList(results, ['--argA<->'])
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   876
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   877
		results = mockBackend.resolveOptionReplace('--argB value')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   878
		self.__assertEqualStringList(results, ['--argB%20<->@@', '@@%<->--argB%20value'])
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   879
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   880
		results = mockBackend.resolveOptionReplace('--argD value1 --argE')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   881
		self.__assertEqualStringList(results, ['--argD%20<->@@', '@@%<->--argD%20value1', '--argE<->'])
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   882
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   883
		results = mockBackend.resolveOptionReplace('--argF --argG')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   884
		self.__assertEqualStringList(results, ['--argF<->--argG'])
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   885
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   886
		results = mockBackend.resolveOptionReplace('--argH --argI value')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   887
		self.__assertEqualStringList(results, ['--argH<->--argI%20value'])
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   888
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   889
		results = mockBackend.resolveOptionReplace('--argJ value1 --argK value2')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   890
		self.__assertEqualStringList(results, ['--argJ%20<->@@', '@@%<->--argJ%20value1', '--argK%20<->@@', '@@%<->--argK%20value2'])		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   891
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   892
		results = mockBackend.resolveOptionReplace('--argL value1 --argM value2 --argN --argO')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   893
		self.__assertEqualStringList(results, ['--argL%20<->@@', '@@%<->--argL%20value1', '--argM%20<->@@', '@@%<->--argM%20value2', '--argN<->--argO'])		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   894
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   895
		results = mockBackend.resolveOptionReplace('--argP value1 value2 --argQ value3 value4')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   896
		self.__assertEqualStringList(results, ['--argP%20<->@@', '@@%<->--argP%20value1', '--argQ%20<->@@', '@@%<->--argQ%20value3'])		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   897
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   898
		results = mockBackend.resolveOptionReplace('value1 value2')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   899
		self.__assertEqualStringList(results, [])
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   900
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   901
		results = mockBackend.resolveOptionReplace('value1 --argR')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   902
		self.__assertEqualStringList(results, ['--argR<->'])
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   903
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   904
		results = mockBackend.resolveOptionReplace('-singleHyphenargS value1 -singleHyphenargT value2')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   905
		self.__assertEqualStringList(results, ['-singleHyphenargS%20<->@@', '@@%<->-singleHyphenargS%20value1', '-singleHyphenargT%20<->@@', '@@%<->-singleHyphenargT%20value2'])
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   906
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   907
		results = mockBackend.resolveOptionReplace('--assignmentArgU=value1 --assignmentArgV=value2')
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   908
		self.__assertEqualStringList(results, ['--assignmentArgU=value1<->--assignmentArgV=value2'])
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   909
	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   910
	def testModuleName(self):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   911
		self.dummyMetaReader()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   912
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   913
		# Test how we resolve known permutations of values given to the .mmp file OPTION_REPLACE keyword
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   914
		mockBackend = raptor_meta.MetaReader(self.raptor)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   915
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   916
		resultsDictList = [ {"bldinf":"Z:/src/romfile/group/tb92/GROUP/bld.inf", "result":"romfile"},
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   917
				    {"bldinf":"/src/romfile/group/tb92/GROUP/bld.inf", "result":"romfile"},
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   918
				    {"bldinf":"Z:/src/romFile/group/tb92/GROUP/another.inf", "result":"romFile"},
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   919
				    {"bldinf":"X:/src/RoMfile/group/bld.inf", "result":"RoMfile"},
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   920
				    {"bldinf":"w:/contacts/group/ONgoing/group/bld.inf", "result":"contacts"},
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   921
				    {"bldinf":"p:/group/bld.inf", "result":"module"},
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   922
				    {"bldinf":"/group/bld.inf", "result":"module"},
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   923
				    {"bldinf":"p:/ONGOING/bld.inf", "result":"module"},
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   924
				    {"bldinf":"/ONGOING/bld.inf", "result":"module"}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   925
				    ]
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   926
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   927
		for result in resultsDictList:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   928
			moduleName = mockBackend.ModuleName(result["bldinf"])
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   929
			self.assertEquals(moduleName, result["result"])
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   930
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   931
		self.restoreMetaReader()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   932
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   933
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   934
def path_compare_notdrivelettercase(aRequirement, aCandidate):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   935
	if sys.platform.startswith("win"):
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   936
		if aRequirement[1] == ":":
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   937
			aRequirement = aRequirement[0].lower() + aRequirement[1:]
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   938
			aCandidate = aCandidate[0].lower() + aCandidate[1:]
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   939
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   940
	return aRequirement == aCandidate
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   941
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   942
		
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   943
# run all the tests
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   944
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   945
from raptor_tests import SmokeTest
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   946
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   947
def run():
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   948
	t = SmokeTest()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   949
	t.id = "999"
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   950
	t.name = "raptor_meta_unit"
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   951
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   952
	tests = unittest.makeSuite(TestRaptorMeta)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   953
	result = unittest.TextTestRunner(verbosity=2).run(tests)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   954
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   955
	if result.wasSuccessful():
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   956
		t.result = SmokeTest.PASS
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   957
	else:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   958
		t.result = SmokeTest.FAIL
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   959
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   960
	return t