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