s4/torture: fruit: in test_adouble_conversion() also check stream list and AFPINFO_STREAM
authorRalph Boehme <slow@samba.org>
Fri, 17 Nov 2017 11:57:14 +0000 (12:57 +0100)
committerJeremy Allison <jra@samba.org>
Wed, 29 Nov 2017 03:35:25 +0000 (04:35 +0100)
This reveals that the conversion doesn't work properly with
fruit:metadata=stream.

Bug: https://bugzilla.samba.org/show_bug.cgi?id=13155

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
selftest/knownfail.d/samba3.vfs.fruit
source4/torture/vfs/fruit.c

index 8df25bccb79b6474aac2a6faab4df7495336612f..1b4894fcf850c716ef2e8b820beb7af914982a21 100644 (file)
@@ -1 +1,2 @@
 ^samba3.vfs.fruit streams_depot.OS X AppleDouble file conversion\(nt4_dc\)
+^samba3.vfs.fruit metadata_stream.OS X AppleDouble file conversion\(nt4_dc\)
index 70e5c0279289e93ad77ed27d6642741b3b95387f..04f04e2cd5623f4afbc2b0c2aef9b2854807e900 100644 (file)
@@ -1959,6 +1959,13 @@ static bool test_adouble_conversion(struct torture_context *tctx,
        bool ret = true;
        const char *data = "This resource fork intentionally left blank";
        size_t datalen = strlen(data);
+       const char *streams[] = {
+               "::$DATA",
+               AFPINFO_STREAM,
+               AFPRESOURCE_STREAM,
+               ":com.apple.metadata" "\xef\x80\xa2" "_kMDItemUserTags:$DATA",
+               ":foo" "\xef\x80\xa2" "bar:$DATA", /* "foo:bar:$DATA" */
+       };
 
        smb2_deltree(tree, BASEDIR);
 
@@ -1989,12 +1996,21 @@ static bool test_adouble_conversion(struct torture_context *tctx,
        torture_assert_goto(tctx, ret == true, ret, done,
                            "check AFPRESOURCE_STREAM failed\n");
 
+       ret = check_stream(tree, __location__, tctx, mem_ctx,
+                          fname, AFPINFO_STREAM,
+                          0, 60, 16, 8, "TESTSLOW");
+       torture_assert_goto(tctx, ret == true, ret, done,
+                           "check AFPINFO_STREAM failed\n");
+
        ret = check_stream(tree, __location__, tctx, mem_ctx, fname,
                           ":foo" "\xef\x80\xa2" "bar:$DATA", /* "foo:bar:$DATA" */
                           0, 3, 0, 3, "baz");
        torture_assert_goto(tctx, ret == true, ret, done,
                            "check foo:bar stream failed\n");
 
+       ret = check_stream_list(tree, tctx, fname, 5, streams, false);
+       torture_assert_goto(tctx, ret == true, ret, done, "check_stream_list");
+
 done:
        smb2_deltree(tree, BASEDIR);
        talloc_free(mem_ctx);