Add function in MatchOutputCodeTest to find occurrence of a string
The patch adds a function in MatchOutputCodeTest to get the position
of the first occurrence of an expression in the translated output code.
This can help design more complicated tests like a test which checks
for the order of simple expressions.
BUG=angleproject:2062
TEST=angle_unittests
Change-Id: I1249d4762c247848c4eec64ecb8c1357b5e8d40a
Reviewed-on: https://chromium-review.googlesource.com/563659
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
diff --git a/src/tests/test_utils/compiler_test.cpp b/src/tests/test_utils/compiler_test.cpp
index 0081bc6..c57fb60 100644
--- a/src/tests/test_utils/compiler_test.cpp
+++ b/src/tests/test_utils/compiler_test.cpp
@@ -140,14 +140,19 @@
bool MatchOutputCodeTest::foundInCode(ShShaderOutput output, const char *stringToFind) const
{
+ return findInCode(output, stringToFind) != std::string::npos;
+}
+
+size_t MatchOutputCodeTest::findInCode(ShShaderOutput output, const char *stringToFind) const
+{
const auto code = mOutputCode.find(output);
EXPECT_NE(mOutputCode.end(), code);
if (code == mOutputCode.end())
{
- return false;
+ return std::string::npos;
}
- return code->second.find(stringToFind) != std::string::npos;
+ return code->second.find(stringToFind);
}
bool MatchOutputCodeTest::foundInCode(ShShaderOutput output,
diff --git a/src/tests/test_utils/compiler_test.h b/src/tests/test_utils/compiler_test.h
index feb4dea..a12d0cc 100644
--- a/src/tests/test_utils/compiler_test.h
+++ b/src/tests/test_utils/compiler_test.h
@@ -64,6 +64,9 @@
}
bool foundInCode(ShShaderOutput output, const char *stringToFind) const;
+ // Returns the position of the first character of the first match in the translated output
+ // source. If no matches are found, then string::npos is returned.
+ size_t findInCode(ShShaderOutput output, const char *stringToFind) const;
// Test that the string occurs for exactly expectedOccurrences times
bool foundInCode(ShShaderOutput output,