1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
#include "vtkSetGet.h"
#include "vtkRenderWindow.h"
#include "vtkOpenGLRenderWindow.h"
#include "vtkOpenGLExtensionManager.h"
#if defined(TEST_MPI_CAPS)
# include "vtkMPI.h"
#endif
#if defined(TEST_PY_CAPS)
# include "patchlevel.h"
#endif
#include <vtksys/SystemInformation.hxx>
#include <string>
#include <sstream>
using std::string;
using std::ostringstream;
// Description:
// Get python version
#if defined(TEST_PY_CAPS)
string GetPythonVersion()
{
ostringstream oss;
#if defined(PY_VERSION)
oss << PY_VERSION;
#else
oss << "unknown";
#endif
return oss.str();
}
#endif
// Description:
// Get the version of the standard implemented by this
// MPI
#if defined(TEST_MPI_CAPS)
string GetMPIVersion()
{
ostringstream oss;
int major=-1, minor=-1;
#if defined(MPI_VERSION)
major = MPI_VERSION;
#endif
#if defined(MPI_SUBVERSION)
minor = MPI_SUBVERSION;
#endif
//MPI_Get_version(&major, &minor);
oss << major << "." << minor;
return oss.str();
}
#endif
// Description:
// Get the implementor name and release info
#if defined(TEST_MPI_CAPS)
string GetMPILibraryVersion()
{
ostringstream oss;
#if defined(MPI_VERSION) && (MPI_VERSION >= 3)
char libVer[MPI_MAX_LIBRARY_VERSION_STRING] = {'\0'};
int libVerLen = MPI_MAX_LIBRARY_VERSION_STRING;
MPI_Get_library_version(libVer, &libVerLen);
libVer[libVerLen] = '\0';
oss << libVer;
#else
// Open MPI
#if defined(OPEN_MPI)
oss << "Open MPI";
#if defined(OMPI_MAJOR_VERSION)
oss << " " << OMPI_MAJOR_VERSION;
#endif
#if defined(OMPI_MINOR_VERSION)
oss << "." << OMPI_MINOR_VERSION;
#endif
#if defined(OMPI_RELEASE_VERSION)
oss << "." << OMPI_RELEASE_VERSION;
#endif
// MPICH
#elif defined(MPICH2)
oss << "MPICH2";
#if defined(MPICH2_VERSION)
oss << " " << MPICH2_VERSION;
#endif
#elif defined(MSMPI_VER)
oss << "Microsoft MPI " << MSMPI_VER;
#else
oss << "unknown";
#endif
#endif
return oss.str();
}
#endif
int TestSystemCaps(int argc, char *argv[])
{
(void)argc;
(void)argv;
// for info about the Open GL
vtkRenderWindow *rwin = vtkRenderWindow::New();
rwin->Render();
vtkOpenGLRenderWindow *context = vtkOpenGLRenderWindow::SafeDownCast(rwin);
if (!context)
{
vtkGenericWarningMacro(
<< "ERROR: Implement support for" << rwin->GetClassName());
return 1;
}
vtkOpenGLExtensionManager *extensions = context->GetExtensionManager();
// for info about the host
vtksys::SystemInformation sysinfo;
sysinfo.RunCPUCheck();
sysinfo.RunOSCheck();
// make the report
cout << "CTEST_FULL_OUTPUT (Avoid ctest truncation of output)" << endl
<< endl
<< "Host System:" << endl
<< "OS = " << sysinfo.GetOSDescription() << endl
<< "CPU = " << sysinfo.GetCPUDescription() << endl
<< "RAM = " << sysinfo.GetMemoryDescription() << endl
<< endl
#if defined(TEST_MPI_CAPS)
<< "MPI:" << endl
<< "Version = " << GetMPIVersion() << endl
<< "Library = " << GetMPILibraryVersion() << endl
<< endl
#endif
#if defined(TEST_PY_CAPS)
<< "Python:" << endl
<< "Version = " << GetPythonVersion() << endl
<< endl
#endif
<< "OpenGL:" << endl
<< "DriverGLVersion = " << extensions->GetDriverGLVersion() << endl
<< "DriverGLVendor = " << extensions->GetDriverGLVendor() << endl
<< "DriverGLRenderer = " << extensions->GetDriverGLRenderer() << endl
<< "Extensions = " << extensions->GetExtensionsString() << endl
<< endl;
rwin->Delete();
// always pass
return 0;
}
|