From 66fff9d4b72600e69eb31a1b91fd12a41ebac14b Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Tue, 8 Jan 2008 11:43:07 -0500 Subject: [PATCH] ENH: add missing file --- Source/kwsys/CMakeLists.txt | 4 +- Source/kwsys/testSystemInformation.cxx | 51 ++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 Source/kwsys/testSystemInformation.cxx diff --git a/Source/kwsys/CMakeLists.txt b/Source/kwsys/CMakeLists.txt index 200290afb..a2a438cbd 100644 --- a/Source/kwsys/CMakeLists.txt +++ b/Source/kwsys/CMakeLists.txt @@ -892,10 +892,12 @@ IF(KWSYS_STANDALONE OR CMake_SOURCE_DIR) testRegistry testIOS testSystemTools - testSystemInformation testCommandLineArguments testCommandLineArguments1 ) + IF(KWSYS_USE_SystemInformation) + SET(KWSYS_CXX_TESTS ${KWSYS_CXX_TESTS} testSystemInformation) + ENDIF(KWSYS_USE_SystemInformation) IF(KWSYS_USE_DynamicLoader) SET(KWSYS_CXX_TESTS ${KWSYS_CXX_TESTS} testDynamicLoader) # If kwsys contains the DynamicLoader, need extra library diff --git a/Source/kwsys/testSystemInformation.cxx b/Source/kwsys/testSystemInformation.cxx new file mode 100644 index 000000000..0c8773071 --- /dev/null +++ b/Source/kwsys/testSystemInformation.cxx @@ -0,0 +1,51 @@ +#include "kwsysPrivate.h" +#include KWSYS_HEADER(SystemInformation.hxx) +#include KWSYS_HEADER(ios/iostream) + + + +// Work-around CMake dependency scanning limitation. This must +// duplicate the above list of headers. +#if 0 +# include "SystemInformation.hxx.in" +# include "kwsys_ios_iostream.h.in" +#endif + +#define printMethod(inof, m) kwsys_ios::cout << #m << ": " \ +<< info.m() << "\n" +int testSystemInformation(int, char*[]) +{ + kwsys::SystemInformation info; + printMethod(info, GetVendorString); + info.RunCPUCheck(); + info.RunOSCheck(); + info.RunMemoryCheck(); + printMethod(info, GetVendorString); + printMethod(info, GetVendorID); + printMethod(info, GetTypeID); + printMethod(info, GetFamilyID); + printMethod(info, GetModelID); + printMethod(info, GetExtendedProcessorName); + printMethod(info, GetProcessorSerialNumber); + printMethod(info, GetProcessorCacheSize); + printMethod(info, GetLogicalProcessorsPerPhysical); + printMethod(info, GetProcessorClockFrequency); + printMethod(info, GetProcessorAPICID); + printMethod(info, GetOSName); + printMethod(info, GetHostname); + printMethod(info, GetOSRelease); + printMethod(info, GetOSVersion); + printMethod(info, GetOSPlatform); + printMethod(info, Is64Bits); + printMethod(info, GetNumberOfLogicalCPU); + printMethod(info, GetNumberOfPhysicalCPU); + printMethod(info, DoesCPUSupportCPUID); + printMethod(info, GetTotalVirtualMemory); + printMethod(info, GetAvailableVirtualMemory); + printMethod(info, GetTotalPhysicalMemory); + printMethod(info, GetAvailablePhysicalMemory); + + //int GetProcessorCacheXSize(long int); +// bool DoesCPUSupportFeature(long int); + return 0; +}