1include(ProcessorCount) 2 3ProcessorCount(processor_count) 4 5message("### 1. This line should be the first line of text in the test output.") 6message("### 2. If there was output from this test before line #1, then the") 7message("### 3. ProcessorCount(...) function call is emitting output that it shouldn't...") 8 9message("processor_count='${processor_count}'") 10 11execute_process( 12 COMMAND "${KWSYS_TEST_EXE}" 13 testSystemInformation 14 OUTPUT_VARIABLE tsi_out 15 ERROR_VARIABLE tsi_err 16 RESULT_VARIABLE tsi_res 17) 18if (tsi_res) 19 message("executing \"${KWSYS_TEST_EXE}\" failed") 20 message(FATAL_ERROR "output: ${tsi_res}") 21endif () 22 23string(REGEX REPLACE "(.*)GetNumberOfPhysicalCPU:.([0-9]*)(.*)" "\\2" 24 system_info_processor_count "${tsi_out}") 25 26message("system_info_processor_count='${system_info_processor_count}'") 27 28if(system_info_processor_count EQUAL processor_count) 29 message("processor count matches system information") 30endif() 31 32message("") 33message("CTEST_FULL_OUTPUT (Avoid ctest truncation of output)") 34message("") 35message("tsi_out='${tsi_out}'") 36message("tsi_err='${tsi_err}'") 37message("") 38 39# Evaluate possible error conditions: 40# 41set(err 0) 42set(fatal 0) 43 44if(processor_count EQUAL 0) 45 set(err 1) 46 set(fatal 1) 47 message("err 1") 48 message("could not determine number of processors 49- Additional code for this platform needed in ProcessorCount.cmake?") 50 message("") 51endif() 52 53if(NOT system_info_processor_count EQUAL processor_count) 54 set(err 2) 55 message("err 2") 56 message("SystemInformation and ProcessorCount.cmake disagree:\n" 57 "processor_count='${processor_count}'\n" 58 "SystemInformation processor_count='${system_info_processor_count}'") 59 message("") 60endif() 61 62if(NOT processor_count MATCHES "^[0-9]+$") 63 set(err 3) 64 set(fatal 1) 65 message("err 3") 66 message("ProcessorCount function returned a non-integer") 67 message("") 68endif() 69 70if(NOT system_info_processor_count MATCHES "^[0-9]+$") 71 set(err 4) 72 message("err 4") 73 message("SystemInformation ProcessorCount function returned a non-integer") 74 message("") 75endif() 76 77if(fatal) 78 message(FATAL_ERROR "processor_count='${processor_count}' - see previous test output for more details - it is likely more/different code is needed in ProcessorCount.cmake to fix this test failure - processor_count should be a non-zero positive integer (>=1) for all supported CMake platforms") 79endif() 80