diff options
author | Matthias Vogelgesang <matthias.vogelgesang@gmail.com> | 2012-08-10 16:38:28 +0200 |
---|---|---|
committer | Matthias Vogelgesang <matthias.vogelgesang@gmail.com> | 2012-08-10 16:38:28 +0200 |
commit | 60030e462fe9f3081cfa8e9e0d176593eb1bcde3 (patch) | |
tree | 1c387b113e3c419a841c9637ca318cd550b3f4db | |
parent | cf25d9373bb2148e86e46e9c25e245ffe9ec4026 (diff) | |
download | uca-60030e462fe9f3081cfa8e9e0d176593eb1bcde3.tar.gz uca-60030e462fe9f3081cfa8e9e0d176593eb1bcde3.tar.bz2 uca-60030e462fe9f3081cfa8e9e0d176593eb1bcde3.tar.xz uca-60030e462fe9f3081cfa8e9e0d176593eb1bcde3.zip |
Add gtester xsl
-rw-r--r-- | test/CMakeLists.txt | 33 | ||||
-rw-r--r-- | test/gtester.xsl | 70 |
2 files changed, 89 insertions, 14 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 4686b84..2b46cbf 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -16,7 +16,6 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/control.glade ${CMAKE_CURRENT_BINARY_ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/run.py ${CMAKE_CURRENT_BINARY_DIR}) # --- Build targets ----------------------------------------------------------- - include_directories( ${GLIB2_INCLUDE_DIRS} ${GOBJECT2_INCLUDE_DIRS} @@ -27,16 +26,16 @@ include_directories( message("${CMAKE_CURRENT_SOURCE_DIR}") if (HAVE_PYLON_CAMERA) - set(GENICAM_ROOT $ENV{PYLON_ROOT}/genicam) - # check for 32/64 bit - if (CMAKE_SIZEOF_VOID_P EQUAL 8) - set(PYLON_LIB_DIRS $ENV{PYLON_ROOT}/lib64 $ENV{PYLON_ROOT}/bin ${GENICAM_ROOT}/bin/Linux64_x64 - ${GENICAM_ROOT}/bin/Linux64_x64/GenApi/Generic) - else() - set(PYLON_LIB_DIRS $ENV{PYLON_ROOT}/lib64 $ENV{PYLON_ROOT}/bin ${GENICAM_ROOT}/bin/Linux32_i86 - ${GENICAM_ROOT}/bin/Linux32_i86/GenApi/Generic) - endif() - link_directories(${PYLON_LIB_DIRS} ${LIBPYLONCAM_LIBDIR}) + set(GENICAM_ROOT $ENV{PYLON_ROOT}/genicam) + # check for 32/64 bit + if (CMAKE_SIZEOF_VOID_P EQUAL 8) + set(PYLON_LIB_DIRS $ENV{PYLON_ROOT}/lib64 $ENV{PYLON_ROOT}/bin ${GENICAM_ROOT}/bin/Linux64_x64 + ${GENICAM_ROOT}/bin/Linux64_x64/GenApi/Generic) + else() + set(PYLON_LIB_DIRS $ENV{PYLON_ROOT}/lib64 $ENV{PYLON_ROOT}/bin ${GENICAM_ROOT}/bin/Linux32_i86 + ${GENICAM_ROOT}/bin/Linux32_i86/GenApi/Generic) + endif() + link_directories(${PYLON_LIB_DIRS} ${LIBPYLONCAM_LIBDIR}) endif() add_executable(grab grab.c) @@ -51,7 +50,7 @@ add_executable(grab_pylon grab_pylon.c) target_link_libraries(grab_pylon uca ${GLIB2_LIBRARIES} ${GOBJECT2_LIBRARIES}) if (NOT DEFINED WITH_CONTROL_GUI) - set(WITH_CONTROL_GUI TRUE) + set(WITH_CONTROL_GUI TRUE) endif() if (GTK2_FOUND AND WITH_CONTROL_GUI) @@ -74,8 +73,14 @@ endif() if (HAVE_MOCK_CAMERA) add_executable(test-mock test-mock.c) - target_link_libraries(test-mock uca - ${GLIB2_LIBRARIES} ${GOBJECT2_LIBRARIES}) + + target_link_libraries(test-mock + uca + ${GLIB2_LIBRARIES} + ${GOBJECT2_LIBRARIES}) + + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/gtester.xsl + ${CMAKE_CURRENT_BINARY_DIR}/gtester.xsl) endif() add_executable(test-all test-all.c) diff --git a/test/gtester.xsl b/test/gtester.xsl new file mode 100644 index 0000000..e8236d6 --- /dev/null +++ b/test/gtester.xsl @@ -0,0 +1,70 @@ +<?xml version="1.0"?> + +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + + <!-- I can't believe I have to do this --> + <!-- Based on this code: + http://geekswithblogs.net/Erik/archive/2008/04/01/120915.aspx + --> + <xsl:template name="strreplace"> + <xsl:param name="string"/> + <xsl:param name="token"/> + <xsl:param name="newtoken"/> + <xsl:choose> + <xsl:when test="contains($string, $token)"> + <xsl:value-of select="substring-before($string, $token)"/> + <xsl:value-of select="$newtoken"/> + <xsl:call-template name="strreplace"> + <xsl:with-param name="string" select="substring-after($string, $token)"/> + <xsl:with-param name="token" select="$token"/> + <xsl:with-param name="newtoken" select="$newtoken"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$string"/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template match="/"> + <xsl:for-each select="gtester"> + <testsuite> + <xsl:attribute name="name"> + <xsl:value-of select="testbinary[1]/@path"/> + </xsl:attribute> + <xsl:attribute name="tests"> + <xsl:value-of select="count(testbinary[1]/testcase)"/> + </xsl:attribute> + <xsl:attribute name="time"> + <xsl:value-of select="sum(testbinary[1]/testcase/duration)"/> + </xsl:attribute> + <xsl:attribute name="failures"> + <xsl:value-of select="count(testbinary[1]/testcase/status[@result='failed'])"/> + </xsl:attribute> + <xsl:for-each select="testbinary[1]/testcase"> + <testcase> + <xsl:variable name="classname"> + <xsl:call-template name="strreplace"> + <xsl:with-param name="string" select="substring-after(@path, '/')"/> + <xsl:with-param name="token" select="'/'"/> + <xsl:with-param name="newtoken" select="'.'"/> + </xsl:call-template> + </xsl:variable> + <xsl:attribute name="classname"> + <xsl:value-of select="$classname"/> + </xsl:attribute> + <xsl:attribute name="name">g_test</xsl:attribute> + <xsl:attribute name="time"> + <xsl:value-of select="duration"/> + </xsl:attribute> + <xsl:if test="status[@result = 'failed']"> + <failure> + <xsl:value-of select="error"/> + </failure> + </xsl:if> + </testcase> + </xsl:for-each> + </testsuite> + </xsl:for-each> + </xsl:template> +</xsl:stylesheet> |