diff options
author | Andrew Tridgell <tridge@samba.org> | 2004-10-26 13:16:50 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:04:47 -0500 |
commit | f493f7be97e9200c28dc69d73e64044140743e0b (patch) | |
tree | 5b91b1486a2a536bc371a3c4c58f275eadcc09b2 | |
parent | e767d8d1b2c1e86e48d827f10f1773b0dab8e565 (diff) | |
download | samba-f493f7be97e9200c28dc69d73e64044140743e0b.tar.gz samba-f493f7be97e9200c28dc69d73e64044140743e0b.tar.bz2 samba-f493f7be97e9200c28dc69d73e64044140743e0b.zip |
r3261: added seek to RAW-SEARCH test
(This used to be commit 05530bfb99011db8a00f5debcf8eec19b5e8a5d6)
-rw-r--r-- | source4/lib/genrand.c | 29 | ||||
-rw-r--r-- | source4/torture/raw/search.c | 9 |
2 files changed, 23 insertions, 15 deletions
diff --git a/source4/lib/genrand.c b/source4/lib/genrand.c index adc6d7344e..72e4997596 100644 --- a/source4/lib/genrand.c +++ b/source4/lib/genrand.c @@ -261,27 +261,36 @@ BOOL check_password_quality(const char *s) Use the random number generator to generate a random string. ********************************************************************/ -static char c_list[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+_-#.,"; - -char *generate_random_str(TALLOC_CTX *mem_ctx, size_t len) +char *generate_random_str_list(TALLOC_CTX *mem_ctx, size_t len, const char *list) { size_t i; + size_t list_len = strlen(list); char *retstr = talloc(mem_ctx, len + 1); + if (!retstr) return NULL; - if (!retstr) - return NULL; - -again: generate_random_buffer(retstr, len); - for (i = 0; i < len; i++) - retstr[i] = c_list[retstr[i] % (sizeof(c_list)-1) ]; - + for (i = 0; i < len; i++) { + retstr[i] = list[retstr[i] % list_len]; + } retstr[i] = '\0'; + return retstr; +} + +char *generate_random_str(TALLOC_CTX *mem_ctx, size_t len) +{ + char *retstr; + const char *c_list = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+_-#.,"; + +again: + retstr = generate_random_str_list(mem_ctx, len, c_list); + if (!retstr) return NULL; + /* we need to make sure the random string passes basic quality tests or it might be rejected by windows as a password */ if (len >= 7 && !check_password_quality(retstr)) { + talloc_free(retstr); goto again; } diff --git a/source4/torture/raw/search.c b/source4/torture/raw/search.c index 56e3d4dc15..c8f21de8d8 100644 --- a/source4/torture/raw/search.c +++ b/source4/torture/raw/search.c @@ -811,15 +811,15 @@ static BOOL test_modify_search(struct smbcli_state *cli, TALLOC_CTX *mem_ctx) io2.generic.level = RAW_SEARCH_BOTH_DIRECTORY_INFO; io2.t2fnext.in.handle = io.t2ffirst.out.handle; - io2.t2fnext.in.max_count = num_files - 2; + io2.t2fnext.in.max_count = num_files - 1; io2.t2fnext.in.resume_key = 0; io2.t2fnext.in.flags = 0; - io2.t2fnext.in.last_name = result.list[result.count-1].both_directory_info.name.s; + io2.t2fnext.in.last_name = result.list[result.count-2].both_directory_info.name.s; status = smb_raw_search_next(cli->tree, mem_ctx, &io2, &result, multiple_search_callback); CHECK_STATUS(status, NT_STATUS_OK); - CHECK_VALUE(result.count, 20); + CHECK_VALUE(result.count, 21); ret &= check_result(&result, "t009-9.txt", True, FILE_ATTRIBUTE_ARCHIVE); ret &= check_result(&result, "t014-14.txt", False, 0); @@ -840,7 +840,6 @@ static BOOL test_modify_search(struct smbcli_state *cli, TALLOC_CTX *mem_ctx) result.list[i].both_directory_info.attrib); } } - exit(1); done: smb_raw_exit(cli->session); @@ -871,7 +870,7 @@ static BOOL test_sorted(struct smbcli_state *cli, TALLOC_CTX *mem_ctx) printf("Creating %d files\n", num_files); for (i=0;i<num_files;i++) { - asprintf(&fname, BASEDIR "\\%s.txt", generate_random_str(mem_ctx, 10)); + asprintf(&fname, BASEDIR "\\%s.txt", generate_random_str_list(mem_ctx, 10, "abcdefgh")); fnum = smbcli_open(cli->tree, fname, O_CREAT|O_RDWR, DENY_NONE); if (fnum == -1) { printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree)); |