//===- 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

  EXPECT_LT(1u, process::get_self()->page_size());

  EXPECT_LT(TimeValue::MinTime, process::get_self()->get_user_time());
  EXPECT_GT(TimeValue::MaxTime, process::get_self()->get_user_time());
  EXPECT_LT(TimeValue::MinTime, process::get_self()->get_system_time());
  EXPECT_GT(TimeValue::MaxTime, process::get_self()->get_system_time());
  EXPECT_LT(TimeValue::MinTime, process::get_self()->get_wall_time());
  EXPECT_GT(TimeValue::MaxTime, process::get_self()->get_wall_time());
}

} // end anonymous namespace
