summaryrefslogtreecommitdiff
path: root/llvm/unittests/Support/YAMLParserTest.cpp
AgeCommit message (Collapse)Author
2023-11-10[YAMLParser] Unfold multi-line scalar values (#70898)Igor Kudrin
Long scalar values can be split into multiple lines to improve readability. The rules are described in Section 6.5. "Line Folding", https://yaml.org/spec/1.2.2/#65-line-folding. In addition, for flow scalar styles, the Spec states that "All leading and trailing white space characters on each line are excluded from the content", https://yaml.org/spec/1.2.2/#73-flow-scalar-styles. The patch implements these unfolding rules for double-quoted, single-quoted, and plain scalars.
2023-10-17[YAMLParser] Improve plain scalar spec compliance (#68946)akirchhoff-modular
The `YAMLParser.h` header file claims support for YAML 1.2 with a few deviations, but our plain scalar parsing failed to parse some valid YAML according to the spec. This change puts us more in compliance with the YAML spec, now letting us parse plain scalars containing additional special characters in cases where they are not ambiguous.
2022-12-15YAMLParser: llvm::Optional => std::optionalFangrui Song
2022-07-12[llvm] Use has_value instead of hasValue (NFC)Kazu Hirata
2022-06-25Revert "Don't use Optional::hasValue (NFC)"Kazu Hirata
This reverts commit aa8feeefd3ac6c78ee8f67bf033976fc7d68bc6d.
2022-06-25Don't use Optional::hasValue (NFC)Kazu Hirata
2022-01-21[NFCI][Support] Avoid ASSERT_/EXPECT_TRUE(A <op> B)Archibald Elliott
The error messages in tests are far better when a test fails if the test is written using ASSERT_/EXPECT_<operator>(A, B) rather than ASSERT_/EXPECT_TRUE(A <operator> B). This commit updates all of llvm/unittests/Support to use these macros where possible. This change has not been possible in: - llvm/unittests/Support/FSUniqueIDTest.cpp - due to not overloading operators beyond ==, != and <. - llvm/unittests/Support/BranchProbabilityTest.cpp - where the unchanged tests are of the operator overloads themselves. There are other possibilities of this conversion not being valid, which have not applied in these tests, as they do not use NULL (they use nullptr), and they do not use const char* (they use std::string or StringRef). Reviewed By: mubashar_ Differential Revision: https://reviews.llvm.org/D117319
2020-12-12[YAML] Support extended spellings when parsing bools.Nathan James
Support all the spellings of boolean datatypes according to https://yaml.org/type/bool.html Reviewed By: silvas Differential Revision: https://reviews.llvm.org/D92755
2019-11-11Fix null dereference in yaml::Document::skipThomas Finch
Summary: The attached test case replicates a null dereference crash in `yaml::Document::skip()`. This was fixed by adding a check and early return in the method. Reviewers: Bigcheese, hintonda, beanz Reviewed By: hintonda Subscribers: hiraditya, dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69974
2019-01-19Update the file headers across all of the LLVM projects in the monorepoChandler Carruth
to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636
2017-11-23[YAMLParser] Don't crash on null keys in KeyValueNodes.Benjamin Kramer
Found by clangd-fuzzer! llvm-svn: 318935
2017-06-06Re-sort #include lines for unittests. This uses a slightly modifiedChandler Carruth
clang-format (https://reviews.llvm.org/D33932) to keep primary headers at the top and handle new utility headers like 'gmock' consistently with other utility headers. No other change was made. I did no manual edits, all of this is clang-format. This should allow other changes to have more clear and focused diffs, and is especially motivated by moving some headers into more focused libraries. llvm-svn: 304786
2016-04-18[NFC] Header cleanupMehdi Amini
Removed some unused headers, replaced some headers with forward class declarations. Found using simple scripts like this one: clear && ack --cpp -l '#include "llvm/ADT/IndexedMap.h"' | xargs grep -L 'IndexedMap[<]' | xargs grep -n --color=auto 'IndexedMap' Patch by Eugene Kosov <claprix@yandex.ru> Differential Revision: http://reviews.llvm.org/D19219 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266595
2016-01-06Add != to YAMLParser's basic_collection_iterator.Jordan Rose
...and mark it as merely an input_iterator rather than a forward_iterator, since it is destructive. And then rewrite == to take advantage of that. Patch by Alex Denisov! llvm-svn: 256913
2015-05-21YAML: Null terminate block scalar's value.Alex Lorenz
The commit null terminates the string value in the `yaml::BlockScalarNode` class. This change is motivated by the initial MIR serialization commit (r237708) that I reverted in r237730 because the LLVM IR source from the block scalar node wasn't terminated by a null character and thus the buildbots failed on one testcase sometimes. This change enables me to recommit the reverted commit. llvm-svn: 237942
2015-05-13YAML: Implement block scalar parsing.Alex Lorenz
This commit implements the parsing of YAML block scalars. Some code existed for it before, but it couldn't parse block scalars. This commit adds a new yaml node type to represent the block scalar values. This commit also deletes the 'spec-09-27' and 'spec-09-28' tests as they are identical to the test file 'spec-09-26'. This commit introduces 3 new utility functions to the YAML scanner class: `skip_s_space`, `advanceWhile` and `consumeLineBreakIfPresent`. Reviewers: Duncan P. N. Exon Smith Differential Revision: http://reviews.llvm.org/D9503 llvm-svn: 237314
2015-05-06YAML: Fix crash in the skip method of KeyValueNode class. Alex Lorenz
This commit changes the 'skip' method in the 'KeyValueNode' class to ensure that it doesn't dereference a null pointer when calling the 'skip' method of its value child node. It also adds a unittest that ensures that the crash doesn't occur. This change is motivated by a patch that implements parsing of YAML block scalars (http://reviews.llvm.org/D9503), as one of the unittests in that patch triggered this problem. llvm-svn: 236669
2014-08-27Return a std::unique_ptr when creating a new MemoryBuffer.Rafael Espindola
llvm-svn: 216583
2014-08-27yaml::Stream doesn't need to take ownership of the buffer.Rafael Espindola
In fact, most users were already using the StringRef version. llvm-svn: 216575
2014-08-17Convert an ownership comment with std::uinque_ptr.Rafael Espindola
llvm-svn: 215855
2014-08-13Test commit, remove trailing whitespaceBenjamin Foster
llvm-svn: 215556
2012-11-19Allow using MemoryBuffers with yaml::Stream directly.Sean Silva
The rationale is to get YAML filenames in diagnostics from yaml::Stream::printError -- currently the filename is hard-coded as "YAML" because there's no buffer information available. Patch by Kim Gräsman! llvm-svn: 168341
2012-07-31Suppress stderr noise when test case runs.Nick Kledzik
llvm-svn: 161085
2012-04-03Add YAML parser to Support.Michael J. Spencer
llvm-svn: 153977