This reverts commit 20b5b8ecc7.
Reason for revert: Breaks existing applications, such as ANGLE
(angleproject.org), requires adding an extra prefix that needs to be
typed for no reason (when testing from command line) and increases the
logs' sizes by a non-trivial amount due to the very large number of
tests ANGLE runs.
Original commit message:
Add a compile time check to ensure that the parameters to TEST_P and
INSTANTIATE_TEST_SUITE_P are not empty. Some compilers already fail
in that case and, even where it works, it's likely to result in
technically invalid code by virtue of creating reserved identifiers:
https://en.cppreference.com/w/cpp/language/identifiers
First, every project is perfectly capable of adding a prefix if they
want to support such a compiler. This change penalizes every
project.
Second, using a prefix such as `_p` also results in reserved
identifiers, so this change is not really solving the problem. For that
matter, instead of generating `gtest_##prefix##...`, you can generate
`gtest_x##prefix##...` to correctly fix the issue, including when empty
prefixes are used.
This reverts commit 4c25e2b87f.
Reason for revert: Reverting the commit that disallows empty prefixes.
Original commit message:
Remove a test case rendered obsolete by disallowing empty argument for INSTANTIATE_TEST_SUITE_P.
Remove the code that it was testing.
Empty arguments can be passed to macros per C99 and C++11 specs, which
can then be forwarded to other macros.
Visual Studio's compiler has a bug in the following situation:
#define A(x) #x
#define B(x, y) A(x)
B(, b)
In the above case, Visual Studio first expands x to nothing, then
complains that A is not invoked with the right amount of arguments.
However, x in A(x) is still one argument, even if it expands to no
preprocessing tokens. See also https://stackoverflow.com/a/7674214.