Git fork
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

at reftables-rust 93 lines 1.6 kB view raw
1#!/bin/sh 2 3test_description='verify safe.directory checks while running as root' 4 5. ./test-lib.sh 6. "$TEST_DIRECTORY"/lib-sudo.sh 7 8if [ "$GIT_TEST_ALLOW_SUDO" != "YES" ] 9then 10 skip_all="You must set env var GIT_TEST_ALLOW_SUDO=YES in order to run this test" 11 test_done 12fi 13 14if ! test_have_prereq NOT_ROOT 15then 16 skip_all="These tests do not support running as root" 17 test_done 18fi 19 20test_lazy_prereq SUDO ' 21 sudo -n id -u >u && 22 id -u root >r && 23 test_cmp u r && 24 command -v git >u && 25 sudo command -v git >r && 26 test_cmp u r 27' 28 29if ! test_have_prereq SUDO 30then 31 skip_all="Your sudo/system configuration is either too strict or unsupported" 32 test_done 33fi 34 35test_expect_success SUDO 'setup' ' 36 sudo rm -rf root && 37 mkdir -p root/r && 38 ( 39 cd root/r && 40 git init 41 ) 42' 43 44test_expect_success SUDO 'sudo git status as original owner' ' 45 ( 46 cd root/r && 47 git status && 48 sudo git status 49 ) 50' 51 52test_expect_success SUDO 'setup root owned repository' ' 53 sudo mkdir -p root/p && 54 sudo git init root/p 55' 56 57test_expect_success 'cannot access if owned by root' ' 58 ( 59 cd root/p && 60 test_must_fail git status 61 ) 62' 63 64test_expect_success 'can access if addressed explicitly' ' 65 ( 66 cd root/p && 67 GIT_DIR=.git GIT_WORK_TREE=. git status 68 ) 69' 70 71test_expect_success SUDO 'can access with sudo if root' ' 72 ( 73 cd root/p && 74 sudo git status 75 ) 76' 77 78test_expect_success SUDO 'can access with sudo if root by removing SUDO_UID' ' 79 ( 80 cd root/p && 81 run_with_sudo <<-END 82 unset SUDO_UID && 83 git status 84 END 85 ) 86' 87 88# this MUST be always the last test 89test_expect_success SUDO 'cleanup' ' 90 sudo rm -rf root 91' 92 93test_done