diff options
author | Ralph Boehme <slow@samba.org> | 2021-02-01 14:44:03 +0100 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2021-02-26 08:50:41 +0000 |
commit | c19d3eacc2f3626622905e9725ddb96e27ca1fe2 (patch) | |
tree | 9f52cd1f99d947bb212d32011887798ad0b0732e | |
parent | cc3c704a84fcf511debfcbbb1a40794111a836e1 (diff) | |
download | samba-c19d3eacc2f3626622905e9725ddb96e27ca1fe2.tar.gz |
CI: verify a symlink has FILE_ATTRIBUTE_NORMAL set
Not that it really makes sense to set FILE_ATTRIBUTE_NORMAL for symlinks in
POSIX client context, but that's what we had before 4.14.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14629
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
(cherry picked from commit 5572ae296e720a00ab438d7b50cfc458af631f69)
-rw-r--r-- | selftest/knownfail.d/samba3.smbtorture_s3 | 4 | ||||
-rw-r--r-- | source3/torture/test_posix.c | 14 |
2 files changed, 18 insertions, 0 deletions
diff --git a/selftest/knownfail.d/samba3.smbtorture_s3 b/selftest/knownfail.d/samba3.smbtorture_s3 new file mode 100644 index 00000000000..2b9c93ab2c7 --- /dev/null +++ b/selftest/knownfail.d/samba3.smbtorture_s3 @@ -0,0 +1,4 @@ +^samba3.smbtorture_s3.plain.POSIX-LS-WILDCARD.smbtorture.* +^samba3.smbtorture_s3.crypt.POSIX-LS-WILDCARD.smbtorture.* +^samba3.smbtorture_s3.plain.POSIX-LS-SINGLE.smbtorture.* +^samba3.smbtorture_s3.crypt.POSIX-LS-SINGLE.smbtorture.* diff --git a/source3/torture/test_posix.c b/source3/torture/test_posix.c index 415460cf86c..3ccb51d222b 100644 --- a/source3/torture/test_posix.c +++ b/source3/torture/test_posix.c @@ -31,6 +31,7 @@ struct posix_test_entry { const char *name; const char *target; const char *expected; + uint32_t attr; uint64_t returned_size; bool ok; }; @@ -44,6 +45,9 @@ static NTSTATUS posix_ls_fn(struct file_info *finfo, for (; state->name != NULL; state++) { if (strequal(finfo->name, state->expected)) { + if (state->attr != finfo->attr) { + break; + } state->ok = true; state->returned_size = finfo->size; break; @@ -57,6 +61,7 @@ static void posix_test_entries_reset(struct posix_test_entry *state) { for (; state->name != NULL; state++) { state->ok = false; + state->returned_size = 0; } } @@ -111,14 +116,17 @@ bool run_posix_ls_wildcard_test(int dummy) .name = symlnk_dangling, .target = symlnk_dst_dangling, .expected = symlnk_dangling, + .attr = FILE_ATTRIBUTE_NORMAL, }, { .name = symlnk_in_share, .target = symlnk_dst_in_share, .expected = symlnk_in_share, + .attr = FILE_ATTRIBUTE_NORMAL, }, { .name = symlnk_outside_share, .target = symlnk_dst_outside_share, .expected = symlnk_outside_share, + .attr = FILE_ATTRIBUTE_NORMAL, }, { .name = NULL, } @@ -275,14 +283,17 @@ bool run_posix_ls_single_test(int dummy) .name = symlnk_dangling, .target = symlnk_dst_dangling, .expected = symlnk_dangling, + .attr = FILE_ATTRIBUTE_NORMAL, }, { .name = symlnk_in_share, .target = symlnk_dst_in_share, .expected = symlnk_in_share, + .attr = FILE_ATTRIBUTE_NORMAL, }, { .name = symlnk_outside_share, .target = symlnk_dst_outside_share, .expected = symlnk_outside_share, + .attr = FILE_ATTRIBUTE_NORMAL, }, { .name = NULL, } @@ -457,14 +468,17 @@ bool run_posix_readlink_test(int dummy) .name = symlnk_dangling, .target = symlnk_dst_dangling, .expected = symlnk_dangling, + .attr = FILE_ATTRIBUTE_NORMAL, }, { .name = symlnk_in_share, .target = symlnk_dst_in_share, .expected = symlnk_in_share, + .attr = FILE_ATTRIBUTE_NORMAL, }, { .name = symlnk_outside_share, .target = symlnk_dst_outside_share, .expected = symlnk_outside_share, + .attr = FILE_ATTRIBUTE_NORMAL, }, { .name = NULL, } |