From e171bc8ce4a5c828c7e574ee0e3b5a2677c87cb7 Mon Sep 17 00:00:00 2001 From: Francis Visoiu Mistrih Date: Wed, 16 Oct 2019 16:18:12 +0000 Subject: [PATCH] [Remarks] Use StringRef::contains to avoid differences in error string Different OSs have different error strings: http://lab.llvm.org:8011/builders/clang-ppc64be-linux/builds/39534/steps/ninja%20check%201/logs/FAIL%3A%20LLVM-Unit%3A%3AYAMLRemarks.ParsingBadMeta git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@375011 91177308-0d34-0410-b5e6-96231b3b80d8 --- unittests/Remarks/YAMLRemarksParsingTest.cpp | 30 ++++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/unittests/Remarks/YAMLRemarksParsingTest.cpp b/unittests/Remarks/YAMLRemarksParsingTest.cpp index 04ba8702f36..376fde276cc 100644 --- a/unittests/Remarks/YAMLRemarksParsingTest.cpp +++ b/unittests/Remarks/YAMLRemarksParsingTest.cpp @@ -63,7 +63,12 @@ bool parseExpectError(const char (&Buf)[N], const char *Error) { return StringRef(Stream.str()).contains(Error); } -void parseExpectErrorMeta(StringRef Buf, const char *Error, +enum class CmpType { + Equal, + Contains +}; + +void parseExpectErrorMeta(StringRef Buf, const char *Error, CmpType Cmp, Optional ExternalFilePrependPath = None) { std::string ErrorStr; raw_string_ostream Stream(ErrorStr); @@ -77,7 +82,11 @@ void parseExpectErrorMeta(StringRef Buf, const char *Error, // Use a case insensitive comparision due to case differences in error strings // for different OSs. - EXPECT_EQ(StringRef(Stream.str()).lower(), StringRef(Error).lower()); + if (Cmp == CmpType::Equal) + EXPECT_EQ(StringRef(Stream.str()).lower(), StringRef(Error).lower()); + + if (Cmp == CmpType::Contains) + EXPECT_TRUE(StringRef(Stream.str()).contains(StringRef(Error))); } TEST(YAMLRemarks, ParsingEmpty) { @@ -684,32 +693,35 @@ TEST(YAMLRemarks, ParsingGoodMeta) { TEST(YAMLRemarks, ParsingBadMeta) { parseExpectErrorMeta(StringRef("REMARKSS", 9), - "Expecting \\0 after magic number."); + "Expecting \\0 after magic number.", CmpType::Equal); - parseExpectErrorMeta(StringRef("REMARKS\0", 8), "Expecting version number."); + parseExpectErrorMeta(StringRef("REMARKS\0", 8), "Expecting version number.", + CmpType::Equal); parseExpectErrorMeta(StringRef("REMARKS\0" "\x09\0\0\0\0\0\0\0", 16), - "Mismatching remark version. Got 9, expected 0."); + "Mismatching remark version. Got 9, expected 0.", + CmpType::Equal); parseExpectErrorMeta(StringRef("REMARKS\0" "\0\0\0\0\0\0\0\0", 16), - "Expecting string table size."); + "Expecting string table size.", CmpType::Equal); parseExpectErrorMeta(StringRef("REMARKS\0" "\0\0\0\0\0\0\0\0" "\x01\0\0\0\0\0\0\0", 24), - "Expecting string table."); + "Expecting string table.", CmpType::Equal); parseExpectErrorMeta(StringRef("REMARKS\0" "\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0" "/path/", 30), - "'/path/': No such file or directory"); + "'/path/': No such file or directory", + CmpType::Contains); parseExpectErrorMeta(StringRef("REMARKS\0" "\0\0\0\0\0\0\0\0" @@ -717,5 +729,5 @@ TEST(YAMLRemarks, ParsingBadMeta) { "/path/", 30), "'/baddir/path/': No such file or directory", - StringRef("/baddir/")); + CmpType::Contains, StringRef("/baddir/")); } -- 2.49.0