Line data Source code
1 : // Copyright (c) 2019-2023 Made to Order Software Corp. All Rights Reserved 2 : // 3 : // https://snapwebsites.org/project/safepasswords 4 : // contact@m2osw.com 5 : // 6 : // This program is free software: you can redistribute it and/or modify 7 : // it under the terms of the GNU General Public License as published by 8 : // the Free Software Foundation, either version 3 of the License, or 9 : // (at your option) any later version. 10 : // 11 : // This program is distributed in the hope that it will be useful, 12 : // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 : // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 : // GNU General Public License for more details. 15 : // 16 : // You should have received a copy of the GNU General Public License 17 : // along with this program. If not, see <https://www.gnu.org/licenses/>. 18 : 19 : // self 20 : // 21 : #include "catch_main.h" 22 : 23 : 24 : // safepasswords 25 : // 26 : #include <safepasswords/utils.h> 27 : 28 : 29 : // libutf8 30 : // 31 : #include <libutf8/libutf8.h> 32 : 33 : 34 : // C++ 35 : // 36 : #include <set> 37 : 38 : 39 : // C 40 : // 41 : #include <malloc.h> 42 : 43 : 44 : // last include 45 : // 46 : #include <snapdev/poison.h> 47 : 48 : 49 : 50 1 : CATCH_TEST_CASE("utils", "[utils][string]") 51 : { 52 1 : CATCH_START_SECTION("utils: clear string") 53 : { 54 11 : for(int count(0); count < 10; ++count) 55 : { 56 10 : std::string s; 57 10 : std::size_t const length(rand() % 200 + 1); 58 922 : for(std::size_t l(0); l < length; ++l) 59 : { 60 912 : char32_t const wc(SNAP_CATCH2_NAMESPACE::random_char(SNAP_CATCH2_NAMESPACE::character_t::CHARACTER_UNICODE)); 61 912 : s += libutf8::to_u8string(wc); 62 : } 63 10 : CATCH_REQUIRE_FALSE(s.empty()); 64 10 : safepasswords::clear_string(s); 65 10 : CATCH_REQUIRE(s.empty()); 66 10 : } 67 : } 68 1 : CATCH_END_SECTION() 69 1 : } 70 : 71 : 72 : 73 : // vim: ts=4 sw=4 et