]> granicus.if.org Git - clang/commitdiff
Make YAML quote forward slashes.
authorZachary Turner <zturner@google.com>
Fri, 12 Oct 2018 16:31:20 +0000 (16:31 +0000)
committerZachary Turner <zturner@google.com>
Fri, 12 Oct 2018 16:31:20 +0000 (16:31 +0000)
If you have the string /usr/bin, prior to this patch it would not
be quoted by our YAML serializer.  But a string like C:\src would
be, due to the presence of a backslash.  This makes the quoting
rules of basically every single file path different depending on
the path syntax (posix vs. Windows).

While technically not required by the YAML specification to quote
forward slashes, when the behavior of paths is inconsistent it
makes it difficult to portably write FileCheck lines that will
work with either kind of path.

Differential Revision: https://reviews.llvm.org/D53169

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@344359 91177308-0d34-0410-b5e6-96231b3b80d8

unittests/Tooling/DiagnosticsYamlTest.cpp
unittests/Tooling/ReplacementsYamlTest.cpp

index 83e09eaeef2dcf4bb1cf29bcd06bacef17777034..18284bd99575e5eb5c524006cfc5689ba1e694da 100644 (file)
@@ -58,30 +58,30 @@ TEST(DiagnosticsYamlTest, serializesDiagnostics) {
   YAML << TUD;
 
   EXPECT_EQ("---\n"
-            "MainSourceFile:  path/to/source.cpp\n"
+            "MainSourceFile:  'path/to/source.cpp'\n"
             "Diagnostics:     \n"
             "  - DiagnosticName:  'diagnostic#1\'\n"
             "    Message:         'message #1'\n"
             "    FileOffset:      55\n"
-            "    FilePath:        path/to/source.cpp\n"
+            "    FilePath:        'path/to/source.cpp'\n"
             "    Replacements:    \n"
-            "      - FilePath:        path/to/source.cpp\n"
+            "      - FilePath:        'path/to/source.cpp'\n"
             "        Offset:          100\n"
             "        Length:          12\n"
             "        ReplacementText: 'replacement #1'\n"
             "  - DiagnosticName:  'diagnostic#2'\n"
             "    Message:         'message #2'\n"
             "    FileOffset:      60\n"
-            "    FilePath:        path/to/header.h\n"
+            "    FilePath:        'path/to/header.h'\n"
             "    Replacements:    \n"
-            "      - FilePath:        path/to/header.h\n"
+            "      - FilePath:        'path/to/header.h'\n"
             "        Offset:          62\n"
             "        Length:          2\n"
             "        ReplacementText: 'replacement #2'\n"
             "  - DiagnosticName:  'diagnostic#3'\n"
             "    Message:         'message #3'\n"
             "    FileOffset:      72\n"
-            "    FilePath:        path/to/source2.cpp\n"
+            "    FilePath:        'path/to/source2.cpp'\n"
             "    Replacements:    \n"
             "...\n",
             YamlContentStream.str());
index 3e4193d2adfb28e70e9535c6ec8bd673786c575b..2e5a87a931dff9f89c1d75f98fb601ee8f046d28 100644 (file)
@@ -33,13 +33,13 @@ TEST(ReplacementsYamlTest, serializesReplacements) {
 
   // NOTE: If this test starts to fail for no obvious reason, check whitespace.
   ASSERT_STREQ("---\n"
-               "MainSourceFile:  /path/to/source.cpp\n"
+               "MainSourceFile:  '/path/to/source.cpp'\n"
                "Replacements:    \n" // Extra whitespace here!
-               "  - FilePath:        /path/to/file1.h\n"
+               "  - FilePath:        '/path/to/file1.h'\n"
                "    Offset:          232\n"
                "    Length:          56\n"
                "    ReplacementText: 'replacement #1'\n"
-               "  - FilePath:        /path/to/file2.h\n"
+               "  - FilePath:        '/path/to/file2.h'\n"
                "    Offset:          301\n"
                "    Length:          2\n"
                "    ReplacementText: 'replacement #2'\n"