Apply minor changes to tests

This commit is contained in:
ado 2023-08-05 12:05:17 +02:00
parent a7ea9e42e5
commit 2b132bc33a
5 changed files with 15 additions and 9 deletions

View File

@ -16,6 +16,7 @@
#include <cstdlib> #include <cstdlib>
#endif #endif
// TODO try from_chars for integer conversions
namespace ss { namespace ss {
//////////////// ////////////////

View File

@ -574,7 +574,6 @@ private:
: delim_{delim}, file_{fopen(file_name_.c_str(), "rb")} { : delim_{delim}, file_{fopen(file_name_.c_str(), "rb")} {
} }
// TODO test for next_line_size_
reader(reader&& other) reader(reader&& other)
: buffer_{other.buffer_}, : buffer_{other.buffer_},
next_line_buffer_{other.next_line_buffer_}, next_line_buffer_{other.next_line_buffer_},
@ -771,12 +770,13 @@ private:
const char* const second, size_t second_size) { const char* const second, size_t second_size) {
// TODO make buffer_size an argument // TODO make buffer_size an argument
next_line_buffer_size_ = first_size + second_size + 3; next_line_buffer_size_ = first_size + second_size + 3;
first = static_cast<char*>( auto new_first = static_cast<char*>(
realloc(static_cast<void*>(first), next_line_buffer_size_)); realloc(static_cast<void*>(first), next_line_buffer_size_));
if (!first) { if (!first) {
// TODO restore first in order to prevent memory leak
throw std::bad_alloc{}; throw std::bad_alloc{};
} }
first = new_first;
std::copy_n(second, second_size + 1, first + first_size); std::copy_n(second, second_size + 1, first + first_size);
first_size += second_size; first_size += second_size;
} }

View File

@ -25,7 +25,6 @@ private:
constexpr static auto throw_on_error = setup<Options...>::throw_on_error; constexpr static auto throw_on_error = setup<Options...>::throw_on_error;
constexpr static auto is_const_line = !quote::enabled && !escape::enabled; constexpr static auto is_const_line = !quote::enabled && !escape::enabled;
// TODO make error_type none if throw_on_error
using error_type = std::conditional_t<string_error, std::string, bool>; using error_type = std::conditional_t<string_error, std::string, bool>;
public: public:
@ -149,7 +148,6 @@ private:
} }
} }
// TODO rename with handle error
void handle_error_unterminated_escape() { void handle_error_unterminated_escape() {
constexpr static auto error_msg = constexpr static auto error_msg =
"unterminated escape at the end of the line"; "unterminated escape at the end of the line";

View File

@ -6,11 +6,11 @@ TEST_CASE("testing extract functions for floating point values") {
CHECK_FLOATING_CONVERSION(123.456, float); CHECK_FLOATING_CONVERSION(123.456, float);
CHECK_FLOATING_CONVERSION(123.456, double); CHECK_FLOATING_CONVERSION(123.456, double);
CHECK_FLOATING_CONVERSION(69, float); CHECK_FLOATING_CONVERSION(59, float);
CHECK_FLOATING_CONVERSION(69, double); CHECK_FLOATING_CONVERSION(59, double);
CHECK_FLOATING_CONVERSION(420., float); CHECK_FLOATING_CONVERSION(4210., float);
CHECK_FLOATING_CONVERSION(420., double); CHECK_FLOATING_CONVERSION(4210., double);
CHECK_FLOATING_CONVERSION(0.123, float); CHECK_FLOATING_CONVERSION(0.123, float);
CHECK_FLOATING_CONVERSION(0.123, double); CHECK_FLOATING_CONVERSION(0.123, double);

View File

@ -125,7 +125,14 @@ void test_various_cases() {
ss::parser<ss::string_error> p2{f.name, ","}; ss::parser<ss::string_error> p2{f.name, ","};
std::vector<X> i2; std::vector<X> i2;
auto move_rotate = [&] {
auto p1 = std::move(p);
p0 = std::move(p1);
p = std::move(p0);
};
while (!p.eof()) { while (!p.eof()) {
move_rotate();
auto a = p.template get_next<int, double, std::string>(); auto a = p.template get_next<int, double, std::string>();
i.emplace_back(ss::to_object<X>(a)); i.emplace_back(ss::to_object<X>(a));
} }