*/
#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];
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");
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;
}
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;
}
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);
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++) {
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);
}