Start MCAsmStreamer implementation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74044 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/unittests/MC/AsmStreamerTest.cpp b/unittests/MC/AsmStreamerTest.cpp
new file mode 100644
index 0000000..80cd456
--- /dev/null
+++ b/unittests/MC/AsmStreamerTest.cpp
@@ -0,0 +1,52 @@
+//===- AsmStreamerTest.cpp - Triple unit tests ----------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "gtest/gtest.h"
+#include "llvm/MC/MCContext.h"
+#include "llvm/MC/MCStreamer.h"
+#include "llvm/Support/raw_ostream.h"
+using namespace llvm;
+
+namespace {
+
+// Helper class.
+class StringAsmStreamer {
+  std::string Str;
+  raw_string_ostream OS;
+  MCContext Context;
+  MCStreamer *Streamer;
+
+public:
+  StringAsmStreamer() : OS(Str), Streamer(createAsmStreamer(Context, OS)) {}
+  ~StringAsmStreamer() { 
+    delete Streamer;
+  }
+
+  MCContext &getContext() { return Context; }
+  MCStreamer &getStreamer() { return *Streamer; }
+
+  const std::string &getString() {
+    Streamer->Finish();
+    return Str;
+  }
+};
+
+TEST(AsmStreamer, EmptyOutput) {
+  StringAsmStreamer S;
+  EXPECT_EQ(S.getString(), "");
+}
+
+TEST(AsmStreamer, Sections) {
+  StringAsmStreamer S;
+  MCSection *Sec0 = S.getContext().GetSection("foo");
+  S.getStreamer().SwitchSection(Sec0);
+  EXPECT_EQ(S.getString(), ".section foo\n");
+}
+
+}