Skip to content
Snippets Groups Projects
Commit 36525936 authored by Sergey Yakubov's avatar Sergey Yakubov
Browse files

make tests run on windows

parent 9474ee9c
No related branches found
No related tags found
No related merge requests found
:: download and untar mongoc driver to dir
:: https://github.com/mongodb/mongo-c-driver/releases/download/1.9.0/mongo-c-driver-1.9.0.tar.gz
:: set directory where mongoc driver is
SET dir=c:\tmp\mongo-c-driver-1.9.0
set mypath=%cd%
cd /d %dir%
:: install libbson
cd src\libbson
cmake "-DCMAKE_INSTALL_PREFIX=C:\mongo-c-driver" ^
"-DCMAKE_BUILD_TYPE=Release" ^
"-DCMAKE_C_FLAGS_RELEASE=/MT"
cmake --build . --config Release
cmake --build . --target install --config Release
:: install mongoc
cd %dir%
cmake "-DCMAKE_INSTALL_PREFIX=C:\mongo-c-driver" ^
"-DCMAKE_PREFIX_PATH=C:\mongo-c-driver" ^
"-DCMAKE_BUILD_TYPE=Release" ^
"-DENABLE_SSL=OFF" ^
"-DENABLE_SASL=OFF" ^
"-DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF" ^
"-DMONGOC_ENABLE_STATIC=ON" ^
"-DCMAKE_C_FLAGS_RELEASE=/MT"
cmake --build . --config Release
cmake --build . --target install --config Release
cd /d %mypath%
......@@ -79,20 +79,34 @@ function(add_memory_test target executable commandargs fixture label)
endif ()
endfunction()
function(add_test_setup_cleanup exename)
function(add_test_setup exename)
if (BUILD_INTEGRATION_TESTS)
IF (WIN32)
add_test(NAME test-${exename}-setup COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/setup_windows.bat)
add_test(NAME test-${exename}-cleanup COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/cleanup_windows.bat)
ELSE()
add_test(NAME test-${exename}-setup COMMAND bash ${CMAKE_CURRENT_SOURCE_DIR}/setup_linux.sh)
add_test(NAME test-${exename}-cleanup COMMAND bash ${CMAKE_CURRENT_SOURCE_DIR}/cleanup_linux.sh)
ENDIF()
set_tests_properties(test-${exename}-setup PROPERTIES FIXTURES_SETUP test-${exename}-fixture)
endif ()
endfunction()
function(add_test_cleanup exename)
if (BUILD_INTEGRATION_TESTS)
IF (WIN32)
add_test(NAME test-${exename}-cleanup COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/cleanup_windows.bat)
ELSE()
add_test(NAME test-${exename}-cleanup COMMAND bash ${CMAKE_CURRENT_SOURCE_DIR}/cleanup_linux.sh)
ENDIF()
set_tests_properties(test-${exename}-cleanup PROPERTIES FIXTURES_CLEANUP test-${exename}-fixture)
endif ()
endfunction()
function(add_test_setup_cleanup exename)
add_test_setup(${exename})
add_test_cleanup(${exename})
endfunction()
function(add_integration_test exename testname commandargs)
if (BUILD_INTEGRATION_TESTS)
set(args ${commandargs})
......
#!/usr/bin/env bash
database_name=data
echo "db.test.deleteMany({})" | mongo ${database_name}
#!/usr/bin/env bash
#do nothing
\ No newline at end of file
......@@ -12,7 +12,7 @@ target_include_directories(${TARGET_NAME} PUBLIC ${HIDRA2_CXX_COMMON_INCLUDE_DIR
################################
# Testing
################################
add_test_setup_cleanup(${TARGET_NAME})
add_test_cleanup(${TARGET_NAME})
add_integration_test(${TARGET_NAME} insertOK "OK 1" "OK 2")
add_integration_test(${TARGET_NAME} insertFailsWhenNotConnected
"NotConnected 3"
......
SET database_name=data
SET mongo_exe="c:\Program Files\MongoDB\Server\3.6\bin\mongo.exe"
echo db.test.deleteMany({}) | %mongo_exe% %database_name%
#!/usr/bin/env bash
#do nothing
\ No newline at end of file
SET database_name=data
SET mongo_exe="c:\Program Files\MongoDB\Server\3.6\bin\mongo.exe"
mkdir test
echo "" > test/1
echo "" > test/file2
ping 1.0.0.0 -n 1 -w 100 > nul
echo "" > test/file1
%* test 127.0.0.1 || goto :error
echo show collections | %mongo_exe% %database_name% | findstr test || goto :error
echo db.test.find({"_id":1}) | %mongo_exe% %database_name% | findstr file2 || goto :error
echo db.test.find({"_id":2}) | %mongo_exe% %database_name% | findstr file1 || goto :error
# check if gives error on duplicates
%* test 127.0.0.1 && goto :error
# check if does not give error on duplicates when a flag is set
%* -i test 127.0.0.1 || goto :error
%1 test 123
goto :clean
:error
call :clean
exit /b 1
:clean
echo db.test.deleteMany({}) | %mongo_exe% %database_name%
rmdir /S /Q test
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment