file_helper.cpp 1.86 KB
Newer Older
gabime's avatar
gabime committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/*
* This content is released under the MIT License as specified in https://raw.githubusercontent.com/gabime/spdlog/master/LICENSE
*/
#include "includes.h"

using namespace spdlog::details;

static const std::string target_filename = "logs/file_helper_test.txt";

static void write_with_helper(file_helper &helper, size_t howmany)
{
    log_msg msg;
    msg.formatted << std::string(howmany, '1');
    helper.write(msg);
gabime's avatar
gabime committed
15
    helper.flush();
gabime's avatar
gabime committed
16 17 18 19 20 21 22
}


TEST_CASE("file_helper_filename", "[file_helper::filename()]]")
{
    prepare_logdir();

23
    file_helper helper;
gabime's avatar
gabime committed
24 25 26 27 28 29 30 31 32
    helper.open(target_filename);
    REQUIRE(helper.filename() == target_filename);
}



TEST_CASE("file_helper_size", "[file_helper::size()]]")
{
    prepare_logdir();
gabime's avatar
gabime committed
33
    size_t expected_size = 123;
gabime's avatar
gabime committed
34
    {
35
        file_helper helper;
gabime's avatar
gabime committed
36 37
        helper.open(target_filename);
        write_with_helper(helper, expected_size);
gabime's avatar
gabime committed
38
        REQUIRE(static_cast<size_t>(helper.size()) == expected_size);
gabime's avatar
gabime committed
39 40 41 42 43 44 45 46 47
    }
    REQUIRE(get_filesize(target_filename) == expected_size);
}


TEST_CASE("file_helper_exists", "[file_helper::file_exists()]]")
{
    prepare_logdir();
    REQUIRE(!file_helper::file_exists(target_filename));
gabime's avatar
gabime committed
48
    file_helper helper;
gabime's avatar
gabime committed
49 50 51 52 53 54 55
    helper.open(target_filename);
    REQUIRE(file_helper::file_exists(target_filename));
}

TEST_CASE("file_helper_reopen", "[file_helper::reopen()]]")
{
    prepare_logdir();
56
    file_helper helper;
gabime's avatar
gabime committed
57 58 59 60 61 62 63 64 65 66
    helper.open(target_filename);
    write_with_helper(helper, 12);
    REQUIRE(helper.size() == 12);
    helper.reopen(true);
    REQUIRE(helper.size() == 0);
}

TEST_CASE("file_helper_reopen2", "[file_helper::reopen(false)]]")
{
    prepare_logdir();
67
    size_t expected_size = 14;
gabime's avatar
gabime committed
68
    file_helper helper;
gabime's avatar
gabime committed
69 70 71 72 73 74 75 76 77 78
    helper.open(target_filename);
    write_with_helper(helper, expected_size);
    REQUIRE(helper.size() == expected_size);
    helper.reopen(false);
    REQUIRE(helper.size() == expected_size);
}