X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=unittests%2FSupport%2FYAMLParserTest.cpp;h=41ad649699caa01d2f7dd9987c084c8339ae3141;hp=69b354a91d11e04c226989c71b3ea2269c7e0ccb;hb=71a6baa31c4a08a3c123953a0239bff001b2e437;hpb=4cb9f9dcb1839ebe4a09c1c254f1ee1f598d98c8;ds=sidebyside diff --git a/unittests/Support/YAMLParserTest.cpp b/unittests/Support/YAMLParserTest.cpp index 69b354a91d1..41ad649699c 100644 --- a/unittests/Support/YAMLParserTest.cpp +++ b/unittests/Support/YAMLParserTest.cpp @@ -260,4 +260,76 @@ TEST(YAMLParser, DiagnosticFilenameFromBufferID) { EXPECT_EQ("buffername.yaml", GeneratedDiag.getFilename()); } +TEST(YAMLParser, SameNodeIteratorOperatorNotEquals) { + SourceMgr SM; + yaml::Stream Stream("[\"1\", \"2\"]", SM); + + yaml::SequenceNode *Node = dyn_cast( + Stream.begin()->getRoot()); + + auto Begin = Node->begin(); + auto End = Node->end(); + + EXPECT_TRUE(Begin != End); + EXPECT_FALSE(Begin != Begin); + EXPECT_FALSE(End != End); +} + +TEST(YAMLParser, SameNodeIteratorOperatorEquals) { + SourceMgr SM; + yaml::Stream Stream("[\"1\", \"2\"]", SM); + + yaml::SequenceNode *Node = dyn_cast( + Stream.begin()->getRoot()); + + auto Begin = Node->begin(); + auto End = Node->end(); + + EXPECT_FALSE(Begin == End); + EXPECT_TRUE(Begin == Begin); + EXPECT_TRUE(End == End); +} + +TEST(YAMLParser, DifferentNodesIteratorOperatorNotEquals) { + SourceMgr SM; + yaml::Stream Stream("[\"1\", \"2\"]", SM); + yaml::Stream AnotherStream("[\"1\", \"2\"]", SM); + + yaml::SequenceNode *Node = dyn_cast( + Stream.begin()->getRoot()); + yaml::SequenceNode *AnotherNode = dyn_cast( + AnotherStream.begin()->getRoot()); + + auto Begin = Node->begin(); + auto End = Node->end(); + + auto AnotherBegin = AnotherNode->begin(); + auto AnotherEnd = AnotherNode->end(); + + EXPECT_TRUE(Begin != AnotherBegin); + EXPECT_TRUE(Begin != AnotherEnd); + EXPECT_FALSE(End != AnotherEnd); +} + +TEST(YAMLParser, DifferentNodesIteratorOperatorEquals) { + SourceMgr SM; + yaml::Stream Stream("[\"1\", \"2\"]", SM); + yaml::Stream AnotherStream("[\"1\", \"2\"]", SM); + + yaml::SequenceNode *Node = dyn_cast( + Stream.begin()->getRoot()); + yaml::SequenceNode *AnotherNode = dyn_cast( + AnotherStream.begin()->getRoot()); + + auto Begin = Node->begin(); + auto End = Node->end(); + + auto AnotherBegin = AnotherNode->begin(); + auto AnotherEnd = AnotherNode->end(); + + EXPECT_FALSE(Begin == AnotherBegin); + EXPECT_FALSE(Begin == AnotherEnd); + EXPECT_TRUE(End == AnotherEnd); +} + } // end namespace llvm