From: Manuel Klimek Date: Mon, 2 May 2011 18:27:26 +0000 (+0000) Subject: Adds a test for the command line parser when a quoted string is not closed by a quote. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=850dd809534d172b66328d9827ae27880885ac5b;p=clang Adds a test for the command line parser when a quoted string is not closed by a quote. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130704 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/unittests/Tooling/JsonCompileCommandLineDatabaseTest.cpp b/unittests/Tooling/JsonCompileCommandLineDatabaseTest.cpp index d875293e5d..2a911d1063 100644 --- a/unittests/Tooling/JsonCompileCommandLineDatabaseTest.cpp +++ b/unittests/Tooling/JsonCompileCommandLineDatabaseTest.cpp @@ -92,6 +92,20 @@ TEST(UnescapeJsonCommandLine, ParsesStringsWithoutSpacesIntoSingleArgument) { EXPECT_EQ("abcdefg", MixedNoSpaces[0]); } +TEST(UnescapeJsonCommandLine, ParsesQuotedStringWithoutClosingQuote) { + std::vector Unclosed = UnescapeJsonCommandLine("\"abc"); + ASSERT_EQ(1ul, Unclosed.size()); + EXPECT_EQ("abc", Unclosed[0]); + + std::vector EndsInBackslash = UnescapeJsonCommandLine("\"a\\"); + ASSERT_EQ(1ul, EndsInBackslash.size()); + EXPECT_EQ("a", EndsInBackslash[0]); + + std::vector Empty = UnescapeJsonCommandLine("\""); + ASSERT_EQ(1ul, Empty.size()); + EXPECT_EQ("", Empty[0]); +} + TEST(JsonCompileCommandLineParser, FailsOnEmptyString) { JsonCompileCommandLineParser Parser("", NULL); EXPECT_FALSE(Parser.Parse()) << Parser.GetErrorMessage();