• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

devmarkusb / util / 23619280804

26 Mar 2026 09:37PM UTC coverage: 92.249% (-0.04%) from 92.29%
23619280804

push

github

MarkusB
Refactor `throw_error` tests to reuse error message retrieval logic.

10 of 10 new or added lines in 1 file covered. (100.0%)

3 existing lines in 1 file now uncovered.

5879 of 6373 relevant lines covered (92.25%)

136.84 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

92.31
/src/basiccodesupport/file.test.cpp
1
#include "ul/basiccodesupport/file.hpp" // NOLINT
2
#include "gtest/gtest.h"
3
#include <fstream>
4
#include <sstream>
5

6
TEST(FileTest, fstream_failed) {
4✔
7
    std::string err_detail;
1✔
8

9
    // Test with valid stream
10
    std::stringstream valid_stream;
1✔
11
    valid_stream << "test data";
1✔
12
    EXPECT_FALSE(ul::file::fstream_failed(err_detail, valid_stream));
1✔
13
    EXPECT_TRUE(err_detail.empty());
1✔
14

15
    // Test with EOF stream
16
    std::stringstream eof_stream;
2✔
17
    eof_stream.setstate(std::ios::eofbit);
1✔
18
    EXPECT_FALSE(ul::file::fstream_failed(err_detail, eof_stream));
1✔
19
    EXPECT_EQ(err_detail, "eof");
1✔
20

21
    // Test with bad stream
22
    std::stringstream bad_stream;
2✔
23
    bad_stream.setstate(std::ios::badbit);
1✔
24
    EXPECT_TRUE(ul::file::fstream_failed(err_detail, bad_stream));
1✔
25
    EXPECT_EQ(err_detail, "bad");
1✔
26

27
    // Test with failed stream
28
    std::stringstream fail_stream;
2✔
29
    fail_stream.setstate(std::ios::failbit);
1✔
30
    EXPECT_TRUE(ul::file::fstream_failed(err_detail, fail_stream));
1✔
31
    EXPECT_EQ(err_detail, "fail");
1✔
32
}
1✔
33

34
TEST(FileTest, throw_error) {
4✔
35
    const auto get_error_message = [](ul::file::Operation op) -> std::string {
36
        try {
37
            ul::file::throw_error("test.txt", op, "test error");
38
        } catch (const std::runtime_error& e) {
39
            return e.what();
40
        } catch (...) {
41
            ADD_FAILURE() << "Expected std::runtime_error";
42
        }
43
        return {};
44
    };
45

46
    // Test save operation error
47
    const auto save_error_msg = get_error_message(ul::file::Operation::save);
1✔
48
    EXPECT_FALSE(save_error_msg.empty());
1✔
49
    EXPECT_TRUE(save_error_msg.find("test.txt") != std::string::npos);
1✔
50
    EXPECT_TRUE(save_error_msg.find("saved") != std::string::npos);
1✔
51
    EXPECT_TRUE(save_error_msg.find("test error") != std::string::npos);
1✔
52

53
    // Test load operation error
54
    const auto load_error_msg = get_error_message(ul::file::Operation::load);
1✔
55
    EXPECT_FALSE(load_error_msg.empty());
1✔
56
    EXPECT_TRUE(load_error_msg.find("test.txt") != std::string::npos);
1✔
57
    EXPECT_TRUE(load_error_msg.find("loaded") != std::string::npos);
1✔
58
    EXPECT_TRUE(load_error_msg.find("test error") != std::string::npos);
1✔
59
}
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc