File: ProjTest.cmake

package info (click to toggle)
proj 9.8.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 44,620 kB
  • sloc: sh: 219,086; cpp: 173,769; sql: 85,586; python: 8,577; ansic: 6,274; yacc: 1,349; javascript: 228; makefile: 33
file content (73 lines) | stat: -rw-r--r-- 2,285 bytes parent folder | download | duplicates (2)
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
#
# Add command-line interface tests
#

function(proj_test_set_properties TESTNAME)
  set(_env "PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY=YES"
      "PROJ_DATA=${PROJ_BINARY_DIR}/data/for_tests")
  if(TIFF_ENABLED)
      set(_env ${_env} "TIFF_ENABLED=YES")
  else()
      set(_env ${_env} "TIFF_ENABLED=NO")
  endif()
  set_property(TEST ${TESTNAME}
    PROPERTY ENVIRONMENT ${_env})
endfunction()

function(proj_add_test_script_sh SH_NAME EXE_PATH)
  set(testname ${SH_NAME})

  add_test(NAME ${testname}
    WORKING_DIRECTORY ${PROJ_BINARY_DIR}/test/cli
    COMMAND bash ${PROJ_SOURCE_DIR}/test/cli/${SH_NAME} "${${EXE_PATH}}"
  )
  proj_test_set_properties(${testname})
endfunction()

function(proj_run_cli_test TESTFILE EXE_PATH)
  set(testname ${TESTFILE})

  add_test(NAME ${testname}
    WORKING_DIRECTORY ${PROJ_BINARY_DIR}/test/cli
    COMMAND ${Python_EXECUTABLE}
      ${PROJ_SOURCE_DIR}/test/cli/run_cli_test.py
      --exe "${${EXE_PATH}}"
      ${PROJ_SOURCE_DIR}/test/cli/${TESTFILE}
  )
  proj_test_set_properties(${testname})
endfunction()

function(proj_add_gie_test TESTNAME TESTCASE)

    set(GIE_BIN $<TARGET_FILE_NAME:gie>)
    set(TESTFILE ${PROJ_SOURCE_DIR}/test/${TESTCASE})
    add_test(NAME ${TESTNAME}
      WORKING_DIRECTORY ${PROJ_SOURCE_DIR}/test
      COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${GIE_BIN}
      ${TESTFILE}
    )
    proj_test_set_properties(${TESTNAME})

endfunction()

# Create user writable directory for tests
add_custom_target(create_tmp_user_writable_dir ALL
                  COMMAND ${CMAKE_COMMAND} -E remove_directory ${PROJ_BINARY_DIR}/tmp_user_writable_dir
                  COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJ_BINARY_DIR}/tmp_user_writable_dir)

function(proj_add_gie_network_dependent_test TESTNAME TESTCASE)

    set(GIE_BIN $<TARGET_FILE_NAME:gie>)
    set(TESTFILE ${PROJ_SOURCE_DIR}/test/${TESTCASE})
    add_test(NAME ${TESTNAME}
      WORKING_DIRECTORY ${PROJ_SOURCE_DIR}/test
      COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${GIE_BIN}
      ${TESTFILE}
    )
    set_property(TEST ${TESTNAME}
        PROPERTY ENVIRONMENT
          "PROJ_USER_WRITABLE_DIRECTORY=${PROJ_BINARY_DIR}/tmp_user_writable_dir"
          "PROJ_NETWORK=ON"
          "PROJ_DATA=${PROJ_BINARY_DIR}/data/for_tests")

endfunction()