diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2012-12-31 11:17:50 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2012-12-31 11:17:50 +0000 |
commit | 0184a841d3914bb78c7c6fa87ce9da86a2d5992a (patch) | |
tree | 0bea164d9df1c3dde7611bb875428e64340bb264 /unittests/Support | |
parent | dac1eeb4b7948456682e9aa641d2d5ef3eba8869 (diff) | |
download | external_llvm-0184a841d3914bb78c7c6fa87ce9da86a2d5992a.zip external_llvm-0184a841d3914bb78c7c6fa87ce9da86a2d5992a.tar.gz external_llvm-0184a841d3914bb78c7c6fa87ce9da86a2d5992a.tar.bz2 |
Begin sketching out the process interface.
The coding style used here is not LLVM's style because this is modeled
after a Boost interface and thus done in the style of a candidate C++
standard library interface. I'll probably end up proposing it as
a standard C++ library if it proves to be reasonably portable and
useful.
This is just the most basic parts of the interface -- getting the
process ID out of it. However, it helps sketch out some of the boiler
plate such as the base class, derived class, shared code, and static
factory function. It also introduces a unittest so that I can
incrementally ensure this stuff works.
However, I've not even compiled this code for Windows yet. I'll try to
fix any Windows fallout from the bots, and if I can't fix it I'll revert
and get someone on Windows to help out. There isn't a lot more that is
mandatory, so soon I'll switch to just stubbing out the Windows side and
get Michael Spencer to help with implementation as he can test it
directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171289 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'unittests/Support')
-rw-r--r-- | unittests/Support/CMakeLists.txt | 1 | ||||
-rw-r--r-- | unittests/Support/ProcessTest.cpp | 33 |
2 files changed, 34 insertions, 0 deletions
diff --git a/unittests/Support/CMakeLists.txt b/unittests/Support/CMakeLists.txt index f6a5949..c9a330d 100644 --- a/unittests/Support/CMakeLists.txt +++ b/unittests/Support/CMakeLists.txt @@ -20,6 +20,7 @@ add_llvm_unittest(SupportTests MemoryBufferTest.cpp MemoryTest.cpp Path.cpp + ProcessTest.cpp RegexTest.cpp SwapByteOrderTest.cpp TimeValue.cpp diff --git a/unittests/Support/ProcessTest.cpp b/unittests/Support/ProcessTest.cpp new file mode 100644 index 0000000..d4c4b54 --- /dev/null +++ b/unittests/Support/ProcessTest.cpp @@ -0,0 +1,33 @@ +//===- unittest/Support/ProcessTest.cpp -----------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "llvm/Support/Process.h" +#include "gtest/gtest.h" + +#ifdef LLVM_ON_WIN32 +#include "windows.h" +#endif + +namespace { + +using namespace llvm; +using namespace sys; + +TEST(ProcessTest, SelfProcess) { + EXPECT_TRUE(process::get_self()); + EXPECT_EQ(process::get_self(), process::get_self()); + +#if defined(LLVM_ON_UNIX) + EXPECT_EQ(getpid(), process::get_self()->get_id()); +#elif defined(LLVM_ON_WIN32) + EXPECT_EQ(GetCurrentProcess(), process::get_self()->get_id()); +#endif +} + +} // end anonymous namespace |