sbsv2/raptor/test/unit_suite/raptor_data_unit.py
author mikek
Fri, 04 Jun 2010 13:09:28 +0100
changeset 18 de5b887c98f7
parent 13 c327db0664bb
permissions -rw-r--r--
Upgrading to Raptor 2.14
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     1
#
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     2
# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     3
# All rights reserved.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     4
# This component and the accompanying materials are made available
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     5
# under the terms of the License "Eclipse Public License v1.0"
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     6
# which accompanies this distribution, and is available
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     8
#
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     9
# Initial Contributors:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    10
# Nokia Corporation - initial contribution.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    11
#
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    12
# Contributors:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    13
#
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    14
# Description: 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    15
# raptor_data_unit module
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    16
# This module tests the classes that make up the Raptor Data Model.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    17
#
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    18
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    19
import generic_path
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    20
import os
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    21
import raptor
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    22
import raptor_cache
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    23
import raptor_data
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    24
import sys
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    25
import unittest
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    26
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    27
class TestRaptorData(unittest.TestCase):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    28
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    29
	def setUp(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    30
		self.envStack = {}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    31
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    32
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    33
	def SetEnv(self, name, value):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    34
		# set environment variable and remember the old value (if there is one)		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    35
		if os.environ.has_key(name):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    36
			self.envStack[name] = os.environ[name]
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    37
		os.environ[name] = value
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    38
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    39
	def isWin(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    40
		return 'win' in raptor.hostplatform
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    41
			
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    42
	def RestoreEnv(self, name):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    43
		# put environment back to its state before SetEnv
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    44
		if self.envStack.has_key(name):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    45
			os.environ[name] = self.envStack[name]
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    46
		else:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    47
			del os.environ[name]    # was not defined
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    48
			
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    49
			
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    50
	def testSimpleSpecification(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    51
		spec = raptor_data.Specification("myProject")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    52
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    53
		spec.SetInterface("Symbian.EXE")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    54
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    55
		var = raptor_data.Variant("X")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    56
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    57
		var.AddOperation(raptor_data.Set("SOURCES", "a.cpp"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    58
		var.AddOperation(raptor_data.Append("LIBS", "all.dll"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    59
		var.AddOperation(raptor_data.Append("INC", "/C/include"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    60
		var.AddOperation(raptor_data.Prepend("INC", "/B/include"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    61
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    62
		spec.AddVariant(var)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    63
		spec.AddVariant("AlwaysBuildAsArm")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    64
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    65
		self.failUnless(spec)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    66
		self.failUnless(spec.Valid())
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    67
		self.failUnless(var.Valid())
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    68
		self.assertEqual(spec.name, "myProject")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    69
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    70
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    71
	def testSimpleFilter(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    72
		filter = raptor_data.Filter("filtered")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    73
		filter.SetConfigCondition("ARMV5")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    74
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    75
		filter.SetInterface(raptor_data.Interface("True.EXE"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    76
		filter.Else.SetInterface(raptor_data.Interface("False.EXE"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    77
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    78
		filter.AddVariant(raptor_data.Variant("True_var"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    79
		filter.Else.AddVariant(raptor_data.Variant("False_var"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    80
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    81
		filter.AddChildSpecification(raptor_data.Specification("TrueSpec"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    82
		filter.Else.AddChildSpecification(raptor_data.Specification("FalseSpec"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    83
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    84
		filter.Configure( raptor_data.BuildUnit("ARMV5",[]), cache=None )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    85
		# check a positive test
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    86
		iface = filter.GetInterface(cache=None)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    87
		self.assertEqual(iface.name, "True.EXE")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    88
		vars = filter.GetVariants(cache = None)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    89
		self.assertEqual(vars[0].name, "True_var")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    90
		kids = filter.GetChildSpecs()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    91
		self.assertEqual(kids[0].name, "TrueSpec")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    92
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    93
		filter.Configure( raptor_data.BuildUnit("NOT_ARMV5",[]) , cache = None)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    94
		# check a negative test
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    95
		iface = filter.GetInterface(cache = None)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    96
		self.assertEqual(iface.name, "False.EXE")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    97
		vars = filter.GetVariants(cache = None)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    98
		self.assertEqual(vars[0].name, "False_var")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    99
		kids = filter.GetChildSpecs()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   100
		self.assertEqual(kids[0].name, "FalseSpec")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   101
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   102
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   103
	def testSimpleVariant(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   104
		var = raptor_data.Variant()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   105
		self.failUnless(var)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   106
		self.failIf( var.Valid() )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   107
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   108
		var.SetProperty("name", "ABC")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   109
		var.SetProperty("extends", "DEF")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   110
		var.SetProperty("host", "GHI")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   111
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   112
		self.assertEqual(var.name, "ABC")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   113
		self.assertEqual(var.extends, "DEF")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   114
		self.assertEqual(var.host, None)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   115
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   116
		var.SetProperty("host", "win32")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   117
		self.assertEqual(var.host, "win32")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   118
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   119
		self.failUnless( var.Valid() )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   120
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   121
		var.AddOperation( raptor_data.Set("CC", "armcc") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   122
		var.AddOperation( raptor_data.Set("LN", "armlink") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   123
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   124
		self.failUnless( var.Valid() )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   125
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   126
		var.SetProperty("extends", "")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   127
		ops = var.GetAllOperationsRecursively(None)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   128
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   129
		self.assertEqual( len(ops), 1 )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   130
		self.assertEqual( len(ops[0]), 2 )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   131
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   132
	def testExtendedVariant(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   133
		r = raptor.Raptor()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   134
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   135
		varA = raptor_data.Variant("A")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   136
		varA.SetProperty("extends", None)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   137
		varA.AddOperation( raptor_data.Set("V1", "1A") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   138
		varA.AddOperation( raptor_data.Set("V2", "2A") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   139
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   140
		varB = raptor_data.Variant("B")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   141
		varB.SetProperty("extends", "A")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   142
		varB.AddOperation( raptor_data.Set("V2", "2B") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   143
		varB.AddOperation( raptor_data.Set("V3", "3B") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   144
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   145
		varC = raptor_data.Variant("C")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   146
		varC.SetProperty("extends", "B")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   147
		varC.AddOperation( raptor_data.Set("V3", "3C") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   148
		varC.AddOperation( raptor_data.Set("V4", "4C") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   149
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   150
		self.failUnless( varA.Valid() )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   151
		self.failUnless( varB.Valid() )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   152
		self.failUnless( varC.Valid() )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   153
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   154
		r.cache.AddVariant(varA)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   155
		r.cache.AddVariant(varB)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   156
		r.cache.AddVariant(varC)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   157
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   158
		e = r.GetEvaluator(None, varA.GenerateBuildUnits(r.cache)[0] )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   159
		self.assertEqual( e.Get("V1"), "1A" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   160
		self.assertEqual( e.Get("V2"), "2A" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   161
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   162
		e = r.GetEvaluator(None, varB.GenerateBuildUnits(r.cache)[0] )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   163
		self.assertEqual( e.Get("V1"), "1A" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   164
		self.assertEqual( e.Get("V2"), "2B" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   165
		self.assertEqual( e.Get("V3"), "3B" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   166
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   167
		e = r.GetEvaluator(None, varC.GenerateBuildUnits(r.cache)[0] )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   168
		self.assertEqual( e.Get("V1"), "1A" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   169
		self.assertEqual( e.Get("V2"), "2B" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   170
		self.assertEqual( e.Get("V3"), "3C" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   171
		self.assertEqual( e.Get("V4"), "4C" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   172
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   173
	def testReferencedVariant(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   174
		r = raptor.Raptor()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   175
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   176
		varA = raptor_data.Variant("A")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   177
		varA.SetProperty("extends", None)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   178
		varA.AddOperation( raptor_data.Set("V1", "1A") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   179
		varA.AddOperation( raptor_data.Set("V2", "2A") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   180
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   181
		# B extends A, and has a reference to C.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   182
		varB = raptor_data.Variant("B")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   183
		varB.SetProperty("extends", "A")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   184
		varB.AddOperation( raptor_data.Set("V2", "2B") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   185
		varB.AddOperation( raptor_data.Set("V3", "3B") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   186
		varB.AddChild( raptor_data.VariantRef("C") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   187
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   188
		varC = raptor_data.Variant("C")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   189
		varC.SetProperty("extends", None)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   190
		varC.AddOperation( raptor_data.Set("V3", "3C") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   191
		varC.AddOperation( raptor_data.Set("V4", "4C") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   192
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   193
		self.failUnless( varA.Valid() )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   194
		self.failUnless( varB.Valid() )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   195
		self.failUnless( varC.Valid() )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   196
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   197
		r.cache.AddVariant(varA)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   198
		r.cache.AddVariant(varB)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   199
		r.cache.AddVariant(varC)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   200
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   201
		e = r.GetEvaluator(None, varA.GenerateBuildUnits(r.cache)[0] )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   202
		self.assertEqual( e.Get("V1"), "1A" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   203
		self.assertEqual( e.Get("V2"), "2A" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   204
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   205
		e = r.GetEvaluator(None, varC.GenerateBuildUnits(r.cache)[0] )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   206
		self.assertEqual( e.Get("V3"), "3C" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   207
		self.assertEqual( e.Get("V4"), "4C" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   208
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   209
		e = r.GetEvaluator(None, varB.GenerateBuildUnits(r.cache)[0] )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   210
		self.assertEqual( e.Get("V1"), "1A" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   211
		self.assertEqual( e.Get("V2"), "2B" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   212
		self.assertEqual( e.Get("V3"), "3B" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   213
		self.assertEqual( e.Get("V4"), "4C" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   214
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   215
	def testAlias(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   216
		r = raptor.Raptor()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   217
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   218
		varA = raptor_data.Variant("A")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   219
		varA.AddOperation( raptor_data.Set("V1", "1A") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   220
		varA.AddOperation( raptor_data.Set("V2", "2A") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   221
		r.cache.AddVariant(varA)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   222
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   223
		varB = raptor_data.Variant("B")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   224
		varB.AddOperation( raptor_data.Set("V2", "2B") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   225
		varB.AddOperation( raptor_data.Set("V3", "3B") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   226
		r.cache.AddVariant(varB)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   227
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   228
		varC = raptor_data.Variant("C")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   229
		varC.AddOperation( raptor_data.Set("V3", "3C") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   230
		varC.AddOperation( raptor_data.Set("V4", "4C") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   231
		r.cache.AddVariant(varC)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   232
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   233
		# <alias name="an_alias" meaning="A.B.C"/>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   234
		alias = raptor_data.Alias("an_alias")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   235
		alias.SetProperty("meaning", "A.B.C")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   236
		r.cache.AddAlias(alias)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   237
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   238
		self.failUnless( alias.Valid() )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   239
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   240
		e = r.GetEvaluator(None, alias.GenerateBuildUnits(r.cache)[0] )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   241
		self.assertEqual( e.Get("V1"), "1A" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   242
		self.assertEqual( e.Get("V2"), "2B" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   243
		self.assertEqual( e.Get("V3"), "3C" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   244
		self.assertEqual( e.Get("V4"), "4C" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   245
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   246
	def testGroup1(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   247
		r = raptor.Raptor()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   248
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   249
		varA = raptor_data.Variant("A")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   250
		varA.AddOperation( raptor_data.Set("V1", "1A") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   251
		varA.AddOperation( raptor_data.Set("V2", "2A") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   252
		r.cache.AddVariant(varA)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   253
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   254
		varB = raptor_data.Variant("B")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   255
		varB.AddOperation( raptor_data.Set("V2", "2B") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   256
		varB.AddOperation( raptor_data.Set("V3", "3B") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   257
		r.cache.AddVariant(varB)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   258
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   259
		varC = raptor_data.Variant("C")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   260
		varC.AddOperation( raptor_data.Set("V3", "3C") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   261
		varC.AddOperation( raptor_data.Set("V4", "4C") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   262
		r.cache.AddVariant(varC)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   263
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   264
		alias = raptor_data.Alias("alias")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   265
		alias.SetProperty("meaning", "B.C")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   266
		r.cache.AddAlias(alias)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   267
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   268
		# This group has two buildable units: "A" and "alias" = "B.C".
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   269
		# <group name="group1">
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   270
		#	<varRef ref="A"/>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   271
		#   <aliasRef ref="alias">
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   272
		# <group>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   273
		group1 = raptor_data.Group("group1")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   274
		group1.AddChild( raptor_data.VariantRef("A") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   275
		group1.AddChild( raptor_data.AliasRef("alias") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   276
		r.cache.AddGroup(group1)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   277
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   278
		vRef = raptor_data.VariantRef("C")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   279
		vRef.SetProperty("mod", "B")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   280
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   281
		# This group has three buildable units: "C.B", "A" and "alias" = "B.C".
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   282
		# <group name="group2">
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   283
		#	<varRef ref="C" mod="B"/>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   284
		#   <groupRef ref="group1"/>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   285
		# <group>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   286
		group2 = raptor_data.Group("group2")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   287
		group2.AddChild(vRef)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   288
		group2.AddChild( raptor_data.GroupRef("group1") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   289
		r.cache.AddGroup(group2)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   290
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   291
		self.failUnless( group1.Valid() )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   292
		self.failUnless( group2.Valid() )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   293
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   294
		buildUnits = group1.GenerateBuildUnits(r.cache)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   295
		self.assertEqual( len(buildUnits), 2 )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   296
		self.assertEqual( buildUnits[0].name, "A" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   297
		self.assertEqual( buildUnits[1].name, "alias" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   298
		self.assertEqual( buildUnits[1].variants[0].name, "B" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   299
		self.assertEqual( buildUnits[1].variants[1].name, "C" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   300
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   301
		buildUnits = group2.GenerateBuildUnits(r.cache)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   302
		self.assertEqual( len(buildUnits), 3 )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   303
		self.assertEqual( buildUnits[0].name, "C.B" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   304
		self.assertEqual( buildUnits[1].name, "A" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   305
		self.assertEqual( buildUnits[2].name, "alias" )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   306
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   307
		self.assertEqual( len(buildUnits[0].variants), 2 )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   308
		self.assertEqual( len(buildUnits[1].variants), 1 )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   309
		self.assertEqual( len(buildUnits[2].variants), 2 )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   310
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   311
	def testGroup2(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   312
		r = raptor.Raptor()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   313
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   314
		r.cache.Load( generic_path.Join(r.home, "test", "config", "arm.xml") )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   315
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   316
		buildUnits = r.cache.FindNamedGroup("G2").GenerateBuildUnits(r.cache)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   317
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   318
		self.assertEqual( len(buildUnits), 8 )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   319
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   320
		self.assertEqual(buildUnits[0].name, "ARMV5_UREL.MOD1")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   321
		self.assertEqual(buildUnits[1].name, "ARMV5_UDEB.MOD1.MOD2")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   322
		self.assertEqual(buildUnits[2].name, "ALIAS_1")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   323
		self.assertEqual(buildUnits[3].name, "ALIAS_2.MOD1.MOD2.MOD1")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   324
		self.assertEqual(buildUnits[4].name, "ARMV5_UREL.MOD2")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   325
		self.assertEqual(buildUnits[5].name, "ARMV5_UDEB.MOD2")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   326
		self.assertEqual(buildUnits[6].name, "MOD1")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   327
		self.assertEqual(buildUnits[7].name, "MOD2")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   328
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   329
	def testRefs(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   330
		i1 = raptor_data.InterfaceRef()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   331
		self.failIf(i1.Valid())
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   332
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   333
		i2 = raptor_data.InterfaceRef("")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   334
		self.failIf(i2.Valid())
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   335
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   336
		i3 = raptor_data.InterfaceRef("ABC_abc.123")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   337
		self.failUnless(i3.Valid())
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   338
		self.assertEqual(i3.ref, "ABC_abc.123")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   339
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   340
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   341
	def testEvaluator(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   342
		self.SetEnv("EPOCROOT", "/C")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   343
		aRaptor = raptor.Raptor()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   344
		cache = aRaptor.cache
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   345
		aRaptor.debugOutput = True
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   346
		cache.Load(generic_path.Join(aRaptor.home, "test", "config", "arm.xml"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   347
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   348
		var = cache.FindNamedVariant("ARMV5_UREL")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   349
		eval = aRaptor.GetEvaluator( None, var.GenerateBuildUnits(aRaptor.cache)[0])
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   350
		self.RestoreEnv("EPOCROOT")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   351
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   352
		# test the Get method
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   353
		varcfg = eval.Get("VARIANT_CFG")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   354
		self.assertEqual(varcfg, "/C/variant/variant.cfg")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   355
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   356
		# test the Resolve wrt EPOCROOT
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   357
		varcfg = eval.Resolve("VARIANT_CFG")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   358
		self.assertEqual(varcfg, "/C/variant/variant.cfg")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   359
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   360
	def testProblematicEnvironment(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   361
		aRaptor = raptor.Raptor()		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   362
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   363
		# 1: ask for environment variable values that will break makefile parsing due to
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   364
		# backslashes forming line continuation characters
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   365
		self.SetEnv("ENVVAR_BSLASH_END1", "C:\\test1a\\;C:\\test1b\\")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   366
		self.SetEnv("ENVVAR_BSLASH_END2", "C:\\test2a\\;C:\\test2b\\\\")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   367
		self.SetEnv("ENVVAR_BSLASH_END3", "C:\\test3a\\;C:\\test3b\\\\\\")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   368
		var = raptor_data.Variant("my.var")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   369
		var.AddOperation(raptor_data.Env("ENVVAR_BSLASH_END1"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   370
		var.AddOperation(raptor_data.Env("ENVVAR_BSLASH_END2"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   371
		var.AddOperation(raptor_data.Env("ENVVAR_BSLASH_END3"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   372
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   373
		eval = aRaptor.GetEvaluator(None, var.GenerateBuildUnits(aRaptor.cache)[0])
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   374
		self.RestoreEnv("ENVVAR_BSLASH_END1")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   375
		self.RestoreEnv("ENVVAR_BSLASH_END2")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   376
		self.RestoreEnv("ENVVAR_BSLASH_END3")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   377
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   378
		value = eval.Get("ENVVAR_BSLASH_END1")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   379
		self.assertEqual(value, "C:\\test1a\\;C:\\test1b\\\\")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   380
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   381
		value = eval.Get("ENVVAR_BSLASH_END2")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   382
		self.assertEqual(value, "C:\\test2a\\;C:\\test2b\\\\")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   383
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   384
		value = eval.Get("ENVVAR_BSLASH_END3")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   385
		self.assertEqual(value, "C:\\test3a\\;C:\\test3b\\\\\\\\")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   386
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   387
		# 2: check 'tool' and 'toolchain' type environment variable values for correct behaviour when paths contain spaces
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   388
		# this is different depending on host OS platform and whether or not the paths/tools actually exist
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   389
		epocroot = os.path.abspath(os.environ.get('EPOCROOT')).replace('\\','/').rstrip('/')
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   390
		pathwithspaces = epocroot+"/epoc32/build/Program Files/Some tool installed with spaces/no_spaces/s p c/no_more_spaces"
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   391
		toolwithspaces = pathwithspaces+"/testtool.exe"	
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   392
		self.SetEnv("ENVVAR_TOOL_WITH_SPACES", toolwithspaces)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   393
		self.SetEnv("ENVVAR_TOOLCHAINPATH_WITH_SPACES", pathwithspaces)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   394
		toolVar = raptor_data.Variant("tool.var")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   395
		toolchainpathVar = raptor_data.Variant("toolchainpath.var")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   396
		toolVar.AddOperation(raptor_data.Env("ENVVAR_TOOL_WITH_SPACES", "", "tool"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   397
		toolchainpathVar.AddOperation(raptor_data.Env("ENVVAR_TOOLCHAINPATH_WITH_SPACES", "", "toolchainpath"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   398
		invalidValueException = "the environment variable %s is incorrect - it is a '%s' type but contains spaces that cannot be neutralised:"
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   399
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   400
		# 2a: paths/tools exist - on Windows we expect 8.3 paths post-evaluation, on all other platforms error exceptions
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   401
		os.makedirs(pathwithspaces)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   402
		testtool = open(toolwithspaces,'wb')
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   403
		testtool.close()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   404
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   405
		exceptionText = ""
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   406
		value = ""
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   407
		try:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   408
			eval = aRaptor.GetEvaluator(None, toolVar.GenerateBuildUnits(aRaptor.cache)[0])
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   409
			value = eval.Get("ENVVAR_TOOL_WITH_SPACES")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   410
		except Exception, e:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   411
			exceptionText = str(e)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   412
			
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   413
		if self.isWin():
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   414
			self.assertTrue(value)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   415
			self.assertFalse(' ' in value)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   416
		else:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   417
			self.assertTrue(exceptionText.startswith(invalidValueException % ("ENVVAR_TOOL_WITH_SPACES", "tool")))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   418
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   419
		exceptionText = ""
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   420
		value = ""
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   421
		try:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   422
			eval = aRaptor.GetEvaluator(None, toolchainpathVar.GenerateBuildUnits(aRaptor.cache)[0])
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   423
			value = eval.Get("ENVVAR_TOOLCHAINPATH_WITH_SPACES")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   424
		except Exception, e:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   425
			exceptionText = str(e)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   426
			
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   427
		if self.isWin():
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   428
			self.assertTrue(value)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   429
			self.assertFalse(' ' in value)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   430
		else:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   431
			self.assertTrue(exceptionText.startswith(invalidValueException % ("ENVVAR_TOOLCHAINPATH_WITH_SPACES", "toolchainpath")))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   432
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   433
		# 2b: paths/tools don't exist - should throw error exceptions on all platforms as 8.3 paths are only available
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   434
		# for use if a path/tool exists
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   435
		os.remove(toolwithspaces)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   436
		os.removedirs(pathwithspaces)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   437
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   438
		exceptionText = ""
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   439
		try:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   440
			eval = aRaptor.GetEvaluator(None, toolVar.GenerateBuildUnits(aRaptor.cache)[0])
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   441
		except Exception, e:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   442
			exceptionText = str(e)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   443
		self.assertTrue(exceptionText.startswith(invalidValueException % ("ENVVAR_TOOL_WITH_SPACES", "tool")))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   444
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   445
		exceptionText = ""
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   446
		try:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   447
			eval = aRaptor.GetEvaluator(None, toolchainpathVar.GenerateBuildUnits(aRaptor.cache)[0])
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   448
		except Exception, e:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   449
			exceptionText = str(e)			
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   450
		self.assertTrue(exceptionText.startswith(invalidValueException % ("ENVVAR_TOOLCHAINPATH_WITH_SPACES", "toolchainpath")))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   451
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   452
		# clean-up
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   453
		self.RestoreEnv("ENVVAR_TOOL_WITH_SPACES")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   454
		self.RestoreEnv("ENVVAR_TOOLCHAINPATH_WITH_SPACES")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   455
	
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   456
	def testMissingEnvironment(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   457
		# ask for an environment variable that is not set
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   458
		# and has no default value.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   459
		var = raptor_data.Variant("my.var")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   460
		var.AddOperation(raptor_data.Env("RAPTOR_SAYS_NO"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   461
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   462
		aRaptor = raptor.Raptor()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   463
	
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   464
		try:	
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   465
			eval = aRaptor.GetEvaluator(None, var.GenerateBuildUnits(aRaptor.cache)[0] )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   466
			badval = eval.Get("RAPTOR_SAYS_NO")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   467
		except raptor_data.UninitialisedVariableException, e:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   468
			return
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   469
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   470
		self.assertTrue(False)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   471
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   472
	def checkForParam(self, params, name, default):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   473
		for p in params:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   474
			if p.name == name and (default == None or p.default == default):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   475
				return True
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   476
		return False
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   477
	
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   478
	def testInterface(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   479
		aRaptor = raptor.Raptor()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   480
		cache = aRaptor.cache
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   481
		cache.Load(generic_path.Join(aRaptor.home, "test", "config", "interface.xml"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   482
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   483
		base = cache.FindNamedInterface("Base.XYZ")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   484
		p = base.GetParams(cache)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   485
		self.failUnless(self.checkForParam(p, "A", None))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   486
		self.failUnless(self.checkForParam(p, "B", "baseB"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   487
		self.failUnless(self.checkForParam(p, "C", "baseC"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   488
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   489
		extended = cache.FindNamedInterface("Extended.XYZ")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   490
		p = extended.GetParams(cache)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   491
		self.failUnless(self.checkForParam(p, "A", None))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   492
		self.failUnless(self.checkForParam(p, "B", "baseB"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   493
		self.failUnless(self.checkForParam(p, "C", "extC"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   494
		self.failUnless(self.checkForParam(p, "D", None))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   495
		f = extended.GetFLMIncludePath(cache=cache)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   496
		self.assertEqual(f.File(), "ext.flm")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   497
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   498
		extended = cache.FindNamedInterface("Extended2.XYZ")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   499
		p = extended.GetParams(cache)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   500
		self.failUnless(self.checkForParam(p, "A", None))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   501
		self.failUnless(self.checkForParam(p, "B", "baseB"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   502
		self.failUnless(self.checkForParam(p, "C", "extC"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   503
		self.failUnless(self.checkForParam(p, "D", None))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   504
		f = extended.GetFLMIncludePath(cache)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   505
		self.assertEqual(f.File(), "base.flm")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   506
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   507
	def testGetBuildUnits(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   508
		r = raptor.Raptor()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   509
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   510
		# <group name="g1">
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   511
		g1 = raptor_data.Group("g1")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   512
		r.cache.AddGroup(g1)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   513
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   514
		# <groupRef ref="g2" mod="A.B"/>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   515
		g2a = raptor_data.GroupRef()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   516
		g2a.SetProperty("ref", "g2")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   517
		g2a.SetProperty("mod", "A.B")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   518
		g1.AddChild(g2a)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   519
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   520
		# <groupRef ref="g2" mod="C.D"/>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   521
		g2b = raptor_data.GroupRef()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   522
		g2b.SetProperty("ref", "g2")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   523
		g2b.SetProperty("mod", "C.D")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   524
		g1.AddChild(g2b)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   525
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   526
		# <group name="g2">
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   527
		g2 = raptor_data.Group("g2")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   528
		r.cache.AddGroup(g2)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   529
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   530
		# <varRef ref="V" mod="E.F"/>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   531
		v2 = raptor_data.VariantRef()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   532
		v2.SetProperty("ref", "V")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   533
		v2.SetProperty("mod", "E.F")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   534
		g2.AddChild(v2)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   535
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   536
		# <varRef ref="V" mod="G.H"/>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   537
		v3 = raptor_data.VariantRef()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   538
		v3.SetProperty("ref", "V")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   539
		v3.SetProperty("mod", "G.H")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   540
		g2.AddChild(v3)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   541
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   542
		# <aliasRef ref="X" mod="I.J"/>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   543
		v4 = raptor_data.AliasRef()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   544
		v4.SetProperty("ref", "X")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   545
		v4.SetProperty("mod", "I.J")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   546
		g2.AddChild(v4)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   547
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   548
		# <aliasRef ref="X" mod="K.L"/>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   549
		v5 = raptor_data.AliasRef()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   550
		v5.SetProperty("ref", "X")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   551
		v5.SetProperty("mod", "K.L")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   552
		g2.AddChild(v5)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   553
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   554
		r.cache.AddVariant(raptor_data.Variant("A"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   555
		r.cache.AddVariant(raptor_data.Variant("B"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   556
		r.cache.AddVariant(raptor_data.Variant("C"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   557
		r.cache.AddVariant(raptor_data.Variant("D"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   558
		r.cache.AddVariant(raptor_data.Variant("E"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   559
		r.cache.AddVariant(raptor_data.Variant("F"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   560
		r.cache.AddVariant(raptor_data.Variant("G"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   561
		r.cache.AddVariant(raptor_data.Variant("H"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   562
		r.cache.AddVariant(raptor_data.Variant("I"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   563
		r.cache.AddVariant(raptor_data.Variant("J"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   564
		r.cache.AddVariant(raptor_data.Variant("K"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   565
		r.cache.AddVariant(raptor_data.Variant("L"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   566
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   567
		r.cache.AddVariant(raptor_data.Variant("V"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   568
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   569
		# <alias name="X" meaning="A.B.C.D.E.F.G.H/>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   570
		alias = raptor_data.Alias("X")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   571
		alias.SetProperty("meaning", "A.B.C.D.E.F.G.H")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   572
		r.cache.AddAlias(alias)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   573
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   574
		r.cache.AddVariant(raptor_data.Variant("Y"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   575
		r.cache.AddVariant(raptor_data.Variant("Z"))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   576
	
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   577
		units = raptor_data.GetBuildUnits(["g1.Y", "g1.Z"], r.cache, r)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   578
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   579
		# <group name="g1">
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   580
		#   <groupRef ref="g2" mod="A.B"/>    g2.A.B
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   581
		#   <groupRef ref="g2" mod="C.D"/>    g2.C.D
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   582
		# </group>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   583
		# <group name="g2">
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   584
		#   <varRef ref="V" mod="E.F"/>       V.E.F
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   585
		#   <varRef ref="V" mod="G.H"/>       V.G.H
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   586
		#   <aliasRef ref="X" mod="I.J"/>     X.I.J
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   587
		#   <aliasRef ref="X" mod="K.L"/>     X.K.L
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   588
		# </group>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   589
		# <alias name="X" meaning="A.B.C.D.E.F.G.H/>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   590
		#
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   591
		expected = [ "VEFABY", "VGHABY", "ABCDEFGHIJABY", "ABCDEFGHKLABY",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   592
				     "VEFCDY", "VGHCDY", "ABCDEFGHIJCDY", "ABCDEFGHKLCDY",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   593
		             "VEFABZ", "VGHABZ", "ABCDEFGHIJABZ", "ABCDEFGHKLABZ",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   594
				     "VEFCDZ", "VGHCDZ", "ABCDEFGHIJCDZ", "ABCDEFGHKLCDZ" ]
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   595
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   596
		self.failUnlessEqual(len(units), len(expected))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   597
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   598
		for u in units:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   599
			vars = "".join([v.name for v in u.variants])
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   600
			self.failUnless(vars in expected, vars + " was not expected")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   601
			expected.remove(vars)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   602
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   603
		self.failUnless(len(expected) == 0, str(expected) + " not found")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   604
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   605
# run all the tests
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   606
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   607
from raptor_tests import SmokeTest
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   608
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   609
def run():
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   610
	t = SmokeTest()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   611
	t.id = "999"
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   612
	t.name = "raptor_data_unit"
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   613
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   614
	tests = unittest.makeSuite(TestRaptorData)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   615
	result = unittest.TextTestRunner(verbosity=2).run(tests)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   616
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   617
	if result.wasSuccessful():
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   618
		t.result = SmokeTest.PASS
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   619
	else:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   620
		t.result = SmokeTest.FAIL
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   621
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   622
	return t