File: TestingSetup.cmake

package info (click to toggle)
xdmf 3.0%2Bgit20160803-3
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 35,388 kB
  • ctags: 36,627
  • sloc: ansic: 265,382; cpp: 162,889; python: 10,976; f90: 1,378; yacc: 687; fortran: 464; xml: 200; java: 187; lex: 125; makefile: 82; sh: 28
file content (91 lines) | stat: -rw-r--r-- 2,807 bytes parent folder | download | duplicates (7)
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# List of global variables needed by tests
SET(defines 
    JAVA_TEST_DEPENDENCIES
    JAVA_TEST_FILE_DEPENDENCIES
    JAVA_TEST_CLASSPATH
    JAVA_TEST_LDPATH
    JAVA_TEST_PATH
    JAVA_TEST_TARGETS
    PYTHON_TEST_DEPENDENCIES
    PYTHON_TEST_FILE_DEPENDENCIES
    PYTHON_TEST_PYTHONPATH
    PYTHON_TEST_LDPATH
    PYTHON_TEST_PATH
    CXX_TEST_DEPENDENCIES
    CXX_TEST_LDPATH
    CXX_TEST_PATH
)

# Take care of Windows Path Seperators
IF(WIN32)
    SET(sep ";")
ELSE()
    SET(sep ":")
ENDIF()

# Make sure they are defined
FOREACH(def IN LISTS defines)
    GET_PROPERTY(is_defined GLOBAL PROPERTY ${def} DEFINED)
    IF(NOT is_defined)
        DEFINE_PROPERTY(GLOBAL PROPERTY ${def}
			BRIEF_DOCS "${def}"
			FULL_DOCS "${def} No Documentation"
        )
    ENDIF()
ENDFOREACH()

# Set the testing suite dir
SET(TESTING_SUITE_DIR "${CMAKE_SOURCE_DIR}/CMake" CACHE PATH 
    "Testing Suite CMake Dir")
MARK_AS_ADVANCED(TESTING_SUITE_DIR)

# Argument Parsing Macro
# Author: Brian Panneton
# Description: This macro parses the provided argument string and sets the vars
# Parameters:         
#        	${test_args}    = the argument string for the test
# Output:	
#		${arguments}	= whatever is left after stripping the arguments
#		${dup}		= number or string to append to a duplicate test
#		${tdep}		= test dependencies (comma seperated list)
MACRO(PARSE_TEST_ARGS test_args)
    STRING(COMPARE NOTEQUAL "${test_args}" "" check)
    IF(${check})
        SET(arguments "${test_args}")
	# Here we strip out any arguments for the testing suite
        
	# ${dup}
        STRING(REGEX MATCH "dup=([^ ;])+" dup "${test_args}")
        STRING(REGEX REPLACE "dup=" "" dup "${dup}")
        STRING(REGEX REPLACE ";" "" dup "${dup}")
        STRING(REGEX REPLACE "dup=([^ ;])+" "" arguments "${arguments}")
        
	# ${tdep}
        STRING(REGEX MATCH "tdep=([^ ;])+" tdep "${test_args}")
        STRING(REGEX REPLACE "tdep=" "" tdep "${tdep}")
        STRING(REGEX REPLACE ";" "" tdep "${tdep}")
	STRING(REGEX REPLACE "tdep=([^ ;])+" "" arguments "${arguments}")
	STRING(REGEX REPLACE "," ";" tdep "${tdep}")
    ELSE()
        SET(arguments "") # Sanity Check	
    ENDIF()
ENDMACRO()

# Set Core Macro
# Author: Brian Panneton
# Description: This macro checks the directory provided to see if it is a core
# Parameters:         
#               dir    	= the directory to be checked
# Output:     
#		is_core	= variable is set to 'Core' is core was found in dir
MACRO(SET_CORE dir)
    STRING(REGEX MATCH "core" is_core "${dir}")
    IF(EXISTS ${is_core})
        SET(is_core "Core")
    ELSE(EXISTS ${is_core})
      STRING(REGEX MATCH "utils" is_core "${dir}")
      IF(EXISTS ${is_core})
          SET(is_core "Util")
      ENDIF(EXISTS ${is_core})
    ENDIF(EXISTS ${is_core})
ENDMACRO(SET_CORE dir)