/usr/lib/openscad/testprograms/CTestCustom.cmake is in openscad-testing 2015.03-1+dfsg-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | # Generated by cmake from ./CTestCustom.template
#
# Template to build a CTestCustom.cmake file in the build directory.
#
# This template enables ctest to do things before and after the test runs.
# In our case, 1. Setup a virtual framebuffer, 2. pretty-print results
#
# As a template, this file is read inside of CMakeList.txt and certain
# words (__word__) are replaced with the cmake build dir/etc, at the time that
# cmake itself is run. Typically these are signified by two underscores (__)
# before and after the word in smallcase.
# Part 0. Finding MCAD
#set(ENV{OPENSCADPATH} "./../libraries")
# Part 1. X11 and Virtual Framebuffer, for headless Linux/BSD systems.
# This is not used by Windows or Mac because they have alternate means
# of accessing OpenGL.
set(debug_openscad_template 0)
if( Linux MATCHES "Linux|BSD")
set(DISPLAY_ENV $ENV{DISPLAY})
if(DISPLAY_ENV)
message("X11 DISPLAY environment variable found.")
message("Assuming framebuffer exists at DISPLAY=${DISPLAY_ENV}")
else()
message("X11 DISPLAY environment variable not found. Calling virtualfb.sh")
execute_process(
COMMAND ./virtualfb.sh OUTPUT_VARIABLE SVFB_OUT)
string(REGEX MATCH "DISPLAY=:[0-9.]*" VFB_DISPLAY_STR "${SVFB_OUT}")
string(REGEX MATCH ":[0-9.]*" VFB_DISPLAY "${VFB_DISPLAY_STR}")
string(REGEX MATCH "PID=[0-9.]*" VFB_PID_STR "${SVFB_OUT}")
string(REPLACE "PID=" "" VFB_PID "${VFB_PID_STR}")
if (debug_openscad_template)
message("Output from virtualfb.sh script: ${SVFB_OUT}")
message("Display: ${VFB_DISPLAY}")
message("Process ID of vfb: ${VFB_PID}")
endif()
if ("${VFB_DISPLAY}" STREQUAL "" OR "${VFB_PID}" STREQUAL "")
set(VFBLOG "virtualfb.log")
message("Virtual framebuffer had a problem starting. Printing ${VFBLOG}")
execute_process(COMMAND cat virtualfb.log OUTPUT_VARIABLE VFBLOGTXT)
message("Log: ${VFBLOGTXT}")
else()
message("Virtual framebuffer started. DISPLAY=${VFB_DISPLAY}, PID=${VFB_PID}")
endif()
# This line is the heart of the mechanism by which ctest is able to take
# the DISPLAY env variable of the Virtual Framebuffer it just started, and
# pass it on to its child processes (the tests from CTestTestfile.cmake
# in the build directory).
set(ENV{DISPLAY} "${VFB_DISPLAY}")
set(CTEST_CUSTOM_POST_TEST "./virtualfb.sh")
endif()
endif()
# Part 2. Pretty Printing
message("running './../openscad --info' to generate sysinfo.txt")
execute_process(COMMAND ./../openscad --info OUTPUT_FILE sysinfo.txt)
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_LESS 2.8.12)
set(CTEST_CUSTOM_POST_TEST ${CTEST_CUSTOM_POST_TEST} "./test_pretty_print")
else()
set(CTEST_CUSTOM_POST_TEST ${CTEST_CUSTOM_POST_TEST} "/usr/bin/python \"./test_pretty_print.py\" --builddir=. ")
endif()
if ( ${debug_openscad_template} )
foreach(post_test ${CTEST_CUSTOM_POST_TEST} )
message("Post test:" ${post_test})
endforeach()
endif()
|