Fix validate_failures.py in standalone testing.

When using validate_failures.py with --manifest and --results, we
don't need a GCC build directory.  This is useful when using the
validator outside of the build tree.  We were insisting on finding
a valid build tree regardless of those options.

Tested on x86_64.  Committed to trunk.

	* testsuite-management/validate_failures.py: Update
	Copyright years.
	Request contributions not to use Python features newer
	than 2.4.
	(GetBuildData): If this is not a build directory,
	emit an error only if --results or --manifest are missing.

From-SVN: r195817
This commit is contained in:
Diego Novillo 2013-02-06 15:22:56 -05:00 committed by Diego Novillo
parent d0c4e31020
commit 828e50c53c
2 changed files with 30 additions and 7 deletions

View File

@ -1,3 +1,12 @@
2013-02-06 Diego Novillo <dnovillo@google.com>
* testsuite-management/validate_failures.py: Update
Copyright years.
Request contributions not to use Python features newer
than 2.4.
(GetBuildData): If this is not a build directory,
emit an error only if --results or --manifest are missing.
2013-02-06 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
* testsuite-management/validate_failures.py

View File

@ -2,10 +2,14 @@
# Script to compare testsuite failures against a list of known-to-fail
# tests.
#
# NOTE: This script is used in installations that are running Python 2.4.
# Please stick to syntax features available in 2.4 and earlier
# versions.
# Contributed by Diego Novillo <dnovillo@google.com>
#
# Copyright (C) 2011, 2012 Free Software Foundation, Inc.
# Copyright (C) 2011-2013 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
@ -78,7 +82,7 @@ _MANIFEST_PATH_PATTERN = '%s/%s/%s.xfail'
_OPTIONS = None
def Error(msg):
print >>sys.stderr, '\nerror: %s' % msg
print >>sys.stderr, 'error: %s' % msg
sys.exit(1)
@ -358,15 +362,24 @@ def GetManifestPath(srcdir, target, user_provided_must_exist):
Error('Manifest does not exist: %s' % manifest_path)
return manifest_path
else:
assert srdir and target
return _MANIFEST_PATH_PATTERN % (srcdir, _MANIFEST_SUBDIR, target)
def GetBuildData():
target = GetMakefileValue('%s/Makefile' % _OPTIONS.build_dir, 'target_alias=')
srcdir = GetMakefileValue('%s/Makefile' % _OPTIONS.build_dir, 'srcdir =')
target = GetMakefileValue('%s/Makefile' % _OPTIONS.build_dir, 'target_alias=')
if not ValidBuildDirectory(_OPTIONS.build_dir, target):
Error('%s is not a valid GCC top level build directory.' %
_OPTIONS.build_dir)
# If we have been given a set of results to use, we may
# not be inside a valid GCC build directory. In that case,
# the user must provide both a manifest file and a set
# of results to check against it.
if not _OPTIONS.results or not _OPTIONS.manifest:
Error('%s is not a valid GCC top level build directory. '
'You must use --manifest and --results to do the validation.' %
_OPTIONS.build_dir)
else:
return None, None
print 'Source directory: %s' % srcdir
print 'Build target: %s' % target
return srcdir, target
@ -410,7 +423,7 @@ def PerformComparison(expected, actual, ignore_missing_failures):
def CheckExpectedResults():
(srcdir, target) = GetBuildData()
srcdir, target = GetBuildData()
manifest_path = GetManifestPath(srcdir, target, True)
print 'Manifest: %s' % manifest_path
manifest = GetManifest(manifest_path)
@ -485,7 +498,8 @@ def Main(argv):
parser.add_option('--manifest', action='store', type='string',
dest='manifest', default=None,
help='Name of the manifest file to use (default = '
'taken from contrib/testsuite-managment/<target_alias>.xfail)')
'taken from '
'contrib/testsuite-managment/<target_alias>.xfail)')
parser.add_option('--produce_manifest', action='store_true',
dest='produce_manifest', default=False,
help='Produce the manifest for the current '