File: CMakeLists.txt

package info (click to toggle)
libssh 0.10.6-0%2Bdeb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 6,004 kB
  • sloc: ansic: 88,777; cpp: 407; sh: 119; makefile: 41; javascript: 20; python: 9
file content (129 lines) | stat: -rw-r--r-- 3,242 bytes parent folder | download
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
project(unittests C)

include_directories(${OPENSSL_INCLUDE_DIR})

set(LIBSSH_UNIT_TESTS
    torture_buffer
    torture_bytearray
    torture_callbacks
    torture_crypto
    torture_init
    torture_list
    torture_misc
    torture_config
    torture_options
    torture_isipaddr
    torture_knownhosts_parsing
    torture_hashes
    torture_packet_filter
    torture_temp_dir
    torture_temp_file
    torture_push_pop_dir
    torture_session_keys
    torture_tokens
)

set(LIBSSH_THREAD_UNIT_TESTS
    torture_rand
    torture_threads_init
    torture_threads_buffer
    torture_threads_crypto
)

set(TORTURE_UNIT_ENVIRONMENT
    "LSAN_OPTIONS=suppressions=${libssh-tests_SOURCE_DIR}/suppressions/lsan.supp;")
if (OPENSSL_FOUND)
    list(APPEND TORTURE_UNIT_ENVIRONMENT OPENSSL_ENABLE_SHA1_SIGNATURES=1)
endif (OPENSSL_FOUND)

if (UNIX AND NOT WIN32)
    set(LIBSSH_UNIT_TESTS
        ${LIBSSH_UNIT_TESTS}
        # this uses a socketpair
        torture_packet
        # requires ssh-keygen
        torture_keyfiles
        torture_pki
        torture_pki_rsa
        torture_pki_ed25519
        # requires /dev/null
        torture_channel
    )

    if (WITH_SERVER)
        set(LIBSSH_UNIT_TESTS
            ${LIBSSH_UNIT_TESTS}
            torture_bind_config)

        if (WITH_GEX)
            set(LIBSSH_UNIT_TESTS
                ${LIBSSH_UNIT_TESTS}
                torture_moduli)
        endif()
    endif()


    if (HAVE_DSA)
        set(LIBSSH_UNIT_TESTS
            ${LIBSSH_UNIT_TESTS}
            torture_pki_dsa
        )
    endif()

    if (WITH_PKCS11_URI)
        set(LIBSSH_UNIT_TESTS
            ${LIBSSH_UNIT_TESTS}
            torture_pki_rsa_uri
            torture_pki_ecdsa_uri
        )
    endif()

    if (HAVE_ECC)
        set(LIBSSH_UNIT_TESTS
            ${LIBSSH_UNIT_TESTS}
            torture_pki_ecdsa
        )
    endif()

    set(LIBSSH_THREAD_UNIT_TESTS
        ${LIBSSH_THREAD_UNIT_TESTS}
        # requires pthread
        torture_threads_pki_rsa
    )
    if (WITH_SERVER)
        # Not working correctly
        # add_cmocka_test(torture_server_x11 torture_server_x11.c ${TEST_TARGET_LIBRARIES})
        # the signals are not testable under cmocka
        # set(LIBSSH_THREAD_UNIT_TESTS
        #     ${LIBSSH_THREAD_UNIT_TESTS}
        #     torture_unit_server
        # )
    endif (WITH_SERVER)
endif (UNIX AND NOT WIN32)

foreach(_UNIT_TEST ${LIBSSH_UNIT_TESTS})
    add_cmocka_test(${_UNIT_TEST}
                    SOURCES ${_UNIT_TEST}.c
                    COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS}
                    LINK_LIBRARIES ${TEST_TARGET_LIBRARIES}
    )

    set_property(TEST ${_UNIT_TEST}
                 PROPERTY
                     ENVIRONMENT ${TORTURE_UNIT_ENVIRONMENT})
endforeach()

if (CMAKE_USE_PTHREADS_INIT)
    foreach(_UNIT_TEST ${LIBSSH_THREAD_UNIT_TESTS})
        add_cmocka_test(${_UNIT_TEST}
                        SOURCES ${_UNIT_TEST}.c
                        COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS}
                        LINK_LIBRARIES ${TEST_TARGET_LIBRARIES} Threads::Threads
        )

    set_property(TEST ${_UNIT_TEST}
                 PROPERTY
                    ENVIRONMENT ${TORTURE_UNIT_ENVIRONMENT})
    endforeach()
endif ()