diff options
author | François Revol <revol@free.fr> | 2016-05-24 19:07:09 +0200 |
---|---|---|
committer | François Revol <revol@free.fr> | 2016-05-24 20:01:49 +0200 |
commit | 407f2e9fbda241a946542800584e73c20d487110 (patch) | |
tree | 259e520727318d8a5f671f049ddf0492b971fe7f | |
parent | c756448cefdf7369f30c45e9427ad5ba67e33483 (diff) | |
download | libgit2-407f2e9fbda241a946542800584e73c20d487110.tar.gz |
test: Fix stat() test to mask out unwanted bits
Haiku and Hurd both pass extra bits in struct stat::st_mode.
-rw-r--r-- | tests/checkout/index.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/tests/checkout/index.c b/tests/checkout/index.c index 8af3e5684..ca63dc3f8 100644 --- a/tests/checkout/index.c +++ b/tests/checkout/index.c @@ -294,11 +294,12 @@ void test_checkout_index__options_dir_modes(void) (void)p_umask(um = p_umask(022)); cl_git_pass(p_stat("./testrepo/a", &st)); - cl_assert_equal_i_fmt(st.st_mode, (GIT_FILEMODE_TREE | 0701) & ~um, "%07o"); + /* Haiku & Hurd use other mode bits, so we must mask them out */ + cl_assert_equal_i_fmt(st.st_mode & (S_IFMT | 07777), (GIT_FILEMODE_TREE | 0701) & ~um, "%07o"); /* File-mode test, since we're on the 'dir' branch */ cl_git_pass(p_stat("./testrepo/a/b.txt", &st)); - cl_assert_equal_i_fmt(st.st_mode, GIT_FILEMODE_BLOB_EXECUTABLE & ~um, "%07o"); + cl_assert_equal_i_fmt(st.st_mode & (S_IFMT | 07777), GIT_FILEMODE_BLOB_EXECUTABLE & ~um, "%07o"); git_commit_free(commit); } |