summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Vogelgesang <matthias.vogelgesang@gmail.com>2012-08-10 16:38:28 +0200
committerMatthias Vogelgesang <matthias.vogelgesang@gmail.com>2012-08-10 16:38:28 +0200
commit60030e462fe9f3081cfa8e9e0d176593eb1bcde3 (patch)
tree1c387b113e3c419a841c9637ca318cd550b3f4db
parentcf25d9373bb2148e86e46e9c25e245ffe9ec4026 (diff)
downloaduca-60030e462fe9f3081cfa8e9e0d176593eb1bcde3.tar.gz
uca-60030e462fe9f3081cfa8e9e0d176593eb1bcde3.tar.bz2
uca-60030e462fe9f3081cfa8e9e0d176593eb1bcde3.tar.xz
uca-60030e462fe9f3081cfa8e9e0d176593eb1bcde3.zip
Add gtester xsl
-rw-r--r--test/CMakeLists.txt33
-rw-r--r--test/gtester.xsl70
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>