sbsv2/raptor/test/smoke_suite/test_resources/scripts/delete_on_failed_compile.py
author mikek
Fri, 04 Jun 2010 13:09:28 +0100
changeset 18 de5b887c98f7
permissions -rw-r--r--
Upgrading to Raptor 2.14
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
18
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
     1
#
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
     2
# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
     3
# All rights reserved.
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
     4
# This component and the accompanying materials are made available
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
     5
# under the terms of the License "Eclipse Public License v1.0"
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
     6
# which accompanies this distribution, and is available
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
     8
#
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
     9
# Initial Contributors:
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    10
# Nokia Corporation - initial contribution.
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    11
#
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    12
# Contributors:
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    13
#
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    14
# Description: 
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    15
# delete_on_failed_compile.py
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    16
# This is a test module for verifying the delete on failed compile 
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    17
# work around for RVCT 2.2. It creates a dummy object file and 
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    18
# exits with an error code which should result in object files being deleted.
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    19
# It takes the same arguments as armcc, but ignores them all apart from -o.
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    20
#
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    21
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    22
import sys
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    23
import os
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    24
import re
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    25
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    26
# Parse for -o argument.
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    27
objectfile_re = re.compile(".*-o\s(\S*\.(o|pre))\s.*", re.I)
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    28
res = objectfile_re.match(" ".join(sys.argv[1:]))
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    29
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    30
if res:
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    31
	objectpath = res.group(1)
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    32
	print "Found object file %s" % objectpath
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    33
	objectdirectory = os.path.dirname(objectpath)
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    34
	
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    35
	# Make the directory if it doesn't exist
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    36
	if not os.path.isdir(objectdirectory):
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    37
		try:
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    38
			os.makedirs(objectdirectory)
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    39
		except:
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    40
			print "Not making directory %s" % objectdirectory
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    41
	
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    42
	# Try to write something to the .o file
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    43
	try:
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    44
		fh = open(objectpath, "w")
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    45
		fh.write("Fake object file for delete on failed compile test\n")
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    46
		fh.close()
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    47
	except Exception as error:
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    48
		print "Failed to created object file %s; error was: %s" % (objectfile, str(error))
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    49
else:
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    50
	print "Failed to determine object filename. Commandline used was: %s" % " ".join(sys.argv[1:])
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    51
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    52
# Always exit with an error
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    53
print "Exiting with non-zero exit code." 
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    54
sys.exit(1)
de5b887c98f7 Upgrading to Raptor 2.14
mikek
parents:
diff changeset
    55