Skip to content

Commit

Permalink
Merge remote-tracking branch 'rab-github/tril-7881-skip-install-perm-…
Browse files Browse the repository at this point in the history
…code-osx' (trilinos/Trilinos#7881)
  • Loading branch information
bartlettroscoe committed Sep 19, 2020
2 parents cae55bc + ef76b3c commit 1b00a3c
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 17 deletions.
46 changes: 31 additions & 15 deletions test/core/ExamplesUnitTests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -527,11 +527,20 @@ TRIBITS_ADD_ADVANCED_TEST( TribitsHelloWorld_install_perms
ALWAYS_FAIL_ON_NONZERO_RETURN

TEST_1
MESSAGE "Verify that set_installed_group_and_permissions.cmake is *not* in build dir"
CMND ls ARGS set_installed_group_and_permissions.cmake
PASS_REGULAR_EXPRESSION
"No such file or directory"
ALWAYS_FAIL_ON_ZERO_RETURN
# NOTE: We don't want running any extra code if we are just using the stock
# built-in CMake permissions scheme. (See trilinos/Trilinos#7881)

TEST_2
MESSAGE "Do make to build everything"
CMND make ARGS ${CTEST_BUILD_FLAGS}
ALWAYS_FAIL_ON_NONZERO_RETURN

TEST_2
TEST_3
MESSAGE "Make install with default directory settings"
CMND make ARGS ${CTEST_BUILD_FLAGS} install
PASS_REGULAR_EXPRESSION_ALL
Expand All @@ -540,7 +549,7 @@ TRIBITS_ADD_ADVANCED_TEST( TribitsHelloWorld_install_perms
"Installing: .*/TriBITS_TribitsHelloWorld_install_perms/install/bin/hello_world.exe"
ALWAYS_FAIL_ON_NONZERO_RETURN

TEST_3
TEST_4
MESSAGE "Check some default install directory permissions"
CMND ls ARGS -ld
install install/include install/lib install/bin
Expand All @@ -555,7 +564,7 @@ TRIBITS_ADD_ADVANCED_TEST( TribitsHelloWorld_install_perms
# the owner should have read/write/execute on the directories or it could
# not possibily install anything.

TEST_4
TEST_5
MESSAGE "Check some default install file permissions"
CMND ls ARGS -l
install install/include install/lib install/bin
Expand All @@ -567,7 +576,7 @@ TRIBITS_ADD_ADVANCED_TEST( TribitsHelloWorld_install_perms
# NOTE: The above permissions are the default install permissions of CMake
# for files that it installs.

TEST_5
TEST_6
MESSAGE "Reconfigure with <Project>_MAKE_INSTALL_WORLD_READABLE=ON"
CMND ${CMAKE_COMMAND}
ARGS
Expand All @@ -581,20 +590,27 @@ TRIBITS_ADD_ADVANCED_TEST( TribitsHelloWorld_install_perms
"-- CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS = [(]OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE[)]"
ALWAYS_FAIL_ON_NONZERO_RETURN

TEST_6
TEST_7
MESSAGE "Verify that set_installed_group_and_permissions.cmake *is* in build dir"
CMND ls ARGS set_installed_group_and_permissions.cmake
PASS_REGULAR_EXPRESSION
"set_installed_group_and_permissions.cmake"
ALWAYS_FAIL_ON_NONZERO_RETURN

TEST_8
MESSAGE "Remove the install directory"
CMND rm ARGS -r install
ALWAYS_FAIL_ON_NONZERO_RETURN

TEST_7
TEST_9
MESSAGE "Re-install"
CMND make ARGS ${CTEST_BUILD_FLAGS} install
PASS_REGULAR_EXPRESSION_ALL
"Installing: .*/TriBITS_TribitsHelloWorld_install_perms/install/bin/hello_world.exe"
"0: Running: chmod o[+]rX -R /.*/TriBITS_TribitsHelloWorld_install_perms/install"
ALWAYS_FAIL_ON_NONZERO_RETURN

TEST_8
TEST_10
MESSAGE "Check updated permissions for <Project>_MAKE_INSTALL_WORLD_READABLE=ON"
CMND ls ARGS -ld
install install/include install/lib install/bin
Expand All @@ -605,7 +621,7 @@ TRIBITS_ADD_ADVANCED_TEST( TribitsHelloWorld_install_perms
"drwxr-xr-x.* .* install/lib"
ALWAYS_FAIL_ON_NONZERO_RETURN

TEST_9
TEST_11
MESSAGE "Reconfigure with <Project>_MAKE_INSTALL_GROUP_READABLE=ON and <Project>_MAKE_INSTALL_WORLD_READABLE=OFF"
CMND ${CMAKE_COMMAND}
ARGS
Expand All @@ -620,17 +636,17 @@ TRIBITS_ADD_ADVANCED_TEST( TribitsHelloWorld_install_perms
"-- CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS = [(]OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE[)]"
ALWAYS_FAIL_ON_NONZERO_RETURN

TEST_10
TEST_12
MESSAGE "Remove the install directory"
CMND rm ARGS -r install
ALWAYS_FAIL_ON_NONZERO_RETURN

TEST_11
TEST_13
MESSAGE "Re-install"
CMND make ARGS ${CTEST_BUILD_FLAGS} install
ALWAYS_FAIL_ON_NONZERO_RETURN

TEST_12
TEST_14
MESSAGE "Check updated permissions for <Project>_MAKE_INSTALL_GROUP_READABLE=ON and <Project>_MAKE_INSTALL_WORLD_READABLE=OFF"
CMND ls ARGS -ld
install install/include install/lib install/bin
Expand All @@ -641,7 +657,7 @@ TRIBITS_ADD_ADVANCED_TEST( TribitsHelloWorld_install_perms
"drwxr-x---.* .* install/lib"
ALWAYS_FAIL_ON_NONZERO_RETURN

TEST_13
TEST_15
MESSAGE "Reconfigure with <Project>_MAKE_INSTALL_GROUP_READABLE=OFF and <Project>_MAKE_INSTALL_WORLD_READABLE=OFF"
CMND ${CMAKE_COMMAND}
ARGS
Expand All @@ -656,17 +672,17 @@ TRIBITS_ADD_ADVANCED_TEST( TribitsHelloWorld_install_perms
"-- CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS = [(]OWNER_READ OWNER_WRITE OWNER_EXECUTE[)]"
ALWAYS_FAIL_ON_NONZERO_RETURN

TEST_14
TEST_16
MESSAGE "Remove the install directory"
CMND rm ARGS -r install
ALWAYS_FAIL_ON_NONZERO_RETURN

TEST_15
TEST_17
MESSAGE "Re-install"
CMND make ARGS ${CTEST_BUILD_FLAGS} install
ALWAYS_FAIL_ON_NONZERO_RETURN

TEST_16
TEST_18
MESSAGE "Check updated permissions for <Project>_MAKE_INSTALL_GROUP_READABLE=OFF and <Project>_MAKE_INSTALL_WORLD_READABLE=OFF"
CMND ls ARGS -ld
install install/include install/lib install/bin
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,13 @@ ENDFUNCTION()

FUNCTION(SET_DIR_OWNER_AND_PERMS dirPath recurseFlag)

EXECUTE_PROCESS(COMMAND stat -c %U "${dirPath}"
IF (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
SET(STAT_ARG "-f") # MacOSX stat
ELSE()
SET(STAT_ARG "-c") # BinUtils stat
ENDIF()

EXECUTE_PROCESS(COMMAND stat ${STAT_ARG} %U "${dirPath}"
OUTPUT_STRIP_TRAILING_WHITESPACE
OUTPUT_VARIABLE dirOwner)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,29 @@ INCLUDE(Join)
INCLUDE(TribitsFilepathHelpers)


FUNCTION(TRIBITS_DETERMINE_IF_SETUP_FOR_GROUP_AND_PERMS_MODIFICATIONS
SETUP_FOR_GROUP_AND_PERMS_MODIFICATIONS_OUT
)

IF (CMAKE_SYSTEM_NAME STREQUAL "Windows")
SET(setupForGroupAndPermsModifications FALSE)
ELSEIF(
${PROJECT_NAME}_MAKE_INSTALL_GROUP_WRITABLE OR
${PROJECT_NAME}_MAKE_INSTALL_GROUP_READABLE OR
${PROJECT_NAME}_MAKE_INSTALL_WORLD_READABLE OR
${PROJECT_NAME}_MAKE_INSTALL_GROUP
)
SET(setupForGroupAndPermsModifications TRUE)
ELSE()
SET(setupForGroupAndPermsModifications FALSE)
ENDIF()

SET(${SETUP_FOR_GROUP_AND_PERMS_MODIFICATIONS_OUT}
${setupForGroupAndPermsModifications} PARENT_SCOPE)

ENDFUNCTION()


FUNCTION(TRIBITS_CONFIGURE_SET_INSTALLED_GROUP_AND_PERMS_FILE TARGET_FILE)

SET(PROJECT_SET_GROUP_AND_PERMISSIONS_ON_INSTALL_BASE_DIR
Expand Down Expand Up @@ -41,7 +64,10 @@ ENDFUNCTION()

FUNCTION(TRIBITS_ADD_INSTALL_GROUP_AND_PERMS_FIXUPS)

IF (NOT CMAKE_SYSTEM_NAME STREQUAL "Windows")
TRIBITS_DETERMINE_IF_SETUP_FOR_GROUP_AND_PERMS_MODIFICATIONS(
setupForGroupAndPermsModifications)

IF (setupForGroupAndPermsModifications)

SET(set_installed_group_and_permissions_file
"${PROJECT_BINARY_DIR}/set_installed_group_and_permissions.cmake")
Expand Down

0 comments on commit 1b00a3c

Please sign in to comment.