Skip to content

Commit 4239359

Browse files
authored
Merge pull request #93 from alexandertuna/AutoDownloadMcMinio
Download mc/minio executables if necessary
2 parents 4dbc503 + 942d9e6 commit 4239359

File tree

2 files changed

+49
-3
lines changed

2 files changed

+49
-3
lines changed

test/CMakeLists.txt

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,51 @@
1+
set(EXECUTABLES "minio" "mc")
2+
3+
foreach(EXE IN LISTS EXECUTABLES)
4+
5+
find_program(EXE_BIN ${EXE} HINTS "${CMAKE_CURRENT_BINARY_DIR}")
6+
7+
if(NOT EXE_BIN)
8+
message("Didnt find ${EXE}. Downloading it ...")
9+
10+
if (APPLE)
11+
set(SYS_NAME "darwin")
12+
else()
13+
set(SYS_NAME "linux")
14+
endif()
15+
16+
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64" OR
17+
CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
18+
set(SYS_PROC "arm64")
19+
else()
20+
set(SYS_PROC "amd64")
21+
endif()
22+
23+
if (EXE STREQUAL "minio")
24+
set(DIR "server")
25+
else()
26+
set(DIR "client")
27+
endif()
28+
29+
set(URL "https://dl.min.io/${DIR}/${EXE}/release/${SYS_NAME}-${SYS_PROC}/${EXE}")
30+
set(FILE "${CMAKE_CURRENT_BINARY_DIR}/${EXE}")
31+
message("Downloading ${URL} to ${FILE}")
32+
file(DOWNLOAD "${URL}" "${FILE}" STATUS download_status)
33+
34+
list(GET download_status 0 RESULT_CODE)
35+
if (NOT RESULT_CODE EQUAL 0)
36+
message(FATAL_ERROR "Failed to download ${EXE}: ${RESULT_CODE}")
37+
endif()
38+
39+
file(CHMOD "${FILE}" PERMISSIONS
40+
OWNER_READ OWNER_WRITE OWNER_EXECUTE
41+
GROUP_READ GROUP_EXECUTE
42+
WORLD_READ WORLD_EXECUTE)
43+
endif()
44+
45+
endforeach()
46+
47+
find_program(MINIO_BIN minio HINTS "${CMAKE_CURRENT_BINARY_DIR}")
48+
find_program(MC_BIN mc HINTS "${CMAKE_CURRENT_BINARY_DIR}")
149

250
include(GoogleTest)
351

@@ -96,7 +144,7 @@ add_test(NAME S3::s3_basic::setup
96144
set_tests_properties(S3::s3_basic::setup
97145
PROPERTIES
98146
FIXTURES_SETUP S3::s3_basic
99-
ENVIRONMENT "BINARY_DIR=${CMAKE_BINARY_DIR};SOURCE_DIR=${CMAKE_SOURCE_DIR};XROOTD_BINDIR=${XRootD_DATA_DIR}/../bin"
147+
ENVIRONMENT "BINARY_DIR=${CMAKE_BINARY_DIR};SOURCE_DIR=${CMAKE_SOURCE_DIR};XROOTD_BINDIR=${XRootD_DATA_DIR}/../bin;MINIO_BIN=${MINIO_BIN};MC_BIN=${MC_BIN}"
100148
)
101149

102150
add_test(NAME S3::s3_basic::teardown

test/s3-setup.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,11 @@ fi
2626

2727
echo "Setting up S3 server for $TEST_NAME test"
2828

29-
MINIO_BIN="$(command -v minio)"
3029
if [ -z "$MINIO_BIN" ]; then
3130
echo "minio binary not found; cannot run unit test"
3231
exit 1
3332
fi
3433

35-
MC_BIN="$(command -v mc)"
3634
if [ -z "$MC_BIN" ]; then
3735
echo "mc binary not found; cannot run unit test"
3836
exit 1

0 commit comments

Comments
 (0)