mirror of
https://github.com/thead-yocto-mirror/skia
synced 2026-06-21 08:52:36 +02:00
63 lines
1.6 KiB
Python
Executable File
63 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
"""Runs all unit tests under this base directory."""
|
|
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
import unittest
|
|
|
|
|
|
NO_CRAWL_DIRS = [
|
|
'.git',
|
|
'.svn',
|
|
]
|
|
|
|
|
|
SEARCH_PATH = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
|
|
def FilterDirectory(dirpath, filenames):
|
|
""" Determine whether to look for tests in the given directory.
|
|
|
|
dirpath: string; path of the directory in question.
|
|
filenames: list of strings; the files in the directory.
|
|
"""
|
|
if not dirpath or not filenames:
|
|
return False
|
|
for no_crawl_dir in NO_CRAWL_DIRS:
|
|
if no_crawl_dir in dirpath:
|
|
return False
|
|
return True
|
|
|
|
|
|
if __name__ == '__main__':
|
|
print 'Searching for tests.'
|
|
tests_to_run = []
|
|
|
|
for (dirpath, dirnames, filenames) in os.walk(SEARCH_PATH, topdown=True):
|
|
dirnames[:] = [d for d in dirnames if not d in NO_CRAWL_DIRS]
|
|
test_modules = [os.path.join(dirpath, filename) for filename in filenames
|
|
if filename.endswith('_test.py')]
|
|
if not test_modules:
|
|
continue
|
|
tests_to_run.extend(test_modules)
|
|
|
|
print 'Found %d tests.' % len(tests_to_run)
|
|
errors = []
|
|
for test in tests_to_run:
|
|
proc = subprocess.Popen(['python', test], stdout=subprocess.PIPE,
|
|
stderr=subprocess.STDOUT)
|
|
if proc.wait() != 0:
|
|
errors.append(proc.communicate()[0])
|
|
if errors:
|
|
for error in errors:
|
|
print error
|
|
print 'Failed %d of %d.' % (len(errors), len(test_modules))
|
|
sys.exit(1)
|
|
else:
|
|
print 'All tests succeeded.'
|