1845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva//===- llvm/unittest/Object/YAMLTest.cpp - Tests for Object YAML ----------===// 2845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva// 3845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva// The LLVM Compiler Infrastructure 4845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva// 5845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva// This file is distributed under the University of Illinois Open Source 6845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva// License. See LICENSE.TXT for details. 7845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva// 8845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva//===----------------------------------------------------------------------===// 9845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva 10cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines#include "llvm/MC/YAML.h" 11845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva#include "llvm/Support/YAMLTraits.h" 12845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva#include "gtest/gtest.h" 13845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva 14845e196a52d52abcd789612750f6f34af3a2cc79Sean Silvausing namespace llvm; 15845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva 16845e196a52d52abcd789612750f6f34af3a2cc79Sean Silvastruct BinaryHolder { 17cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines yaml::BinaryRef Binary; 18845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva}; 19845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva 20845e196a52d52abcd789612750f6f34af3a2cc79Sean Silvanamespace llvm { 21845e196a52d52abcd789612750f6f34af3a2cc79Sean Silvanamespace yaml { 22845e196a52d52abcd789612750f6f34af3a2cc79Sean Silvatemplate <> 23845e196a52d52abcd789612750f6f34af3a2cc79Sean Silvastruct MappingTraits<BinaryHolder> { 24845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva static void mapping(IO &IO, BinaryHolder &BH) { 25845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva IO.mapRequired("Binary", BH.Binary); 26845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva } 27845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva}; 28845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva} // end namespace yaml 29845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva} // end namespace llvm 30845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva 31845e196a52d52abcd789612750f6f34af3a2cc79Sean SilvaTEST(ObjectYAML, BinaryRef) { 32845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva BinaryHolder BH; 33845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva SmallVector<char, 32> Buf; 34845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva llvm::raw_svector_ostream OS(Buf); 35845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva yaml::Output YOut(OS); 36845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva YOut << BH; 3736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines EXPECT_NE(OS.str().find("''"), StringRef::npos); 38845e196a52d52abcd789612750f6f34af3a2cc79Sean Silva} 39