From 486754660bb926339aefcf012a3f848592babb8b Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Sat, 28 Jul 2018 11:06:01 +0000 Subject: Vendor import of clang trunk r338150: https://llvm.org/svn/llvm-project/cfe/trunk@338150 --- unittests/Frontend/OutputStreamTest.cpp | 46 +++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 unittests/Frontend/OutputStreamTest.cpp (limited to 'unittests/Frontend/OutputStreamTest.cpp') diff --git a/unittests/Frontend/OutputStreamTest.cpp b/unittests/Frontend/OutputStreamTest.cpp new file mode 100644 index 0000000000000..ff036500d8c8a --- /dev/null +++ b/unittests/Frontend/OutputStreamTest.cpp @@ -0,0 +1,46 @@ +//===- unittests/Frontend/OutputStreamTest.cpp --- FrontendAction tests --===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "clang/CodeGen/BackendUtil.h" +#include "clang/CodeGen/CodeGenAction.h" +#include "clang/Frontend/CompilerInstance.h" +#include "clang/FrontendTool/Utils.h" +#include "clang/Lex/PreprocessorOptions.h" +#include "gtest/gtest.h" + +using namespace llvm; +using namespace clang; +using namespace clang::frontend; + +namespace { + +TEST(FrontendOutputTests, TestOutputStream) { + auto Invocation = std::make_shared(); + Invocation->getPreprocessorOpts().addRemappedFile( + "test.cc", MemoryBuffer::getMemBuffer("").release()); + Invocation->getFrontendOpts().Inputs.push_back( + FrontendInputFile("test.cc", InputKind::CXX)); + Invocation->getFrontendOpts().ProgramAction = EmitBC; + Invocation->getTargetOpts().Triple = "i386-unknown-linux-gnu"; + CompilerInstance Compiler; + + SmallVector IRBuffer; + std::unique_ptr IRStream( + new raw_svector_ostream(IRBuffer)); + + Compiler.setOutputStream(std::move(IRStream)); + Compiler.setInvocation(std::move(Invocation)); + Compiler.createDiagnostics(); + + bool Success = ExecuteCompilerInvocation(&Compiler); + EXPECT_TRUE(Success); + EXPECT_TRUE(!IRBuffer.empty()); + EXPECT_TRUE(StringRef(IRBuffer.data()).startswith("BC")); +} +} -- cgit v1.2.3