/* Unix SMB/CIFS implementation. local testing of random data routines. Copyright (C) Jelmer Vernooij 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 . */ #include "includes.h" #include "torture/torture.h" #include "torture/local/proto.h" 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("matthiéu"), "not enough high symbols"); torture_assert(tctx, !check_password_quality("abcdééàçè"), "only lower case"); torture_assert(tctx, !check_password_quality("abcdééàçè+"), "only lower and symbols"); torture_assert(tctx, check_password_quality("abcdééàçè+ढ"), "valid"); torture_assert(tctx, check_password_quality("ç+ढ"), "valid"); 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"); TALLOC_FREE(mem_ctx); 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, "check_password_quality", test_check_password_quality); torture_suite_add_simple_test(suite, "generate_random_str", test_generate_random_str); return suite; }