sbsv2/raptor/test/unit_suite/raptor_unit.py
author mikek
Fri, 04 Jun 2010 13:09:28 +0100
changeset 18 de5b887c98f7
parent 13 c327db0664bb
child 28 b8fa7dfeeaa1
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) 2009 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
#
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    16
# Unit tests for the raptor module
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
import raptor
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    19
import raptor_version
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    20
import raptor_meta
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    21
import raptor_utilities
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    22
import re
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    23
import unittest
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    24
import generic_path
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    25
import tempfile
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    26
import os
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    27
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    28
class TestRaptor(unittest.TestCase):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    29
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    30
	def testConstructor(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    31
		r = raptor.Raptor()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    32
		self.failUnless(r)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    33
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    34
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    35
	def testHome(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    36
		r = raptor.Raptor()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    37
		self.failUnless(r.home)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    38
		r = raptor.Raptor("dirname")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    39
		self.failUnless(r.errorCode == 1) # picked up that dirname doesn't exist
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    40
		
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 testVersion(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    43
		self.failUnless(re.match("^\d+\.\d+\.", raptor_version.fullversion()))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    44
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    45
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    46
	def testCLISupport(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    47
		r = raptor.Raptor()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    48
		r.RunQuietly(True)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    49
		r.AddConfigName("tom")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    50
		r.AddConfigName("dick")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    51
		r.AddConfigName("harry")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    52
		r.SetEnv("ROOT", "/a/b/c")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    53
		r.SetEnv("TREE", "beech")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    54
		r.SetJobs(4)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    55
		r.AddProject("foo.mmp")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    56
		r.AddProject("bar.mmp")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    57
		r.SetSysDefFile("SysDef.xml")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    58
		r.SetSysDefBase("C:\\mysysdef")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    59
		r.AddBuildInfoFile("build.info")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    60
		r.SetTopMakefile("E:\\epoc32\\build\\Makefile")
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
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    63
	def testComponentListParsing(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    64
		expected_spec_output = [
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    65
				'test/smoke_suite/test_resources/simple/bld.inf',
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    66
				'test/smoke_suite/test_resources/simple_export/bld.inf',
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    67
				'test/smoke_suite/test_resources/simple_dll/bld.inf',
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    68
				'test/smoke_suite/test_resources/simple_extension/bld.inf',
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    69
				'test/smoke_suite/test_resources/simple_gui/Bld.inf',
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    70
				'TOOLS2 SHOULD NOT APPEAR IN THE OUTPUT']
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    71
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    72
		r = raptor.Raptor()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    73
		null_log_instance = raptor_utilities.NullLog()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    74
		r.Info = null_log_instance.Info 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    75
		r.Debug = null_log_instance.Debug
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    76
		r.Warn = null_log_instance.Warn
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    77
		r.ConfigFile()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    78
		r.ProcessConfig()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    79
		# Note that tools2/bld.inf specifies tools2 as the only supported
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    80
		# platform, so it should not appear in the component list at the end
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    81
		r.CommandLine([
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    82
				'-b', 'smoke_suite/test_resources/simple/bld.inf',
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    83
				'-b', 'smoke_suite/test_resources/simple_dll/bld.inf',
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    84
				'-b', 'smoke_suite/test_resources/simple_export/bld.inf',
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    85
				'-b', 'smoke_suite/test_resources/simple_extension/bld.inf',
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    86
				'-b', 'smoke_suite/test_resources/simple_gui/Bld.inf',
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    87
				'-b', 'smoke_suite/test_resources/tools2/bld.inf',
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    88
				'-c', 'armv5'])
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    89
		# establish an object cache
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    90
		r.LoadCache()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    91
		buildUnitsToBuild = r.GetBuildUnitsToBuild(r.configNames)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    92
		# find out what components to build, and in what way
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    93
		layers = []
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    94
		layers = r.GetLayersFromCLI()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    95
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    96
		generic_specs = r.GenerateGenericSpecs(buildUnitsToBuild)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    97
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    98
		specs = []
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    99
		specs.extend(generic_specs)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   100
		metaReader = raptor_meta.MetaReader(r, buildUnitsToBuild)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   101
		specs.extend(metaReader.ReadBldInfFiles(layers[0].children,
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   102
				False))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   103
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   104
		# See what components are actually built for the given configs
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   105
		# should be only 5 since 1 is a tools component and we're building armv5
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   106
		hits = 0
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   107
		for c in layers[0].children:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   108
			if len(c.specs) > 0: 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   109
				# something will be built from this component because
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   110
				# it has at least one spec
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   111
				shortname = str(c.bldinf_filename)[len(os.environ['SBS_HOME'])+1:]
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   112
				self.assertTrue(shortname in expected_spec_output)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   113
				hits += 1
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   114
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   115
		# Ensure there actually are 5 build specs
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   116
		self.assertEqual(hits, len(expected_spec_output) - 1)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   117
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
	def setUp(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   120
		self.r = raptor.Raptor()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   121
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   122
		self.cwd = generic_path.CurrentDir()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   123
		self.isFileReturningFalse = lambda: False
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   124
		self.isFileReturningTrue = lambda: True
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
		self.sysDef = self.cwd.Append(self.r.systemDefinition)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   127
		self.bldInf = self.cwd.Append(self.r.buildInformation)
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
	def testWarningIfSystemDefinitionFileDoesNotExist(self): 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   130
		"""Test if sbs creates warning if executed without specified 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   131
		component to build i.e. default bld.inf (bld.inf in current 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   132
		directory) or system definition file.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   133
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   134
		Uses an empty temporary directory for this."""
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   135
		self.r.out = OutputMock()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   136
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   137
		d = tempfile.mkdtemp(prefix='raptor_test') 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   138
		cdir = os.getcwd()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   139
		os.chdir(d) 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   140
		layers = self.r.GetLayersFromCLI()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   141
		os.chdir(cdir) # go back
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   142
		os.rmdir(d)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   143
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   144
		self.assertTrue(self.r.out.warningWritten())
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   145
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   146
		d = tempfile.mkdtemp(prefix='raptor_test') 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   147
		cdir = os.getcwd()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   148
		os.chdir(d)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   149
		f = open("bld.inf","w")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   150
		f.close()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   151
		layers = self.r.GetLayersFromCLI()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   152
		os.unlink("bld.inf")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   153
		os.chdir(cdir) # go back
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   154
		os.rmdir(d)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   155
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   156
		self.assertTrue(self.r.out.warningWritten())
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
	def testNoWarningIfSystemDefinitionFileExists(self): 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   159
		self.r.out = OutputMock()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   160
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   161
		d = tempfile.mkdtemp(prefix='raptor_test') 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   162
		cdir = os.getcwd()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   163
		os.chdir(d)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   164
		f = open("System_Definition.xml","w")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   165
		f.close()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   166
		layers = self.r.GetLayersFromCLI()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   167
		os.unlink("System_Definition.xml")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   168
		os.chdir(cdir) # go back
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   169
		os.rmdir(d)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   170
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   171
		self.assertFalse(self.r.out.warningWritten())
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
	# Test Info, Warn & Error functions can handle attributes
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   174
	def testInfoAttributes(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   175
		self.r.out = OutputMock()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   176
		self.r.Info("hello %s", "world", planet="earth")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   177
		expected = "<info planet='earth'>hello world</info>\n"
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   178
		self.assertEquals(self.r.out.actual, expected)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   179
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   180
	def testWarnAttributes(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   181
		self.r.out = OutputMock()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   182
		self.r.Warn("look out", where="behind you")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   183
		expected = "<warning where='behind you'>look out</warning>\n"
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   184
		self.assertEquals(self.r.out.actual, expected)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   185
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   186
	def testErrorAttributes(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   187
		self.r.out = OutputMock()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   188
		self.r.Error("messed up %s and %s", "all", "sundry", bldinf="bld.inf")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   189
		expected = "<error bldinf='bld.inf'>messed up all and sundry</error>\n"
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   190
		self.assertEquals(self.r.out.actual, expected)	
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   191
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   192
	# Test Info, Warn & Error functions to ensure XML control chars are escaped
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   193
	def testInfoXMLEscaped(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   194
		self.r.out = OutputMock()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   195
		self.r.Info("h&l>o<&amp;")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   196
		expected = "<info>h&amp;l&gt;o&lt;&amp;amp;</info>\n"
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   197
		self.assertEquals(self.r.out.actual, expected)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   198
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   199
	def testWarnXMLEscaped(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   200
		self.r.out = OutputMock()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   201
		self.r.Warn("h&l>o<&amp;")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   202
		expected = "<warning>h&amp;l&gt;o&lt;&amp;amp;</warning>\n"
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   203
		self.assertEquals(self.r.out.actual, expected)
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
	def testErrorXMLEscaped(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   206
		self.r.out = OutputMock()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   207
		self.r.Error("h&l>o<&amp;")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   208
		expected = "<error>h&amp;l&gt;o&lt;&amp;amp;</error>\n"
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   209
		self.assertEquals(self.r.out.actual, expected)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   210
	
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   211
		
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   212
# Mock output class preserving output for checking
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   213
# Can also check if any warning has been written
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   214
class OutputMock(object):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   215
	warningRegExp = re.compile(".*warning.*")
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   216
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   217
	def __init__(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   218
		self.actual = ""
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   219
	
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   220
	def write(self, text):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   221
		self.actual += text
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
	def warningWritten(self):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   224
		if OutputMock.warningRegExp.match(self.actual):
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   225
			return True
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   226
		return False
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
# run all the tests
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   229
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   230
from raptor_tests import SmokeTest
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   231
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   232
def run():
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   233
	t = SmokeTest()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   234
	t.id = "999"
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   235
	t.name = "raptor_unit"
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   236
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   237
	tests = unittest.makeSuite(TestRaptor)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   238
	result = unittest.TextTestRunner(verbosity=2).run(tests)
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
	if result.wasSuccessful():
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   241
		t.result = SmokeTest.PASS
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   242
	else:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   243
		t.result = SmokeTest.FAIL
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   244
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   245
	return t