Merge pull request #2361 from guillemglez:master

PiperOrigin-RevId: 261340959
This commit is contained in:
Gennadiy Civil 2019-08-02 13:06:47 -04:00
commit 47092933fd
5 changed files with 51 additions and 46 deletions

View File

@ -631,7 +631,7 @@ class VersionControlSystem(object):
new_content: For text files, this is empty. For binary files, this is new_content: For text files, this is empty. For binary files, this is
the contents of the new file, since the diff output won't contain the contents of the new file, since the diff output won't contain
information to reconstruct the current file. information to reconstruct the current file.
is_binary: True iff the file is binary. is_binary: True if the file is binary.
status: The status of the file. status: The status of the file.
""" """

View File

@ -101,14 +101,15 @@ If you already have a function or functor that returns `bool` (or a type that
can be implicitly converted to `bool`), you can use it in a *predicate can be implicitly converted to `bool`), you can use it in a *predicate
assertion* to get the function arguments printed for free: assertion* to get the function arguments printed for free:
| Fatal assertion | Nonfatal assertion | Verifies | <!-- mdformat off(github rendering does not support multiline tables) -->
| -------------------- | -------------------- | --------------------------- |
| `ASSERT_PRED1(pred1, | `EXPECT_PRED1(pred1, | `pred1(val1)` is true |
: val1);` : val1);` : :
| `ASSERT_PRED2(pred2, | `EXPECT_PRED2(pred2, | `pred2(val1, val2)` is true |
: val1, val2);` : val1, val2);` : :
| `...` | `...` | ... |
| Fatal assertion | Nonfatal assertion | Verifies |
| --------------------------------- | --------------------------------- | --------------------------- |
| `ASSERT_PRED1(pred1, val1)` | `EXPECT_PRED1(pred1, val1)` | `pred1(val1)` is true |
| `ASSERT_PRED2(pred2, val1, val2)` | `EXPECT_PRED2(pred2, val1, val2)` | `pred1(val1, val2)` is true |
| `...` | `...` | `...` |
<!-- mdformat on-->
In the above, `predn` is an `n`-ary predicate function or functor, where `val1`, In the above, `predn` is an `n`-ary predicate function or functor, where `val1`,
`val2`, ..., and `valn` are its arguments. The assertion succeeds if the `val2`, ..., and `valn` are its arguments. The assertion succeeds if the
predicate returns `true` when applied to the given arguments, and fails predicate returns `true` when applied to the given arguments, and fails
@ -330,23 +331,26 @@ want to learn more, see
#### Floating-Point Macros #### Floating-Point Macros
| Fatal assertion | Nonfatal assertion | Verifies | <!-- mdformat off(github rendering does not support multiline tables) -->
| ----------------------- | ----------------------- | ----------------------- |
| `ASSERT_FLOAT_EQ(val1, | `EXPECT_FLOAT_EQ(val1, | the two `float` values | | Fatal assertion | Nonfatal assertion | Verifies |
: val2);` : val2);` : are almost equal : | ------------------------------- | ------------------------------- | ---------------------------------------- |
| `ASSERT_DOUBLE_EQ(val1, | `EXPECT_DOUBLE_EQ(val1, | the two `double` values | | `ASSERT_FLOAT_EQ(val1, val2);` | `EXPECT_FLOAT_EQ(val1, val2);` | the two `float` values are almost equal |
: val2);` : val2);` : are almost equal : | `ASSERT_DOUBLE_EQ(val1, val2);` | `EXPECT_DOUBLE_EQ(val1, val2);` | the two `double` values are almost equal |
<!-- mdformat on-->
By "almost equal" we mean the values are within 4 ULP's from each other. By "almost equal" we mean the values are within 4 ULP's from each other.
The following assertions allow you to choose the acceptable error bound: The following assertions allow you to choose the acceptable error bound:
| Fatal assertion | Nonfatal assertion | Verifies | <!-- mdformat off(github rendering does not support multiline tables) -->
| ------------------ | ------------------------ | ------------------------- |
| `ASSERT_NEAR(val1, | `EXPECT_NEAR(val1, val2, | the difference between | | Fatal assertion | Nonfatal assertion | Verifies |
: val2, abs_error);` : abs_error);` : `val1` and `val2` doesn't : | ------------------------------------- | ------------------------------------- | -------------------------------------------------------------------------------- |
: : : exceed the given absolute : | `ASSERT_NEAR(val1, val2, abs_error);` | `EXPECT_NEAR(val1, val2, abs_error);` | the difference between `val1` and `val2` doesn't exceed the given absolute error |
: : : error :
<!-- mdformat on-->
#### Floating-Point Predicate-Format Functions #### Floating-Point Predicate-Format Functions
@ -369,10 +373,13 @@ Verifies that `val1` is less than, or almost equal to, `val2`. You can replace
arguments passed to mock objects. A gMock *matcher* is basically a predicate arguments passed to mock objects. A gMock *matcher* is basically a predicate
that knows how to describe itself. It can be used in these assertion macros: that knows how to describe itself. It can be used in these assertion macros:
| Fatal assertion | Nonfatal assertion | Verifies | <!-- mdformat off(github rendering does not support multiline tables) -->
| ------------------- | ------------------------------ | --------------------- |
| `ASSERT_THAT(value, | `EXPECT_THAT(value, matcher);` | value matches matcher | | Fatal assertion | Nonfatal assertion | Verifies |
: matcher);` : : : | ------------------------------ | ------------------------------ | --------------------- |
| `ASSERT_THAT(value, matcher);` | `EXPECT_THAT(value, matcher);` | value matches matcher |
<!-- mdformat on-->
For example, `StartsWith(prefix)` is a matcher that matches a string starting For example, `StartsWith(prefix)` is a matcher that matches a string starting
with `prefix`, and you can write: with `prefix`, and you can write:
@ -1342,19 +1349,17 @@ for generating test parameters. They return what we call (surprise!) *parameter
generators*. Here is a summary of them, which are all in the `testing` generators*. Here is a summary of them, which are all in the `testing`
namespace: namespace:
| Parameter Generator | Behavior | <!-- mdformat off(github rendering does not support multiline tables) -->
| ---------------------------- | ------------------------------------------- |
| `Range(begin, end [, step])` | Yields values `{begin, begin+step, | | Parameter Generator | Behavior |
: : begin+step+step, ...}`. The values do not : | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
: : include `end`. `step` defaults to 1. : | `Range(begin, end [, step])` | Yields values `{begin, begin+step, begin+step+step, ...}`. The values do not include `end`. `step` defaults to 1. |
| `Values(v1, v2, ..., vN)` | Yields values `{v1, v2, ..., vN}`. | | `Values(v1, v2, ..., vN)` | Yields values `{v1, v2, ..., vN}`. |
| `ValuesIn(container)` and | Yields values from a C-style array, an | | `ValuesIn(container)` and `ValuesIn(begin,end)` | Yields values from a C-style array, an STL-style container, or an iterator range `[begin, end)` |
: `ValuesIn(begin,end)` : STL-style container, or an iterator range : | `Bool()` | Yields sequence `{false, true}`. |
: : `[begin, end)`. : | `Combine(g1, g2, ..., gN)` | Yields all combinations (Cartesian product) as std\:\:tuples of the values generated by the `N` generators. |
| `Bool()` | Yields sequence `{false, true}`. |
| `Combine(g1, g2, ..., gN)` | Yields all combinations (Cartesian product) | <!-- mdformat on-->
: : as std\:\:tuples of the values generated by :
: : the `N` generators. :
For more details, see the comments at the definitions of these functions. For more details, see the comments at the definitions of these functions.

View File

@ -540,10 +540,10 @@ class Predicate%(n)sTest : public testing::Test {
} }
} }
// true iff the test function is expected to run to finish. // true if the test function is expected to run to finish.
static bool expected_to_finish_; static bool expected_to_finish_;
// true iff the test function did run to finish. // true if the test function did run to finish.
static bool finished_; static bool finished_;
""" % DEFS """ % DEFS
@ -572,12 +572,12 @@ typedef Predicate%(n)sTest ASSERT_PRED%(n)sTest;
"""Returns the test for a predicate assertion macro. """Returns the test for a predicate assertion macro.
Args: Args:
use_format: true iff the assertion is a *_PRED_FORMAT*. use_format: true if the assertion is a *_PRED_FORMAT*.
use_assert: true iff the assertion is a ASSERT_*. use_assert: true if the assertion is a ASSERT_*.
expect_failure: true iff the assertion is expected to fail. expect_failure: true if the assertion is expected to fail.
use_functor: true iff the first argument of the assertion is use_functor: true if the first argument of the assertion is
a functor (as opposed to a function) a functor (as opposed to a function)
use_user_type: true iff the predicate functor/function takes use_user_type: true if the predicate functor/function takes
argument(s) of a user-defined type. argument(s) of a user-defined type.
Example: Example:

View File

@ -161,7 +161,7 @@ class Token:
def StartsWith(lines, pos, string): def StartsWith(lines, pos, string):
"""Returns True iff the given position in lines starts with 'string'.""" """Returns True if the given position in lines starts with 'string'."""
return lines[pos.line][pos.column:].startswith(string) return lines[pos.line][pos.column:].startswith(string)

View File

@ -631,7 +631,7 @@ class VersionControlSystem(object):
new_content: For text files, this is empty. For binary files, this is new_content: For text files, this is empty. For binary files, this is
the contents of the new file, since the diff output won't contain the contents of the new file, since the diff output won't contain
information to reconstruct the current file. information to reconstruct the current file.
is_binary: True iff the file is binary. is_binary: True if the file is binary.
status: The status of the file. status: The status of the file.
""" """