GCC Code Coverage Report


include/
File: include/RedirectCout.hpp
Date: 2025-06-29 22:48:06
Lines:
6/6
100.0%
Functions:
4/4
100.0%
Branches:
3/6
50.0%

Line Branch Exec Source
1 #pragma once
2
3 #include <iostream>
4 #include <sstream>
5 #include <streambuf>
6 #include <string>
7
8 namespace utils {
9 // RedirectCout is a utility class that redirects std::cout to a stringstream.
10 class RedirectCout {
11 public:
12 8 RedirectCout() : oldBuffer_(std::cout.rdbuf()) {
13
1/2
✓ Branch 2 taken 8 times.
✗ Branch 3 not taken.
8 std::cout.rdbuf(buffer_.rdbuf());
14 8 }
15 8 ~RedirectCout() { std::cout.rdbuf(oldBuffer_); }
16 RedirectCout(const RedirectCout&) = delete; // Disable copy constructor
17 RedirectCout& operator=(const RedirectCout&) =
18 delete; // Disable copy assignment
19 RedirectCout(RedirectCout&&) = delete; // Disable move constructor
20 RedirectCout& operator=(RedirectCout&&) = delete; // Disable move assignment
21
22 11 std::string str() const { return buffer_.str(); }
23
2/4
✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
27 void clear() { buffer_.str(""); }
24
25 private:
26 std::streambuf* oldBuffer_;
27 std::stringstream buffer_;
28 };
29 } // namespace utils
30