mirror of https://github.com/vitalif/openscad
fix up testing, add opencsg version info
parent
8e85f09b29
commit
b1b46e8070
|
@ -27,11 +27,7 @@ endif()
|
|||
|
||||
if(WIN32_STATIC_BUILD)
|
||||
if(${CMAKE_BUILD_TYPE} STREQUAL "Debug")
|
||||
set(EMSG "\nTo build Win32 STATIC OpenSCAD tests you must run")
|
||||
set(EMSG "${EMSG} \ncmake .. -DCMAKE_BUILD_TYPE=Release")
|
||||
set(EMSG "${EMSG} \nthen replace /MD with /MT in CMakeCache.txt")
|
||||
set(EMSG "${EMSG} \ni.e. sed -i s/\\/MD/\\/MT/ CMakeCache.txt")
|
||||
set(EMSG "${EMSG} \nthen re-run cmake ..")
|
||||
set(EMSG "\nTo build Win32 STATIC OpenSCAD please see doc/testing.txt")
|
||||
message(FATAL_ERROR ${EMSG})
|
||||
endif()
|
||||
endif()
|
||||
|
@ -158,7 +154,9 @@ include_directories(${OPENCSG_INCLUDE_DIR})
|
|||
|
||||
# GLEW
|
||||
|
||||
if (NOT $ENV{MACOSX_DEPLOY_DIR} STREQUAL "")
|
||||
if (NOT $ENV{GLEW_DIR} STREQUAL "")
|
||||
set(GLEW_DIR "$ENV{GLEW_DIR}")
|
||||
elseif (NOT $ENV{MACOSX_DEPLOY_DIR} STREQUAL "")
|
||||
set(GLEW_DIR "$ENV{MACOSX_DEPLOY_DIR}")
|
||||
endif()
|
||||
|
||||
|
@ -195,8 +193,13 @@ elseif (NOT $ENV{MACOSX_DEPLOY_DIR} STREQUAL "")
|
|||
set(CGAL_DIR "$ENV{MACOSX_DEPLOY_DIR}/lib/CGAL")
|
||||
set(CMAKE_MODULE_PATH "${CGAL_DIR}")
|
||||
endif()
|
||||
message(STATUS "CGAL_DIR: " ${CGAL_DIR})
|
||||
find_package(CGAL REQUIRED)
|
||||
message(STATUS "CGAL found in ${CGAL_USE_FILE} ${CGAL_INCLUDE_DIRS} ${CGAL_LIBRARIES_DIR}")
|
||||
message(STATUS "CGAL config found in " ${CGAL_USE_FILE} )
|
||||
foreach(cgal_incdir ${CGAL_INCLUDE_DIRS})
|
||||
message(STATUS "CGAL include found in " ${cgal_incdir} )
|
||||
endforeach()
|
||||
message(STATUS "CGAL libraries found in " ${CGAL_LIBRARIES_DIR} )
|
||||
if("${CGAL_MAJOR_VERSION}.${CGAL_MINOR_VERSION}" VERSION_LESS 3.6)
|
||||
message(FATAL_ERROR "CGAL >= 3.6 required")
|
||||
endif()
|
||||
|
@ -255,7 +258,7 @@ set(NOCGAL_SOURCES
|
|||
|
||||
set(CGAL_SOURCES
|
||||
${NOCGAL_SOURCES}
|
||||
../src/CSGTermEvaluator.cc
|
||||
../src/CSGTermEvaluator.cc
|
||||
../src/CGAL_Nef_polyhedron.cc
|
||||
../src/cgalutils.cc
|
||||
../src/CGALEvaluator.cc
|
||||
|
@ -459,13 +462,12 @@ enable_testing()
|
|||
# set up custom pretty printing of results
|
||||
|
||||
set(INFOCMD "execute_process(COMMAND ${CMAKE_CURRENT_BINARY_DIR}/opencsgtest --info OUTPUT_FILE sysinfo.txt)")
|
||||
set(PRETTYCMD "\"${PYTHON_EXECUTABLE} test_pretty_print.py\"")
|
||||
set(PRETTYCMD "\"${PYTHON_EXECUTABLE} test_pretty_print.py --builddir=${CMAKE_CURRENT_BINARY_DIR}\"")
|
||||
set(CTEST_CUSTOM_FILE ${CMAKE_CURRENT_BINARY_DIR}/CTestCustom.cmake)
|
||||
set(CTEST_CUSTOM_TXT "\n
|
||||
message(\"running 'opencsgtest --info' to generate sysinfo.txt\")\n
|
||||
${INFOCMD}\n
|
||||
# set(CTEST_CUSTOM_POST_TEST ${PRETTYCMD})\n # doesn't work. log is written
|
||||
# after all tests run.
|
||||
set(CTEST_CUSTOM_POST_TEST ${PRETTYCMD})\n
|
||||
")
|
||||
file(WRITE ${CTEST_CUSTOM_FILE} ${CTEST_CUSTOM_TXT})
|
||||
|
||||
|
@ -476,6 +478,7 @@ endforeach()
|
|||
|
||||
set_directory_properties(PROPERTIES TEST_INCLUDE_FILE "${CMAKE_SOURCE_DIR}/EnforceConfig.cmake")
|
||||
|
||||
|
||||
# Find all scad files
|
||||
file(GLOB MINIMAL_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/minimal/*.scad)
|
||||
file(GLOB FEATURES_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/features/*.scad)
|
||||
|
@ -523,6 +526,9 @@ disable_tests(dumptest_transform-tests
|
|||
# Reenable it when this is improved
|
||||
disable_tests(opencsgtest_child-background)
|
||||
|
||||
# FIXME: This single test takes over an hour to run on a 2.7 GHz P4
|
||||
disable_tests(opencsgtest_example006)
|
||||
|
||||
# These tests only makes sense in OpenCSG mode
|
||||
disable_tests(cgalpngtest_child-background
|
||||
cgalpngtest_highlight-and-background-modifier
|
||||
|
|
|
@ -44,7 +44,8 @@ ENDIF (WIN32)
|
|||
|
||||
IF (GLEW_INCLUDE_PATH)
|
||||
SET( GLEW_FOUND 1 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise")
|
||||
MESSAGE(STATUS "GLEW found in " ${GLEW_INCLUDE_PATH} " " ${GLEW_LIBRARY})
|
||||
MESSAGE(STATUS "GLEW include found in " ${GLEW_INCLUDE_PATH} )
|
||||
MESSAGE(STATUS "GLEW library found in " ${GLEW_LIBRARY} )
|
||||
ELSE (GLEW_INCLUDE_PATH)
|
||||
SET( GLEW_FOUND 0 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise")
|
||||
ENDIF (GLEW_INCLUDE_PATH)
|
||||
|
|
|
@ -85,6 +85,10 @@ string info_dump(OffscreenView *glview)
|
|||
#define compiler_info "MSVC " << _MSC_FULL_VER
|
||||
#else
|
||||
#define compiler_info "unknown compiler"
|
||||
#endif
|
||||
|
||||
#ifndef OPENCSG_VERSION_STRING
|
||||
#define OPENCSG_VERSION_STRING "unknown, <1.3.2"
|
||||
#endif
|
||||
|
||||
std::stringstream out;
|
||||
|
@ -97,7 +101,7 @@ string info_dump(OffscreenView *glview)
|
|||
<< "\nEigen version: " << EIGEN_WORLD_VERSION << "."
|
||||
<< EIGEN_MAJOR_VERSION << "." << EIGEN_MINOR_VERSION
|
||||
<< "\nCGAL version: " << TOSTRING(CGAL_VERSION)
|
||||
// << "\nOpenCSG" << ???
|
||||
<< "\nOpenCSG version: " << OPENCSG_VERSION_STRING
|
||||
<< "\n" << glview->getInfo()
|
||||
<< "\n";
|
||||
|
||||
|
|
|
@ -1,4 +1,21 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
# Copyright (C) 2011 Don Bright <hugh.m.bright@gmail.com>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
#
|
||||
# This program 'pretty prints' the ctest output, namely
|
||||
# files from builddir/Testing/Temporary.
|
||||
|
@ -6,6 +23,12 @@
|
|||
# wiki uploading is available by running
|
||||
#
|
||||
# python test_pretty_print.py --upload
|
||||
#
|
||||
# Design philosophy
|
||||
#
|
||||
# 1. parse the data (images, logs) into easy-to-use data structures
|
||||
# 2. wikifiy the data
|
||||
# 3. save the wikified data to disk
|
||||
|
||||
# todo
|
||||
# do something if tests for opencsg extensions fail (fail, no image production)
|
||||
|
@ -197,14 +220,18 @@ TESTLOG
|
|||
|
||||
'''Failed text tests'''
|
||||
|
||||
{|border=1 cellspacing=0 cellpadding=1
|
||||
! Testname
|
||||
<REPEAT2>
|
||||
{|border=1 cellspacing=0 cellpadding=1
|
||||
|-
|
||||
| FTESTNAME
|
||||
</REPEAT2>
|
||||
|}
|
||||
|
||||
<pre>
|
||||
TESTLOG
|
||||
</pre>
|
||||
|
||||
</REPEAT2>
|
||||
|
||||
'''build.make and flags.make'''
|
||||
<REPEAT3>
|
||||
*[[MAKEFILE_NAME]]
|
||||
|
@ -225,12 +252,10 @@ TESTLOG
|
|||
'NUMTESTS':len(tests), 'NUMPASSED':len(passed_tests), 'PERCENTPASSED':percent }
|
||||
for key in dic.keys():
|
||||
s = s.replace(key,str(dic[key]))
|
||||
testlogs = ''
|
||||
for t in failed_tests:
|
||||
testlogs += '\n\n'+t.fulltestlog
|
||||
if t.type=='txt':
|
||||
newchunk = re.sub('FTEST_OUTPUTFILE',t.fullname,repeat2)
|
||||
newchunk = re.sub('FTESTNAME',t.fullname,repeat2)
|
||||
newchunk = newchunk.replace('TESTLOG',t.fulltestlog)
|
||||
s = s.replace(repeat2, newchunk+repeat2)
|
||||
elif t.type=='png':
|
||||
tmp = t.actualfile.replace(builddir,'')
|
||||
|
@ -336,12 +361,21 @@ def upload(wikiurl,api_php_path='/',wiki_rootpath='test', sysid='null', botname=
|
|||
|
||||
def findlogfile(builddir):
|
||||
logpath = os.path.join(builddir,'Testing','Temporary')
|
||||
logfilename = os.path.join(logpath,'LastTest.log')
|
||||
logfilename = os.path.join(logpath,'LastTest.log.tmp')
|
||||
if not os.path.isfile(logfilename):
|
||||
logfilename = os.path.join(logpath,'LastTest.log')
|
||||
if not os.path.isfile(logfilename):
|
||||
print 'cant find and/or open logfile',logfilename
|
||||
sys.exit()
|
||||
return logpath, logfilename
|
||||
|
||||
def main():
|
||||
dry = False
|
||||
print 'running test_pretty_print'
|
||||
if '--dryrun' in sys.argv: dry=True
|
||||
suffix = ezsearch('--suffix=(.*?) ',string.join(sys.argv)+' ')
|
||||
builddir = ezsearch('--builddir=(.*?) ',string.join(sys.argv)+' ')
|
||||
if builddir=='': builddir=os.getcwd()
|
||||
print 'build dir set to', builddir
|
||||
|
||||
sysinfo, sysid = read_sysinfo(os.path.join(builddir,'sysinfo.txt'))
|
||||
|
@ -355,7 +389,7 @@ def main():
|
|||
|
||||
imgs, txtpages = towiki(wiki_rootpath, startdate, tests, enddate, sysinfo, sysid, makefiles)
|
||||
|
||||
wikidir = os.path.join(logpath,'wiki')
|
||||
wikidir = os.path.join(logpath,sysid+'_wiki')
|
||||
print 'writing',len(imgs),'images and',len(txtpages),'wiki pages to:\n ', wikidir
|
||||
for k in sorted(imgs): trysave( os.path.join(wikidir,k), imgs[k])
|
||||
for k in sorted(txtpages): trysave( os.path.join(wikidir,k), txtpages[k])
|
||||
|
|
Loading…
Reference in New Issue