1//===- llvm/unittest/Object/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/Object/YAML.h"
11#include "llvm/Support/YAMLTraits.h"
12#include "gtest/gtest.h"
13
14using namespace llvm;
15
16struct BinaryHolder {
17  object::yaml::BinaryRef Binary;
18};
19
20namespace llvm {
21namespace yaml {
22template <>
23struct MappingTraits<BinaryHolder> {
24  static void mapping(IO &IO, BinaryHolder &BH) {
25    IO.mapRequired("Binary", BH.Binary);
26  }
27};
28} // end namespace yaml
29} // end namespace llvm
30
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