зеркало из https://github.com/microsoft/git.git
config.mak.uname: set FREAD_READS_DIRECTORIES for Linux and FreeBSD
This variable is added [1] with the assumption that on a sane system,
fopen(<dir>, "r") should return NULL. Linux and FreeBSD do not meet this
expectation while at least Windows and AIX do. Let's make sure they
behave the same way.
I only tested one version on Linux (4.7.0 with glibc 2.22) and
FreeBSD (11.0) but since GNU/kFreeBSD is fbsd kernel with gnu userspace,
I'm pretty sure it shares the same problem.
[1] cba22528fa
(Add compat/fopen.c which returns NULL on attempt to open
directory - 2008-02-08)
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
02912f4775
Коммит
e2d90fd1c3
|
@ -36,6 +36,7 @@ ifeq ($(uname_S),Linux)
|
|||
NEEDS_LIBRT = YesPlease
|
||||
HAVE_GETDELIM = YesPlease
|
||||
SANE_TEXT_GREP=-a
|
||||
FREAD_READS_DIRECTORIES = UnfortunatelyYes
|
||||
endif
|
||||
ifeq ($(uname_S),GNU/kFreeBSD)
|
||||
HAVE_ALLOCA_H = YesPlease
|
||||
|
@ -43,6 +44,7 @@ ifeq ($(uname_S),GNU/kFreeBSD)
|
|||
HAVE_PATHS_H = YesPlease
|
||||
DIR_HAS_BSD_GROUP_SEMANTICS = YesPlease
|
||||
LIBC_CONTAINS_LIBINTL = YesPlease
|
||||
FREAD_READS_DIRECTORIES = UnfortunatelyYes
|
||||
endif
|
||||
ifeq ($(uname_S),UnixWare)
|
||||
CC = cc
|
||||
|
@ -201,6 +203,7 @@ ifeq ($(uname_S),FreeBSD)
|
|||
GMTIME_UNRELIABLE_ERRORS = UnfortunatelyYes
|
||||
HAVE_BSD_SYSCTL = YesPlease
|
||||
PAGER_ENV = LESS=FRX LV=-c MORE=FRX
|
||||
FREAD_READS_DIRECTORIES = UnfortunatelyYes
|
||||
endif
|
||||
ifeq ($(uname_S),OpenBSD)
|
||||
NO_STRCASESTR = YesPlease
|
||||
|
|
|
@ -183,6 +183,14 @@ test_expect_success 'proper error on non-existent files' '
|
|||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'proper error on directory "files"' '
|
||||
echo "Error (-1) reading configuration file a-directory." >expect &&
|
||||
mkdir a-directory &&
|
||||
test_expect_code 2 test-config configset_get_value foo.bar a-directory 2>output &&
|
||||
grep "^Error" output >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success POSIXPERM,SANITY 'proper error on non-accessible files' '
|
||||
chmod -r .git/config &&
|
||||
test_when_finished "chmod +r .git/config" &&
|
||||
|
|
Загрузка…
Ссылка в новой задаче