Files
clang-p2996/lldb/unittests/tools/lldb-server/tests/TestBase.h
Pavel Labath 671d3e6318 llgs-tests: Make addition of new tests easier
Summary:
Adding a new test would require one to duplicate a significant part of
the existing test that we have. This attempts to reduce that by moving
some part of that code to the test fixture. The StandardStartupTest
fixture automatically starts up the server and connects it to the
client. I also add a more low-level TestBase fixture, which allows one
to start up the client and server in a custom way (I am going to need
this for the test I am writing).

Reviewers: eugene, zturner

Subscribers: lldb-commits, mgorny

Differential Revision: https://reviews.llvm.org/D41066

llvm-svn: 320809
2017-12-15 13:56:22 +00:00

49 lines
1.3 KiB
C++

//===-- TestBase.h ----------------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef LLDB_SERVER_TESTS_TESTBASE_H
#define LLDB_SERVER_TESTS_TESTBASE_H
#include "TestClient.h"
#include "lldb/Host/HostInfo.h"
#include "llvm/Support/Path.h"
#include "llvm/Testing/Support/Error.h"
#include "gtest/gtest.h"
namespace llgs_tests {
class TestBase: public ::testing::Test {
public:
static void SetUpTestCase() { lldb_private::HostInfo::Initialize(); }
static std::string getInferiorPath(llvm::StringRef Name) {
llvm::SmallString<64> Path(LLDB_TEST_INFERIOR_PATH);
llvm::sys::path::append(Path, Name + LLDB_TEST_INFERIOR_SUFFIX);
return Path.str();
}
static std::string getLogFileName();
};
class StandardStartupTest: public TestBase {
public:
void SetUp() override {
auto ClientOr = TestClient::launch(getLogFileName());
ASSERT_THAT_EXPECTED(ClientOr, llvm::Succeeded());
Client = std::move(*ClientOr);
}
protected:
std::unique_ptr<TestClient> Client;
};
} // namespace llgs_tests
#endif // LLDB_SERVER_TESTS_TESTBASE_H