Renames test script flags.
This commit is contained in:
parent
02f7106557
commit
e2e8ba401d
|
@ -702,11 +702,11 @@ class AnythingMatcher {
|
||||||
} \
|
} \
|
||||||
virtual void DescribeTo(::std::ostream* os) const { \
|
virtual void DescribeTo(::std::ostream* os) const { \
|
||||||
*os << relation " "; \
|
*os << relation " "; \
|
||||||
UniversalPrinter<Rhs>::Print(rhs_, os); \
|
UniversalPrint(rhs_, os); \
|
||||||
} \
|
} \
|
||||||
virtual void DescribeNegationTo(::std::ostream* os) const { \
|
virtual void DescribeNegationTo(::std::ostream* os) const { \
|
||||||
*os << negated_relation " "; \
|
*os << negated_relation " "; \
|
||||||
UniversalPrinter<Rhs>::Print(rhs_, os); \
|
UniversalPrint(rhs_, os); \
|
||||||
} \
|
} \
|
||||||
private: \
|
private: \
|
||||||
Rhs rhs_; \
|
Rhs rhs_; \
|
||||||
|
@ -910,7 +910,7 @@ class StrEqualityMatcher {
|
||||||
if (!case_sensitive_) {
|
if (!case_sensitive_) {
|
||||||
*os << "(ignoring case) ";
|
*os << "(ignoring case) ";
|
||||||
}
|
}
|
||||||
UniversalPrinter<StringType>::Print(string_, os);
|
UniversalPrint(string_, os);
|
||||||
}
|
}
|
||||||
|
|
||||||
const StringType string_;
|
const StringType string_;
|
||||||
|
@ -947,12 +947,12 @@ class HasSubstrMatcher {
|
||||||
// Describes what this matcher matches.
|
// Describes what this matcher matches.
|
||||||
void DescribeTo(::std::ostream* os) const {
|
void DescribeTo(::std::ostream* os) const {
|
||||||
*os << "has substring ";
|
*os << "has substring ";
|
||||||
UniversalPrinter<StringType>::Print(substring_, os);
|
UniversalPrint(substring_, os);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DescribeNegationTo(::std::ostream* os) const {
|
void DescribeNegationTo(::std::ostream* os) const {
|
||||||
*os << "has no substring ";
|
*os << "has no substring ";
|
||||||
UniversalPrinter<StringType>::Print(substring_, os);
|
UniversalPrint(substring_, os);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -988,12 +988,12 @@ class StartsWithMatcher {
|
||||||
|
|
||||||
void DescribeTo(::std::ostream* os) const {
|
void DescribeTo(::std::ostream* os) const {
|
||||||
*os << "starts with ";
|
*os << "starts with ";
|
||||||
UniversalPrinter<StringType>::Print(prefix_, os);
|
UniversalPrint(prefix_, os);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DescribeNegationTo(::std::ostream* os) const {
|
void DescribeNegationTo(::std::ostream* os) const {
|
||||||
*os << "doesn't start with ";
|
*os << "doesn't start with ";
|
||||||
UniversalPrinter<StringType>::Print(prefix_, os);
|
UniversalPrint(prefix_, os);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -1028,12 +1028,12 @@ class EndsWithMatcher {
|
||||||
|
|
||||||
void DescribeTo(::std::ostream* os) const {
|
void DescribeTo(::std::ostream* os) const {
|
||||||
*os << "ends with ";
|
*os << "ends with ";
|
||||||
UniversalPrinter<StringType>::Print(suffix_, os);
|
UniversalPrint(suffix_, os);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DescribeNegationTo(::std::ostream* os) const {
|
void DescribeNegationTo(::std::ostream* os) const {
|
||||||
*os << "doesn't end with ";
|
*os << "doesn't end with ";
|
||||||
UniversalPrinter<StringType>::Print(suffix_, os);
|
UniversalPrint(suffix_, os);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -1879,11 +1879,11 @@ class ContainerEqMatcher {
|
||||||
|
|
||||||
void DescribeTo(::std::ostream* os) const {
|
void DescribeTo(::std::ostream* os) const {
|
||||||
*os << "equals ";
|
*os << "equals ";
|
||||||
UniversalPrinter<StlContainer>::Print(rhs_, os);
|
UniversalPrint(rhs_, os);
|
||||||
}
|
}
|
||||||
void DescribeNegationTo(::std::ostream* os) const {
|
void DescribeNegationTo(::std::ostream* os) const {
|
||||||
*os << "does not equal ";
|
*os << "does not equal ";
|
||||||
UniversalPrinter<StlContainer>::Print(rhs_, os);
|
UniversalPrint(rhs_, os);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename LhsContainer>
|
template <typename LhsContainer>
|
||||||
|
@ -1913,8 +1913,7 @@ class ContainerEqMatcher {
|
||||||
*os << "which has these unexpected elements: ";
|
*os << "which has these unexpected elements: ";
|
||||||
printed_header = true;
|
printed_header = true;
|
||||||
}
|
}
|
||||||
UniversalPrinter<typename LhsStlContainer::value_type>::
|
UniversalPrint(*it, os);
|
||||||
Print(*it, os);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1932,7 +1931,7 @@ class ContainerEqMatcher {
|
||||||
<< " doesn't have these expected elements: ";
|
<< " doesn't have these expected elements: ";
|
||||||
printed_header2 = true;
|
printed_header2 = true;
|
||||||
}
|
}
|
||||||
UniversalPrinter<typename StlContainer::value_type>::Print(*it, os);
|
UniversalPrint(*it, os);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -198,7 +198,17 @@ ACTION_TEMPLATE(DeleteArg,
|
||||||
// Action Throw(exception) can be used in a mock function of any type
|
// Action Throw(exception) can be used in a mock function of any type
|
||||||
// to throw the given exception. Any copyable value can be thrown.
|
// to throw the given exception. Any copyable value can be thrown.
|
||||||
#if GTEST_HAS_EXCEPTIONS
|
#if GTEST_HAS_EXCEPTIONS
|
||||||
|
|
||||||
|
// Suppresses the 'unreachable code' warning that VC generates in opt modes.
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning(push) // Saves the current warning state.
|
||||||
|
#pragma warning(disable:4702) // Temporarily disables warning 4702.
|
||||||
|
#endif
|
||||||
ACTION_P(Throw, exception) { throw exception; }
|
ACTION_P(Throw, exception) { throw exception; }
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning(pop) // Restores the warning state.
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif // GTEST_HAS_EXCEPTIONS
|
#endif // GTEST_HAS_EXCEPTIONS
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
|
|
|
@ -1268,6 +1268,7 @@ class ActionResultHolder {
|
||||||
// Prints the held value as an action's result to os.
|
// Prints the held value as an action's result to os.
|
||||||
void PrintAsActionResult(::std::ostream* os) const {
|
void PrintAsActionResult(::std::ostream* os) const {
|
||||||
*os << "\n Returns: ";
|
*os << "\n Returns: ";
|
||||||
|
// T may be a reference type, so we don't use UniversalPrint().
|
||||||
UniversalPrinter<T>::Print(value_, os);
|
UniversalPrinter<T>::Print(value_, os);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1539,7 +1540,7 @@ class FunctionMockerBase : public UntypedFunctionMockerBase {
|
||||||
*os << "Uninteresting mock function call - ";
|
*os << "Uninteresting mock function call - ";
|
||||||
DescribeDefaultActionTo(args, os);
|
DescribeDefaultActionTo(args, os);
|
||||||
*os << " Function call: " << Name();
|
*os << " Function call: " << Name();
|
||||||
UniversalPrinter<ArgumentTuple>::Print(args, os);
|
UniversalPrint(args, os);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Critical section: We must find the matching expectation and the
|
// Critical section: We must find the matching expectation and the
|
||||||
|
@ -1775,7 +1776,7 @@ typename Function<F>::Result FunctionMockerBase<F>::InvokeWith(
|
||||||
}
|
}
|
||||||
|
|
||||||
ss << " Function call: " << Name();
|
ss << " Function call: " << Name();
|
||||||
UniversalPrinter<ArgumentTuple>::Print(args, &ss);
|
UniversalPrint(args, &ss);
|
||||||
|
|
||||||
// In case the action deletes a piece of the expectation, we
|
// In case the action deletes a piece of the expectation, we
|
||||||
// generate the message beforehand.
|
// generate the message beforehand.
|
||||||
|
|
|
@ -68,7 +68,6 @@ def _Main():
|
||||||
options, args = run_tests_util.ParseArgs('gtest')
|
options, args = run_tests_util.ParseArgs('gtest')
|
||||||
test_runner = run_tests_util.TestRunner(
|
test_runner = run_tests_util.TestRunner(
|
||||||
script_dir=SCRIPT_DIR,
|
script_dir=SCRIPT_DIR,
|
||||||
build_dir_var_name='GMOCK_BUILD_DIR',
|
|
||||||
injected_build_dir_finder=GetGmockBuildDir)
|
injected_build_dir_finder=GetGmockBuildDir)
|
||||||
tests = test_runner.GetTestsToRun(args,
|
tests = test_runner.GetTestsToRun(args,
|
||||||
options.configurations,
|
options.configurations,
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
"""Tests the text output of Google C++ Mocking Framework.
|
"""Tests the text output of Google C++ Mocking Framework.
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
gmock_output_test.py --gmock_build_dir=BUILD/DIR --gengolden
|
gmock_output_test.py --build_dir=BUILD/DIR --gengolden
|
||||||
# where BUILD/DIR contains the built gmock_output_test_ file.
|
# where BUILD/DIR contains the built gmock_output_test_ file.
|
||||||
gmock_output_test.py --gengolden
|
gmock_output_test.py --gengolden
|
||||||
gmock_output_test.py
|
gmock_output_test.py
|
||||||
|
|
|
@ -51,62 +51,10 @@ sys.path.append(GTEST_TESTS_UTIL_DIR)
|
||||||
import gtest_test_utils # pylint: disable-msg=C6204
|
import gtest_test_utils # pylint: disable-msg=C6204
|
||||||
|
|
||||||
|
|
||||||
# Initially maps a flag to its default value. After
|
|
||||||
# _ParseAndStripGMockFlags() is called, maps a flag to its actual
|
|
||||||
# value.
|
|
||||||
_flag_map = {'gmock_source_dir': os.path.dirname(sys.argv[0]),
|
|
||||||
'gmock_build_dir': os.path.dirname(sys.argv[0])}
|
|
||||||
_gmock_flags_are_parsed = False
|
|
||||||
|
|
||||||
|
|
||||||
def _ParseAndStripGMockFlags(argv):
|
|
||||||
"""Parses and strips Google Test flags from argv. This is idempotent."""
|
|
||||||
|
|
||||||
global _gmock_flags_are_parsed
|
|
||||||
if _gmock_flags_are_parsed:
|
|
||||||
return
|
|
||||||
|
|
||||||
_gmock_flags_are_parsed = True
|
|
||||||
for flag in _flag_map:
|
|
||||||
# The environment variable overrides the default value.
|
|
||||||
if flag.upper() in os.environ:
|
|
||||||
_flag_map[flag] = os.environ[flag.upper()]
|
|
||||||
|
|
||||||
# The command line flag overrides the environment variable.
|
|
||||||
i = 1 # Skips the program name.
|
|
||||||
while i < len(argv):
|
|
||||||
prefix = '--' + flag + '='
|
|
||||||
if argv[i].startswith(prefix):
|
|
||||||
_flag_map[flag] = argv[i][len(prefix):]
|
|
||||||
del argv[i]
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
# We don't increment i in case we just found a --gmock_* flag
|
|
||||||
# and removed it from argv.
|
|
||||||
i += 1
|
|
||||||
|
|
||||||
|
|
||||||
def GetFlag(flag):
|
|
||||||
"""Returns the value of the given flag."""
|
|
||||||
|
|
||||||
# In case GetFlag() is called before Main(), we always call
|
|
||||||
# _ParseAndStripGMockFlags() here to make sure the --gmock_* flags
|
|
||||||
# are parsed.
|
|
||||||
_ParseAndStripGMockFlags(sys.argv)
|
|
||||||
|
|
||||||
return _flag_map[flag]
|
|
||||||
|
|
||||||
|
|
||||||
def GetSourceDir():
|
def GetSourceDir():
|
||||||
"""Returns the absolute path of the directory where the .py files are."""
|
"""Returns the absolute path of the directory where the .py files are."""
|
||||||
|
|
||||||
return os.path.abspath(GetFlag('gmock_source_dir'))
|
return gtest_test_utils.GetSourceDir()
|
||||||
|
|
||||||
|
|
||||||
def GetBuildDir():
|
|
||||||
"""Returns the absolute path of the directory where the test binaries are."""
|
|
||||||
|
|
||||||
return os.path.abspath(GetFlag('gmock_build_dir'))
|
|
||||||
|
|
||||||
|
|
||||||
def GetTestExecutablePath(executable_name):
|
def GetTestExecutablePath(executable_name):
|
||||||
|
@ -122,7 +70,7 @@ def GetTestExecutablePath(executable_name):
|
||||||
The absolute path of the test binary.
|
The absolute path of the test binary.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return gtest_test_utils.GetTestExecutablePath(executable_name, GetBuildDir())
|
return gtest_test_utils.GetTestExecutablePath(executable_name)
|
||||||
|
|
||||||
|
|
||||||
def GetExitStatus(exit_code):
|
def GetExitStatus(exit_code):
|
||||||
|
@ -160,8 +108,4 @@ TestCase = gtest_test_utils.TestCase
|
||||||
def Main():
|
def Main():
|
||||||
"""Runs the unit test."""
|
"""Runs the unit test."""
|
||||||
|
|
||||||
# We must call _ParseAndStripGMockFlags() before calling
|
|
||||||
# gtest_test_utils.Main(). Otherwise unittest.main it calls will be
|
|
||||||
# confused by the --gmock_* flags.
|
|
||||||
_ParseAndStripGMockFlags(sys.argv)
|
|
||||||
gtest_test_utils.Main()
|
gtest_test_utils.Main()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user