mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-12-27 08:49:16 +08:00
90fd1406bc
Re: GH Issue https://github.com/Unidata/netcdf-c/issues/1900 Apparently the clock_gettime() function is not always available. It is used in unit_test/tst_exhash.c and unit_test/tst_xcache.c. To solve this, a number of things were changed: * Move the timing code to a new file unit_tests/timer_utils.[ch] * Modify the timing code to choose one of several timing methods depending on availability. The prioritized order is as follows: 1. If Windows, use the QueryPerformanceCounter mechanism else 2. Use clock_gettime if available else 3. Use gettimeofday if available else 4. Use getrusage if available Note that the resolution of 3 and 4 is less than 1 or 2. Misc. Other Changes: * Move the test in CMakeLists.txt that disables unit tests for WIN32 to unit_test/CMakeLists.txt since some unit tests actually work under Visual Studio. * Fix some of the unit tests to work under visual studio * Fix problem with using remove() in zmap_nzf.c * Remove some warning about use of EXTERNL
77 lines
2.3 KiB
CMake
77 lines
2.3 KiB
CMake
# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
|
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014,
|
|
# 2015, 2016, 2017, 2018
|
|
# University Corporation for Atmospheric Research/Unidata.
|
|
|
|
# See netcdf-c/COPYRIGHT file for more info.
|
|
add_definitions(-D"TOPSRCDIR=${CMAKE_CURRENT_SOURCE_DIR}/../")
|
|
add_definitions(-D"TOPBINDIR=${CMAKE_CURRENT_BINARY_DIR}/../")
|
|
|
|
remove_definitions(-DDLL_EXPORT)
|
|
# add_definitions(-D"TOPSRCDIR=${CMAKE_CURRENT_SOURCE_DIR}")
|
|
|
|
FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.sh)
|
|
|
|
FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE)
|
|
|
|
IF(ENABLE_DAP_REMOTE_TESTS)
|
|
BUILD_BIN_TEST(findtestserver)
|
|
BUILD_BIN_TEST(pingurl)
|
|
ENDIF()
|
|
|
|
IF(ENABLE_TESTS)
|
|
# Base tests
|
|
# The tests are set up as a combination of shell scripts and executables that
|
|
# must be run in a particular order. It is painful but will use macros to help
|
|
# keep it from being too bad.
|
|
# Binary Test Macro
|
|
|
|
add_sh_test(ncdap tst_ncdap3)
|
|
|
|
IF(NOT MSVC)
|
|
add_bin_env_test(ncdap t_dap3a)
|
|
add_bin_env_test(ncdap test_cvt)
|
|
add_bin_env_test(ncdap test_vara)
|
|
ENDIF()
|
|
|
|
IF(ENABLE_DAP_REMOTE_TESTS)
|
|
|
|
IF(BUILD_UTILITIES)
|
|
add_sh_test(ncdap tst_ber)
|
|
add_sh_test(ncdap tst_remote3)
|
|
add_sh_test(ncdap tst_zero_len_var)
|
|
add_sh_test(ncdap tst_encode)
|
|
# not yet add_sh_test(ncdap tst_hyrax)
|
|
add_sh_test(ncdap tst_fillmismatch)
|
|
IF(ENABLE_DAP_LONG_TESTS)
|
|
add_sh_test(ncdap tst_longremote3)
|
|
ENDIF(ENABLE_DAP_LONG_TESTS)
|
|
|
|
ENDIF(BUILD_UTILITIES)
|
|
|
|
IF(ENABLE_DAP_AUTH_TESTS)
|
|
##obsolete add_bin_test(ncdap t_auth)
|
|
add_sh_test(ncdap testauth)
|
|
ENDIF()
|
|
|
|
add_bin_test(ncdap test_varm3)
|
|
add_bin_test(ncdap test_nstride_cached)
|
|
|
|
###
|
|
# This test relates to NCF-330 in
|
|
# the Unidata JIRA system.
|
|
###
|
|
#add_bin_test(ncdap t_ncf330)
|
|
|
|
ENDIF()
|
|
ENDIF()
|
|
|
|
ADD_SUBDIRECTORY(testdata3)
|
|
ADD_SUBDIRECTORY(expected3)
|
|
ADD_SUBDIRECTORY(expectremote3)
|
|
|
|
## Specify files to be distributed by 'make dist'
|
|
FILE(GLOB CUR_EXTRA_DIST RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*.c ${CMAKE_CURRENT_SOURCE_DIR}/*.h ${CMAKE_CURRENT_SOURCE_DIR}/*.sh)
|
|
SET(CUR_EXTRA_DIST ${CUR_EXTRA_DIST} findtestserver.c.in CMakeLists.txt Makefile.am)
|
|
ADD_EXTRA_DIST("${CUR_EXTRA_DIST}")
|