1 //===- YAMLTest.cpp - Tests for Object YAML -------------------------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "llvm/ObjectYAML/YAML.h" 11 #include "llvm/Support/YAMLTraits.h" 12 #include "gtest/gtest.h" 13 14 using namespace llvm; 15 16 struct BinaryHolder { 17 yaml::BinaryRef Binary; 18 }; 19 20 namespace llvm { 21 namespace yaml { 22 template <> 23 struct MappingTraits<BinaryHolder> { mappingllvm::yaml::MappingTraits24 static void mapping(IO &IO, BinaryHolder &BH) { 25 IO.mapRequired("Binary", BH.Binary); 26 } 27 }; 28 } // end namespace yaml 29 } // end namespace llvm 30 TEST(ObjectYAML,BinaryRef)31TEST(ObjectYAML, BinaryRef) { 32 BinaryHolder BH; 33 SmallVector<char, 32> Buf; 34 llvm::raw_svector_ostream OS(Buf); 35 yaml::Output YOut(OS); 36 YOut << BH; 37 EXPECT_NE(OS.str().find("''"), StringRef::npos); 38 } 39