mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-11 05:35:11 +00:00
2bd75068e1
Differential Revision: https://reviews.llvm.org/D25800 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284656 91177308-0d34-0410-b5e6-96231b3b80d8
49 lines
1.4 KiB
C++
49 lines
1.4 KiB
C++
//========- unittests/Support/Host.cpp - Host.cpp tests --------------========//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "llvm/Support/Host.h"
|
|
#include "llvm/ADT/SmallVector.h"
|
|
#include "llvm/ADT/Triple.h"
|
|
|
|
#include "gtest/gtest.h"
|
|
|
|
using namespace llvm;
|
|
|
|
class HostTest : public testing::Test {
|
|
Triple Host;
|
|
SmallVector<std::pair<Triple::ArchType, Triple::OSType>, 4> SupportedArchAndOSs;
|
|
|
|
protected:
|
|
bool isSupportedArchAndOS() {
|
|
if (is_contained(SupportedArchAndOSs, std::make_pair(Host.getArch(), Host.getOS())))
|
|
return true;
|
|
|
|
return false;
|
|
}
|
|
|
|
HostTest() {
|
|
Host.setTriple(Triple::normalize(sys::getProcessTriple()));
|
|
|
|
// Initially this is only testing detection of the number of
|
|
// physical cores, which is currently only supported/tested for
|
|
// x86_64 Linux and Darwin.
|
|
SupportedArchAndOSs.push_back(std::make_pair(Triple::x86_64, Triple::Linux));
|
|
SupportedArchAndOSs.push_back(std::make_pair(Triple::x86_64, Triple::Darwin));
|
|
}
|
|
};
|
|
|
|
TEST_F(HostTest, NumPhysicalCores) {
|
|
int Num = sys::getHostNumPhysicalCores();
|
|
|
|
if (isSupportedArchAndOS())
|
|
ASSERT_GT(Num, 0);
|
|
else
|
|
ASSERT_EQ(Num, -1);
|
|
}
|