Do not quote YAML plain string myself. Let YAMLIO do that.

llvm-svn: 190486
This commit is contained in:
Rui Ueyama 2013-09-11 04:00:35 +00:00
parent 106ededc4e
commit 2ceba7938d
2 changed files with 16 additions and 19 deletions

View File

@ -29,10 +29,7 @@ namespace yaml {
/// \brief ScalarTraits to read/write std::string objects.
template <> struct ScalarTraits<std::string> {
static void output(const std::string &Val, void *, llvm::raw_ostream &Out) {
// We need to put quotes around the string to make sure special characters
// in the string is not treated as YAML tokens.
std::string NormalizedVal = std::string("\"") + Val + std::string("\"");
Out << NormalizedVal;
Out << Val;
}
static StringRef input(StringRef Scalar, void *, std::string &Val) {

View File

@ -36,34 +36,34 @@ 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"
"Context: \"some context\"\n"
"MainSourceFile: /path/to/source.cpp\n"
"Context: some context\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"
" ReplacementText: 'replacement #1'\n"
" - FilePath: /path/to/file2.h\n"
" Offset: 301\n"
" Length: 2\n"
" ReplacementText: \"replacement #2\"\n"
" ReplacementText: 'replacement #2'\n"
"...\n",
YamlContentStream.str().c_str());
}
TEST(ReplacementsYamlTest, deserializesReplacements) {
std::string YamlContent = "---\n"
"MainSourceFile: \"/path/to/source.cpp\"\n"
"Context: \"some context\"\n"
"MainSourceFile: /path/to/source.cpp\n"
"Context: some context\n"
"Replacements:\n"
" - 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"
" ReplacementText: 'replacement #1'\n"
" - FilePath: /path/to/file2.h\n"
" Offset: 301\n"
" Length: 2\n"
" ReplacementText: \"replacement #2\"\n"
" ReplacementText: 'replacement #2'\n"
"...\n";
TranslationUnitReplacements DocActual;
yaml::Input YAML(YamlContent);
@ -85,12 +85,12 @@ TEST(ReplacementsYamlTest, deserializesReplacements) {
TEST(ReplacementsYamlTest, deserializesWithoutContext) {
// Make sure a doc can be read without the context field.
std::string YamlContent = "---\n"
"MainSourceFile: \"/path/to/source.cpp\"\n"
"MainSourceFile: /path/to/source.cpp\n"
"Replacements:\n"
" - FilePath: \"target_file.h\"\n"
" - FilePath: target_file.h\n"
" Offset: 1\n"
" Length: 10\n"
" ReplacementText: \"replacement\"\n"
" ReplacementText: replacement\n"
"...\n";
TranslationUnitReplacements DocActual;
yaml::Input YAML(YamlContent);