r16907: Add an index parameter to torture_open_connection. Next step is to enable the
[kai/samba.git] / source4 / torture / basic / utable.c
index f98e1b1b4ad2993be43fccbb659cc6cf12518b06..8e13babd0a92b07db27a9ffa28aa92a07b45fce1 100644 (file)
 */
 
 #include "includes.h"
-
-BOOL torture_utable(int dummy)
+#include "torture/torture.h"
+#include "system/filesys.h"
+#include "system/locale.h"
+#include "libcli/libcli.h"
+#include "torture/util.h"
+#include "pstring.h"
+
+BOOL torture_utable(struct torture_context *torture)
 {
        struct smbcli_state *cli;
        fstring fname;
        const char *alt_name;
        int fnum;
-       smb_ucs2_t c2;
+       uint8_t c2[4];
        int c, len, fd;
        int chars_allowed=0, alt_allowed=0;
        uint8_t valid[0x10000];
@@ -35,23 +41,24 @@ BOOL torture_utable(int dummy)
 
        printf("Generating valid character table\n");
 
-       if (!torture_open_connection(&cli)) {
+       if (!torture_open_connection(&cli, 0)) {
                return False;
        }
 
        memset(valid, 0, sizeof(valid));
 
-       smbcli_mkdir(cli->tree, "\\utable");
-       smbcli_unlink(cli->tree, "\\utable\\*");
+       if (!torture_setup_dir(cli, "\\utable")) {
+               return False;
+       }
 
        for (c=1; c < 0x10000; c++) {
                char *p;
 
-               SSVAL(&c2, 0, c);
+               SSVAL(c2, 0, c);
                fstrcpy(fname, "\\utable\\x");
                p = fname+strlen(fname);
-               len = convert_string(CH_UCS2, CH_UNIX, 
-                                    &c2, 2, 
+               len = convert_string(CH_UTF16, CH_UNIX, 
+                                    c2, 2, 
                                     p, sizeof(fname)-strlen(fname));
                p[len] = 0;
                fstrcat(fname,"_a_long_extension");
@@ -99,32 +106,32 @@ BOOL torture_utable(int dummy)
 static char *form_name(int c)
 {
        static fstring fname;
-       smb_ucs2_t c2;
+       uint8_t c2[4];
        char *p;
        int len;
 
        fstrcpy(fname, "\\utable\\");
        p = fname+strlen(fname);
-       SSVAL(&c2, 0, c);
+       SSVAL(c2, 0, c);
 
-       len = convert_string(CH_UCS2, CH_UNIX, 
-                            &c2, 2, 
+       len = convert_string(CH_UTF16, CH_UNIX, 
+                            c2, 2, 
                             p, sizeof(fname)-strlen(fname));
        p[len] = 0;
        return fname;
 }
 
-BOOL torture_casetable(int dummy)
+BOOL torture_casetable(struct torture_context *torture)
 {
        static struct smbcli_state *cli;
        char *fname;
        int fnum;
        int c, i;
 #define MAX_EQUIVALENCE 8
-       smb_ucs2_t equiv[0x10000][MAX_EQUIVALENCE];
+       codepoint_t equiv[0x10000][MAX_EQUIVALENCE];
        printf("starting casetable\n");
 
-       if (!torture_open_connection(&cli)) {
+       if (!torture_open_connection(&cli, 0)) {
                return False;
        }
 
@@ -132,9 +139,7 @@ BOOL torture_casetable(int dummy)
 
        memset(equiv, 0, sizeof(equiv));
 
-       smbcli_deltree(cli->tree, "\\utable");
-       if (NT_STATUS_IS_ERR(smbcli_mkdir(cli->tree, "\\utable"))) {
-               printf("Failed to create utable directory!\n");
+       if (!torture_setup_dir(cli, "\\utable")) {
                return False;
        }
 
@@ -148,13 +153,13 @@ BOOL torture_casetable(int dummy)
                fname = form_name(c);
                fnum = smbcli_nt_create_full(cli->tree, fname, 0,
 #if 0
-                                         SEC_RIGHT_MAXIMUM_ALLOWED, 
+                                            SEC_RIGHT_MAXIMUM_ALLOWED, 
 #else
-                                         GENERIC_RIGHTS_FILE_ALL_ACCESS,
+                                            SEC_RIGHTS_FILE_ALL,
 #endif
-                                         FILE_ATTRIBUTE_NORMAL,
-                                         NTCREATEX_SHARE_ACCESS_NONE,
-                                         NTCREATEX_DISP_OPEN_IF, 0, 0);
+                                            FILE_ATTRIBUTE_NORMAL,
+                                            NTCREATEX_SHARE_ACCESS_NONE,
+                                            NTCREATEX_DISP_OPEN_IF, 0, 0);
 
                if (fnum == -1) {
                        printf("Failed to create file with char %04x\n", c);
@@ -172,12 +177,12 @@ BOOL torture_casetable(int dummy)
 
                        if (size/sizeof(int) >= MAX_EQUIVALENCE) {
                                printf("too many chars match?? size=%d c=0x%04x\n",
-                                      size, c);
+                                      (int)size, c);
                                smbcli_close(cli->tree, fnum);
                                return False;
                        }
 
-                       smbcli_read(cli->tree, fnum, (char *)c2, 0, size);
+                       smbcli_read(cli->tree, fnum, c2, 0, size);
                        printf("%04x: ", c);
                        equiv[c][0] = c;
                        for (i=0; i<size/sizeof(int); i++) {
@@ -188,7 +193,7 @@ BOOL torture_casetable(int dummy)
                        fflush(stdout);
                }
 
-               smbcli_write(cli->tree, fnum, 0, (char *)&c, size, sizeof(c));
+               smbcli_write(cli->tree, fnum, 0, &c, size, sizeof(c));
                smbcli_close(cli->tree, fnum);
        }