r23792: convert Samba4 to GPLv3
[sfrench/samba-autobuild/.git] / source4 / torture / basic / attr.c
index b410d5b3e5f844a6b1a579d8e5c206fafb0ceba6..4c6a7a3ab6c8bb7e022cc694599e880d0527c714 100644 (file)
@@ -7,7 +7,7 @@
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
@@ -16,8 +16,7 @@
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #include "includes.h"
@@ -87,22 +86,15 @@ static const struct trunc_open_results attr_results[] = {
 };
 
 
-BOOL torture_openattrtest(void)
+BOOL torture_openattrtest(struct torture_context *tctx, 
+                                                 struct smbcli_state *cli1)
 {
-       struct smbcli_state *cli1;
        const char *fname = "\\openattr.file";
        int fnum1;
-       BOOL correct = True;
        uint16_t attr;
        uint_t i, j, k, l;
        int failures = 0;
 
-       printf("starting open attr test\n");
-       
-       if (!torture_open_connection(&cli1)) {
-               return False;
-       }
-       
        for (k = 0, i = 0; i < sizeof(open_attrs_table)/sizeof(uint32_t); i++) {
                smbcli_setatr(cli1->tree, fname, 0, 0);
                smbcli_unlink(cli1->tree, fname);
@@ -111,15 +103,13 @@ BOOL torture_openattrtest(void)
                                              open_attrs_table[i],
                                              NTCREATEX_SHARE_ACCESS_NONE, NTCREATEX_DISP_OVERWRITE_IF, 0, 0);
                
-               if (fnum1 == -1) {
-                       printf("open %d (1) of %s failed (%s)\n", i, fname, smbcli_errstr(cli1->tree));
-                       return False;
-               }
+               torture_assert(tctx, fnum1 != -1, talloc_asprintf(tctx, "open %d (1) of %s failed (%s)", i, 
+                                          fname, smbcli_errstr(cli1->tree)));
 
-               if (NT_STATUS_IS_ERR(smbcli_close(cli1->tree, fnum1))) {
-                       printf("close %d (1) of %s failed (%s)\n", i, fname, smbcli_errstr(cli1->tree));
-                       return False;
-               }
+               torture_assert_ntstatus_ok(tctx, 
+                                                       smbcli_close(cli1->tree, fnum1),
+                                                       talloc_asprintf(tctx, "close %d (1) of %s failed (%s)", i, fname, 
+                                                       smbcli_errstr(cli1->tree)));
 
                for (j = 0; j < ARRAY_SIZE(open_attrs_table); j++) {
                        fnum1 = smbcli_nt_create_full(cli1->tree, fname, 0, 
@@ -132,40 +122,37 @@ BOOL torture_openattrtest(void)
                        if (fnum1 == -1) {
                                for (l = 0; l < ARRAY_SIZE(attr_results); l++) {
                                        if (attr_results[l].num == k) {
-                                               printf("[%d] trunc open 0x%x -> 0x%x of %s failed - should have succeeded !(%s)\n",
+                                               torture_comment(tctx, "[%d] trunc open 0x%x -> 0x%x of %s failed - should have succeeded !(%s)\n",
                                                                k, open_attrs_table[i],
                                                                open_attrs_table[j],
                                                                fname, smbcli_errstr(cli1->tree));
-                                               correct = False;
                                                CHECK_MAX_FAILURES(error_exit);
                                        }
                                }
-                               if (!NT_STATUS_EQUAL(smbcli_nt_error(cli1->tree), NT_STATUS_ACCESS_DENIED)) {
-                                       printf("[%d] trunc open 0x%x -> 0x%x failed with wrong error code %s\n",
+                               torture_assert_ntstatus_equal(tctx, 
+                                       smbcli_nt_error(cli1->tree), NT_STATUS_ACCESS_DENIED, 
+                                       talloc_asprintf(tctx, "[%d] trunc open 0x%x -> 0x%x failed with wrong error code %s",
                                                        k, open_attrs_table[i], open_attrs_table[j],
-                                                       smbcli_errstr(cli1->tree));
-                                       correct = False;
+                                                       smbcli_errstr(cli1->tree)));
                                        CHECK_MAX_FAILURES(error_exit);
-                               }
 #if 0
-                               printf("[%d] trunc open 0x%x -> 0x%x failed\n", k, open_attrs_table[i], open_attrs_table[j]);
+                               torture_comment(tctx, "[%d] trunc open 0x%x -> 0x%x failed\n", k, open_attrs_table[i], open_attrs_table[j]);
 #endif
                                k++;
                                continue;
                        }
 
-                       if (NT_STATUS_IS_ERR(smbcli_close(cli1->tree, fnum1))) {
-                               printf("close %d (2) of %s failed (%s)\n", j, fname, smbcli_errstr(cli1->tree));
-                               return False;
-                       }
+                       torture_assert_ntstatus_ok(tctx, 
+                                                                          smbcli_close(cli1->tree, fnum1),
+                                                                       talloc_asprintf(tctx, "close %d (2) of %s failed (%s)", j, 
+                                                                       fname, smbcli_errstr(cli1->tree)));
 
-                       if (NT_STATUS_IS_ERR(smbcli_getatr(cli1->tree, fname, &attr, NULL, NULL))) {
-                               printf("getatr(2) failed (%s)\n", smbcli_errstr(cli1->tree));
-                               return False;
-                       }
+                       torture_assert_ntstatus_ok(tctx, 
+                                               smbcli_getatr(cli1->tree, fname, &attr, NULL, NULL),
+                                               talloc_asprintf(tctx, "getatr(2) failed (%s)", smbcli_errstr(cli1->tree)));
 
 #if 0
-                       printf("[%d] getatr check [0x%x] trunc [0x%x] got attr 0x%x\n",
+                       torture_comment(tctx, "[%d] getatr check [0x%x] trunc [0x%x] got attr 0x%x\n",
                                        k,  open_attrs_table[i],  open_attrs_table[j], attr );
 #endif
 
@@ -174,12 +161,11 @@ BOOL torture_openattrtest(void)
                                        if (attr != attr_results[l].result_attr ||
                                            open_attrs_table[i] != attr_results[l].init_attr ||
                                            open_attrs_table[j] != attr_results[l].trunc_attr) {
-                                               printf("[%d] getatr check failed. [0x%x] trunc [0x%x] got attr 0x%x, should be 0x%x\n",
+                                               torture_comment(tctx, "[%d] getatr check failed. [0x%x] trunc [0x%x] got attr 0x%x, should be 0x%x\n",
                                                       k, open_attrs_table[i],
                                                       open_attrs_table[j],
                                                       (uint_t)attr,
                                                       attr_results[l].result_attr);
-                                               correct = False;
                                                CHECK_MAX_FAILURES(error_exit);
                                        }
                                        break;
@@ -192,11 +178,6 @@ error_exit:
        smbcli_setatr(cli1->tree, fname, 0, 0);
        smbcli_unlink(cli1->tree, fname);
 
-       printf("open attr test %s.\n", correct ? "passed" : "failed");
-
-       if (!torture_close_connection(cli1)) {
-               correct = False;
-       }
-       return correct;
+       return true;
 }