diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2008-10-11 21:05:38 +0200 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2008-10-11 21:05:38 +0200 |
commit | caa4e428604780bb098060f7286c69d30c8b4007 (patch) | |
tree | be6ca91d7ba94b888343b21482bc83f8e25bcccb /source4/lib/util/tests | |
parent | 4604ca430294d8d9a522dd29705e7a7a1c969304 (diff) | |
download | samba-caa4e428604780bb098060f7286c69d30c8b4007.tar.gz samba-caa4e428604780bb098060f7286c69d30c8b4007.tar.bz2 samba-caa4e428604780bb098060f7286c69d30c8b4007.zip |
Move lib/util from source4 to top-level libutil.
Conflicts:
source4/Makefile
Diffstat (limited to 'source4/lib/util/tests')
-rw-r--r-- | source4/lib/util/tests/file.c | 97 | ||||
-rw-r--r-- | source4/lib/util/tests/genrand.c | 65 | ||||
-rw-r--r-- | source4/lib/util/tests/idtree.c | 121 | ||||
-rw-r--r-- | source4/lib/util/tests/str.c | 121 | ||||
-rw-r--r-- | source4/lib/util/tests/strlist.c | 103 |
5 files changed, 0 insertions, 507 deletions
diff --git a/source4/lib/util/tests/file.c b/source4/lib/util/tests/file.c deleted file mode 100644 index 3377e833dc..0000000000 --- a/source4/lib/util/tests/file.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - Unix SMB/CIFS implementation. - - util_file testing - - Copyright (C) Jelmer Vernooij 2005 - - 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 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - 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, see <http://www.gnu.org/licenses/>. -*/ - -#include "includes.h" -#include "system/filesys.h" -#include "torture/torture.h" - -#define TEST_FILENAME "utilfile.test" -#define TEST_LINE1 "This is list line 1..." -#define TEST_LINE2 ".. and this is line 2" -#define TEST_LINE3 "and end of the file" - -#define TEST_DATA TEST_LINE1 "\n" TEST_LINE2 "\n" TEST_LINE3 - -static bool test_file_load_save(struct torture_context *tctx) -{ - size_t len; - char *data; - TALLOC_CTX *mem_ctx = tctx; - - torture_assert(tctx, file_save(TEST_FILENAME, TEST_DATA, strlen(TEST_DATA)), - "saving file"); - - torture_assert_file_contains_text(tctx, TEST_FILENAME, TEST_DATA, - "file contents"); - - data = file_load(TEST_FILENAME, &len, mem_ctx); - torture_assert(tctx, data, "loading file"); - - torture_assert_int_equal(tctx, len, strlen(TEST_DATA), "Length"); - - torture_assert_mem_equal(tctx, data, TEST_DATA, len, "Contents"); - - unlink(TEST_FILENAME); - return true; -} - - -static bool test_afdgets(struct torture_context *tctx) -{ - int fd; - char *line; - TALLOC_CTX *mem_ctx = tctx; - - torture_assert(tctx, file_save(TEST_FILENAME, (const void *)TEST_DATA, - strlen(TEST_DATA)), - "saving file"); - - fd = open(TEST_FILENAME, O_RDONLY); - - torture_assert(tctx, fd != -1, "opening file"); - - line = afdgets(fd, mem_ctx, 8); - torture_assert(tctx, strcmp(line, TEST_LINE1) == 0, "line 1 mismatch"); - - line = afdgets(fd, mem_ctx, 8); - torture_assert(tctx, strcmp(line, TEST_LINE2) == 0, "line 2 mismatch"); - - line = afdgets(fd, mem_ctx, 8); - torture_assert(tctx, strcmp(line, TEST_LINE3) == 0, "line 3 mismatch"); - - close(fd); - - unlink(TEST_FILENAME); - return true; -} - -struct torture_suite *torture_local_util_file(TALLOC_CTX *mem_ctx) -{ - struct torture_suite *suite = torture_suite_create(mem_ctx, "FILE"); - - torture_suite_add_simple_test(suite, "file_load_save", - test_file_load_save); - - torture_suite_add_simple_test(suite, "afdgets", - test_afdgets); - - return suite; -} diff --git a/source4/lib/util/tests/genrand.c b/source4/lib/util/tests/genrand.c deleted file mode 100644 index 5fe229c089..0000000000 --- a/source4/lib/util/tests/genrand.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - Unix SMB/CIFS implementation. - - local testing of random data routines. - - Copyright (C) Jelmer Vernooij <jelmer@samba.org> - - 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 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - 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, see <http://www.gnu.org/licenses/>. -*/ - -#include "includes.h" -#include "torture/torture.h" - -static void dummy_reseed(void *userdata, int *d) -{ - *d = 42; -} - -static bool test_reseed_callback(struct torture_context *tctx) -{ - set_rand_reseed_callback(dummy_reseed, NULL); - return true; -} - -static bool test_check_password_quality(struct torture_context *tctx) -{ - torture_assert(tctx, !check_password_quality(""), "empty password"); - torture_assert(tctx, !check_password_quality("a"), "one char password"); - torture_assert(tctx, !check_password_quality("aaaaaaaaaaaa"), "same char password"); - torture_assert(tctx, !check_password_quality("BLA"), "multiple upcases password"); - torture_assert(tctx, !check_password_quality("123"), "digits only"); - torture_assert(tctx, check_password_quality("A2e"), "valid"); - torture_assert(tctx, check_password_quality("BA2eLi443"), "valid"); - return true; -} - -static bool test_generate_random_str(struct torture_context *tctx) -{ - TALLOC_CTX *mem_ctx = talloc_init(__FUNCTION__); - char *r = generate_random_str(mem_ctx, 10); - torture_assert_int_equal(tctx, strlen(r), 10, "right length generated"); - r = generate_random_str(mem_ctx, 5); - torture_assert_int_equal(tctx, strlen(r), 5, "right length generated"); - return true; -} - -struct torture_suite *torture_local_genrand(TALLOC_CTX *mem_ctx) -{ - struct torture_suite *suite = torture_suite_create(mem_ctx, "GENRAND"); - torture_suite_add_simple_test(suite, "reseed_callback", test_reseed_callback); - torture_suite_add_simple_test(suite, "check_password_quality", test_check_password_quality); - torture_suite_add_simple_test(suite, "generate_random_str", test_generate_random_str); - return suite; -} diff --git a/source4/lib/util/tests/idtree.c b/source4/lib/util/tests/idtree.c deleted file mode 100644 index d89fb8c489..0000000000 --- a/source4/lib/util/tests/idtree.c +++ /dev/null @@ -1,121 +0,0 @@ -/* - Unix SMB/CIFS implementation. - - local testing of idtree routines. - - Copyright (C) Andrew Tridgell 2004 - - 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 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - 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, see <http://www.gnu.org/licenses/>. -*/ - -#include "includes.h" -#include "torture/torture.h" - -static bool torture_local_idtree_simple(struct torture_context *tctx) -{ - struct idr_context *idr; - int i, ret; - int *ids; - int *present; - extern int torture_numops; - int n = torture_numops; - TALLOC_CTX *mem_ctx = tctx; - - idr = idr_init(mem_ctx); - - ids = talloc_zero_array(mem_ctx, int, n); - present = talloc_zero_array(mem_ctx, int, n); - - for (i=0;i<n;i++) { - ids[i] = -1; - } - - for (i=0;i<n;i++) { - int ii = random() % n; - void *p = idr_find(idr, ids[ii]); - if (present[ii]) { - if (p != &ids[ii]) { - torture_fail(tctx, talloc_asprintf(tctx, - "wrong ptr at %d - %p should be %p", - ii, p, &ids[ii])); - } - if (random() % 7 == 0) { - if (idr_remove(idr, ids[ii]) != 0) { - torture_fail(tctx, talloc_asprintf(tctx, - "remove failed at %d (id=%d)", - i, ids[ii])); - } - present[ii] = 0; - ids[ii] = -1; - } - } else { - if (p != NULL) { - torture_fail(tctx, - talloc_asprintf(tctx, - "non-present at %d gave %p (would be %d)", - ii, p, - (int)((((char *)p) - (char *)(&ids[0])) / sizeof(int)))); - } - if (random() % 5) { - ids[ii] = idr_get_new(idr, &ids[ii], n); - if (ids[ii] < 0) { - torture_fail(tctx, talloc_asprintf(tctx, - "alloc failure at %d (ret=%d)", - ii, ids[ii])); - } else { - present[ii] = 1; - } - } - } - } - - torture_comment(tctx, "done %d random ops\n", i); - - for (i=0;i<n;i++) { - if (present[i]) { - if (idr_remove(idr, ids[i]) != 0) { - torture_fail(tctx, talloc_asprintf(tctx, - "delete failed on cleanup at %d (id=%d)", - i, ids[i])); - } - } - } - - /* now test some limits */ - for (i=0;i<25000;i++) { - ret = idr_get_new_above(idr, &ids[0], random() % 25000, 0x10000-3); - torture_assert(tctx, ret != -1, "idr_get_new_above failed"); - } - - ret = idr_get_new_above(idr, &ids[0], 0x10000-2, 0x10000); - torture_assert_int_equal(tctx, ret, 0x10000-2, "idr_get_new_above failed"); - ret = idr_get_new_above(idr, &ids[0], 0x10000-1, 0x10000); - torture_assert_int_equal(tctx, ret, 0x10000-1, "idr_get_new_above failed"); - ret = idr_get_new_above(idr, &ids[0], 0x10000, 0x10000); - torture_assert_int_equal(tctx, ret, 0x10000, "idr_get_new_above failed"); - ret = idr_get_new_above(idr, &ids[0], 0x10000+1, 0x10000); - torture_assert_int_equal(tctx, ret, -1, "idr_get_new_above succeeded above limit"); - ret = idr_get_new_above(idr, &ids[0], 0x10000+2, 0x10000); - torture_assert_int_equal(tctx, ret, -1, "idr_get_new_above succeeded above limit"); - - torture_comment(tctx, "cleaned up\n"); - return true; -} - -struct torture_suite *torture_local_idtree(TALLOC_CTX *mem_ctx) -{ - struct torture_suite *suite = torture_suite_create(mem_ctx, "IDTREE"); - torture_suite_add_simple_test(suite, "idtree", torture_local_idtree_simple); - return suite; -} diff --git a/source4/lib/util/tests/str.c b/source4/lib/util/tests/str.c deleted file mode 100644 index 3bd6a02fdc..0000000000 --- a/source4/lib/util/tests/str.c +++ /dev/null @@ -1,121 +0,0 @@ -/* - Unix SMB/CIFS implementation. - - util_str testing - - Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007 - - 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 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - 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, see <http://www.gnu.org/licenses/>. -*/ - -#include "includes.h" -#include "torture/torture.h" - -static bool test_string_sub_simple(struct torture_context *tctx) -{ - char tmp[100]; - safe_strcpy(tmp, "foobar", sizeof(tmp)); - string_sub(tmp, "foo", "bar", sizeof(tmp)); - torture_assert_str_equal(tctx, tmp, "barbar", "invalid sub"); - return true; -} - -static bool test_string_sub_multiple(struct torture_context *tctx) -{ - char tmp[100]; - safe_strcpy(tmp, "fooblafoo", sizeof(tmp)); - string_sub(tmp, "foo", "bar", sizeof(tmp)); - torture_assert_str_equal(tctx, tmp, "barblabar", "invalid sub"); - return true; -} - -static bool test_string_sub_longer(struct torture_context *tctx) -{ - char tmp[100]; - safe_strcpy(tmp, "foobla", sizeof(tmp)); - string_sub(tmp, "foo", "blie", sizeof(tmp)); - torture_assert_str_equal(tctx, tmp, "bliebla", "invalid sub"); - return true; -} - -static bool test_string_sub_shorter(struct torture_context *tctx) -{ - char tmp[100]; - safe_strcpy(tmp, "foobla", sizeof(tmp)); - string_sub(tmp, "foo", "bl", sizeof(tmp)); - torture_assert_str_equal(tctx, tmp, "blbla", "invalid sub"); - return true; -} - -static bool test_string_sub_special_char(struct torture_context *tctx) -{ - char tmp[100]; - safe_strcpy(tmp, "foobla", sizeof(tmp)); - string_sub(tmp, "foo", "%b;l", sizeof(tmp)); - torture_assert_str_equal(tctx, tmp, "_b_lbla", "invalid sub"); - return true; -} - -static bool test_string_sub_talloc_simple(struct torture_context *tctx) -{ - char *t; - - t = string_sub_talloc(tctx, "foobla", "foo", "bl"); - - torture_assert_str_equal(tctx, t, "blbla", "invalid sub"); - - return true; -} - -static bool test_string_sub_talloc_multiple(struct torture_context *tctx) -{ - char *t; - - t = string_sub_talloc(tctx, "fooblafoo", "foo", "aapnootmies"); - - torture_assert_str_equal(tctx, t, "aapnootmiesblaaapnootmies", - "invalid sub"); - - return true; -} - - - -struct torture_suite *torture_local_util_str(TALLOC_CTX *mem_ctx) -{ - struct torture_suite *suite = torture_suite_create(mem_ctx, "STR"); - - torture_suite_add_simple_test(suite, "string_sub_simple", - test_string_sub_simple); - - torture_suite_add_simple_test(suite, "string_sub_multiple", - test_string_sub_multiple); - - torture_suite_add_simple_test(suite, "string_sub_shorter", - test_string_sub_shorter); - - torture_suite_add_simple_test(suite, "string_sub_longer", - test_string_sub_longer); - - torture_suite_add_simple_test(suite, "string_sub_special_chars", - test_string_sub_special_char); - - torture_suite_add_simple_test(suite, "string_sub_talloc_simple", - test_string_sub_talloc_simple); - - torture_suite_add_simple_test(suite, "string_sub_talloc_multiple", - test_string_sub_talloc_multiple); - - return suite; -} diff --git a/source4/lib/util/tests/strlist.c b/source4/lib/util/tests/strlist.c deleted file mode 100644 index 9af26f9e71..0000000000 --- a/source4/lib/util/tests/strlist.c +++ /dev/null @@ -1,103 +0,0 @@ -/* - Unix SMB/CIFS implementation. - - util_strlist testing - - Copyright (C) Jelmer Vernooij 2005 - - 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 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - 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, see <http://www.gnu.org/licenses/>. -*/ - -#include "includes.h" -#include "torture/torture.h" - -static const char *test_lists_shell_strings[] = { - "", - "foo", - "foo bar", - "foo bar \"bla \"", - "foo \"\" bla", - "bla \"\"\"\" blie", - NULL -}; - -static bool test_lists_shell(struct torture_context *tctx, - const void *test_data) -{ - const char *data = (const char *)test_data; - const char **ret1, **ret2, *tmp; - bool match = true; - TALLOC_CTX *mem_ctx = tctx; - - ret1 = str_list_make_shell(mem_ctx, data, " "); - tmp = str_list_join_shell(mem_ctx, ret1, ' '); - ret2 = str_list_make_shell(mem_ctx, tmp, " "); - - if ((ret1 == NULL || ret2 == NULL) && ret2 != ret1) { - match = false; - } else { - int j; - for (j = 0; ret1[j] && ret2[j]; j++) { - if (strcmp(ret1[j], ret2[j]) != 0) { - match = false; - break; - } - } - - if (ret1[j] || ret2[j]) - match = false; - } - - torture_assert(tctx, match, talloc_asprintf(tctx, - "str_list_{make,join}_shell: Error double parsing, first run:\n%s\nSecond run: \n%s", data, tmp)); - return true; -} - -static bool test_list_copy(struct torture_context *tctx) -{ - const char **result; - const char *list[] = { "foo", "bar", NULL }; - const char *empty_list[] = { NULL }; - const char **null_list = NULL; - - result = str_list_copy(tctx, list); - torture_assert_int_equal(tctx, str_list_length(result), 2, "list length"); - torture_assert_str_equal(tctx, result[0], "foo", "element 0"); - torture_assert_str_equal(tctx, result[1], "bar", "element 1"); - torture_assert_str_equal(tctx, result[2], NULL, "element 2"); - - result = str_list_copy(tctx, empty_list); - torture_assert_int_equal(tctx, str_list_length(result), 0, "list length"); - torture_assert_str_equal(tctx, result[0], NULL, "element 0"); - - result = str_list_copy(tctx, null_list); - torture_assert(tctx, result == NULL, "result NULL"); - - return true; -} - -struct torture_suite *torture_local_util_strlist(TALLOC_CTX *mem_ctx) -{ - struct torture_suite *suite = torture_suite_create(mem_ctx, "STRLIST"); - int i; - - for (i = 0; test_lists_shell_strings[i]; i++) { - torture_suite_add_simple_tcase_const(suite, "lists_shell", - test_lists_shell, &test_lists_shell_strings[i]); - } - - torture_suite_add_simple_test(suite, "list_copy", test_list_copy); - - return suite; -} |