Skip to content

Commit

Permalink
Adding a test which can be used to ensure that the AWSSDK which was d…
Browse files Browse the repository at this point in the history
…iscovered at configure time is functional. Still need to wire it into autotools.
  • Loading branch information
WardF committed Aug 28, 2023
1 parent 7333d09 commit 2f43247
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 3 deletions.
29 changes: 29 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2135,6 +2135,35 @@ MACRO(build_bin_test_no_prefix F)
ENDIF()
ENDMACRO()

# Build a test and add it to the test list.
MACRO(add_bin_test_cpp prefix F)
ADD_EXECUTABLE(${prefix}_${F} ${F}.cpp ${ARGN})
SET_TARGET_PROPERTIES(${prefix}_${F} PROPERTIES LINKER_LANGUAGE CXX)
TARGET_LINK_LIBRARIES(${prefix}_${F}
${ALL_TLL_LIBS}
netcdf
)
IF(MSVC)
SET_TARGET_PROPERTIES(${prefix}_${F}
PROPERTIES LINK_FLAGS_DEBUG " /NODEFAULTLIB:MSVCRT"
)
ENDIF()
ADD_TEST(${prefix}_${F}
${EXECUTABLE_OUTPUT_PATH}/${prefix}_${F}
)
IF(MSVC)
SET_PROPERTY(TEST ${prefix}_${F} PROPERTY FOLDER "tests/")
SET_TARGET_PROPERTIES(${prefix}_${F} PROPERTIES RUNTIME_OUTPUT_DIRECTORY
${CMAKE_CURRENT_BINARY_DIR})
SET_TARGET_PROPERTIES(${prefix}_${F} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG
${CMAKE_CURRENT_BINARY_DIR})
SET_TARGET_PROPERTIES(${prefix}_${F} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE
${CMAKE_CURRENT_BINARY_DIR})
ENDIF()
ENDMACRO()


# Build a test and add it to the test list.
MACRO(add_bin_test prefix F)
ADD_EXECUTABLE(${prefix}_${F} ${F}.c ${ARGN})
TARGET_LINK_LIBRARIES(${prefix}_${F}
Expand Down
16 changes: 13 additions & 3 deletions nczarr_test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,18 @@ IF(ENABLE_TESTS)

IF(ENABLE_S3 AND NOT WITH_S3_TESTING STREQUAL "NO")
# Helper programs for testing
BUILD_BIN_TEST(s3util ${COMMONSRC})
TARGET_INCLUDE_DIRECTORIES(s3util PUBLIC ../libnczarr)
BUILD_BIN_TEST(s3util ${COMMONSRC})
# Pure AWS Test
IF(ENABLE_S3_AWS)
SET(TMP_CMAKE_CXX_STANDARD ${MAKE_CXX_STANDARD})
SET(CMAKE_CXX_STANDARD 11)
ADD_EXECUTABLE(tst_pure_aws tst_pure_aws.cpp)
TARGET_LINK_LIBRARIES(tst_pure_aws ${AWSSDK_CORE_LIB_FILE})
ADD_TEST(tst_pure_aws ${EXECUTABLE_PUTPUT_PATH}/tst_pure_aws)

SET(CMAKE_CXX_STANDARD ${TMP_CMAKE_CXX_STANDARD})
ENDIF(ENABLE_S3_AWS)
TARGET_INCLUDE_DIRECTORIES(s3util PUBLIC ../libnczarr)
endif()

SET(ncdumpchunks_SOURCE ncdumpchunks.c)
Expand Down Expand Up @@ -143,7 +153,7 @@ IF(ENABLE_TESTS)
add_sh_test(nczarr_test run_notzarr)

if(ENABLE_S3)
add_sh_test(nczarr_test run_s3_cleanup)
add_sh_test(nczarr_test run_s3_cleanup)
ENDIF()

IF(ENABLE_FILTER_TESTING)
Expand Down
14 changes: 14 additions & 0 deletions nczarr_test/tst_pure_awssdk.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#include <aws/core/Aws.h>
#include <iostream>
int main(int argc, char** argv)
{
Aws::SDKOptions options;
std::cout << "Running a pure-aws test instantiation to test the aws-cpp-sdk install.\nA failure may manifest as a hang.\n\n";
std::cout << "\t* Testing InitAPI()\n";
Aws::InitAPI(options);
std::cout << "\t\t* Passed.\n";
std::cout << "\t* Testing ShutdownAPI()\n";
Aws::ShutdownAPI(options);
std::cout << "\t\t* Passed.\n";
return 0;
}

0 comments on commit 2f43247

Please sign in to comment.