Skip to content

Commit b728240

Browse files
committed
Cleanup base-test
1 parent 0788527 commit b728240

File tree

1 file changed

+80
-79
lines changed

1 file changed

+80
-79
lines changed

test/base-test.cc

Lines changed: 80 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@
1111

1212
#include "fmt/base.h"
1313

14-
#include <climits> // INT_MAX
15-
#include <cstring> // std::strlen
14+
#include <limits.h> // INT_MAX
15+
#include <string.h> // strlen
16+
1617
#include <functional> // std::equal_to
1718
#include <iterator> // std::back_insert_iterator, std::distance
1819
#include <limits> // std::numeric_limits
@@ -21,15 +22,14 @@
2122

2223
#include "gmock/gmock.h"
2324

24-
using fmt::string_view;
2525
using fmt::detail::buffer;
2626

2727
using testing::_;
2828
using testing::Invoke;
2929
using testing::Return;
3030

3131
#ifdef FMT_FORMAT_H_
32-
# error core-test includes format.h
32+
# error base-test includes format.h
3333
#endif
3434

3535
fmt::appender copy(fmt::string_view s, fmt::appender out) {
@@ -38,22 +38,22 @@ fmt::appender copy(fmt::string_view s, fmt::appender out) {
3838
}
3939

4040
TEST(string_view_test, value_type) {
41-
static_assert(std::is_same<string_view::value_type, char>::value, "");
41+
static_assert(std::is_same<fmt::string_view::value_type, char>::value, "");
4242
}
4343

4444
TEST(string_view_test, ctor) {
45-
EXPECT_STREQ("abc", fmt::string_view("abc").data());
46-
EXPECT_EQ(3u, fmt::string_view("abc").size());
45+
EXPECT_STREQ(fmt::string_view("abc").data(), "abc");
46+
EXPECT_EQ(fmt::string_view("abc").size(), 3u);
4747

48-
EXPECT_STREQ("defg", fmt::string_view(std::string("defg")).data());
49-
EXPECT_EQ(4u, fmt::string_view(std::string("defg")).size());
48+
EXPECT_STREQ(fmt::string_view(std::string("defg")).data(), "defg");
49+
EXPECT_EQ(fmt::string_view(std::string("defg")).size(), 4u);
5050
}
5151

5252
TEST(string_view_test, length) {
5353
// Test that string_view::size() returns string length, not buffer size.
5454
char str[100] = "some string";
55-
EXPECT_EQ(std::strlen(str), string_view(str).size());
56-
EXPECT_LT(std::strlen(str), sizeof(str));
55+
EXPECT_EQ(fmt::string_view(str).size(), strlen(str));
56+
EXPECT_LT(strlen(str), sizeof(str));
5757
}
5858

5959
// Check string_view's comparison operator.
@@ -62,13 +62,16 @@ template <template <typename> class Op> void check_op() {
6262
size_t num_inputs = sizeof(inputs) / sizeof(*inputs);
6363
for (size_t i = 0; i < num_inputs; ++i) {
6464
for (size_t j = 0; j < num_inputs; ++j) {
65-
string_view lhs(inputs[i]), rhs(inputs[j]);
66-
EXPECT_EQ(Op<int>()(lhs.compare(rhs), 0), Op<string_view>()(lhs, rhs));
65+
fmt::string_view lhs(inputs[i]), rhs(inputs[j]);
66+
EXPECT_EQ(Op<int>()(lhs.compare(rhs), 0),
67+
Op<fmt::string_view>()(lhs, rhs));
6768
}
6869
}
6970
}
7071

7172
TEST(string_view_test, compare) {
73+
using fmt::string_view;
74+
7275
EXPECT_EQ(string_view("foo").compare(string_view("foo")), 0);
7376
EXPECT_GT(string_view("fop").compare(string_view("foo")), 0);
7477
EXPECT_LT(string_view("foo").compare(string_view("fop")), 0);
@@ -174,51 +177,51 @@ template <typename T> struct mock_buffer final : buffer<T> {
174177
TEST(buffer_test, ctor) {
175178
{
176179
mock_buffer<int> buffer;
177-
EXPECT_EQ(nullptr, buffer.data());
178-
EXPECT_EQ(static_cast<size_t>(0), buffer.size());
179-
EXPECT_EQ(static_cast<size_t>(0), buffer.capacity());
180+
EXPECT_EQ(buffer.data(), nullptr);
181+
EXPECT_EQ(buffer.size(), 0u);
182+
EXPECT_EQ(buffer.capacity(), 0u);
180183
}
181184
{
182-
int dummy;
183-
mock_buffer<int> buffer(&dummy);
184-
EXPECT_EQ(&dummy, &buffer[0]);
185-
EXPECT_EQ(static_cast<size_t>(0), buffer.size());
186-
EXPECT_EQ(static_cast<size_t>(0), buffer.capacity());
185+
int data;
186+
mock_buffer<int> buffer(&data);
187+
EXPECT_EQ(&buffer[0], &data);
188+
EXPECT_EQ(buffer.size(), 0u);
189+
EXPECT_EQ(buffer.capacity(), 0u);
187190
}
188191
{
189-
int dummy;
192+
int data;
190193
size_t capacity = std::numeric_limits<size_t>::max();
191-
mock_buffer<int> buffer(&dummy, capacity);
192-
EXPECT_EQ(&dummy, &buffer[0]);
193-
EXPECT_EQ(static_cast<size_t>(0), buffer.size());
194-
EXPECT_EQ(capacity, buffer.capacity());
194+
mock_buffer<int> buffer(&data, capacity);
195+
EXPECT_EQ(&buffer[0], &data);
196+
EXPECT_EQ(buffer.size(), 0u);
197+
EXPECT_EQ(buffer.capacity(), capacity);
195198
}
196199
}
197200

198201
TEST(buffer_test, access) {
199202
char data[10];
200203
mock_buffer<char> buffer(data, sizeof(data));
201204
buffer[0] = 11;
202-
EXPECT_EQ(11, buffer[0]);
205+
EXPECT_EQ(buffer[0], 11);
203206
buffer[3] = 42;
204-
EXPECT_EQ(42, *(&buffer[0] + 3));
207+
EXPECT_EQ(*(&buffer[0] + 3), 42);
205208
const fmt::detail::buffer<char>& const_buffer = buffer;
206-
EXPECT_EQ(42, const_buffer[3]);
209+
EXPECT_EQ(const_buffer[3], 42);
207210
}
208211

209212
TEST(buffer_test, try_resize) {
210213
char data[123];
211214
mock_buffer<char> buffer(data, sizeof(data));
212215
buffer[10] = 42;
213-
EXPECT_EQ(42, buffer[10]);
216+
EXPECT_EQ(buffer[10], 42);
214217
buffer.try_resize(20);
215-
EXPECT_EQ(20u, buffer.size());
216-
EXPECT_EQ(123u, buffer.capacity());
217-
EXPECT_EQ(42, buffer[10]);
218+
EXPECT_EQ(buffer.size(), 20u);
219+
EXPECT_EQ(buffer.capacity(), 123u);
220+
EXPECT_EQ(buffer[10], 42);
218221
buffer.try_resize(5);
219-
EXPECT_EQ(5u, buffer.size());
220-
EXPECT_EQ(123u, buffer.capacity());
221-
EXPECT_EQ(42, buffer[10]);
222+
EXPECT_EQ(buffer.size(), 5u);
223+
EXPECT_EQ(buffer.capacity(), 123u);
224+
EXPECT_EQ(buffer[10], 42);
222225
// Check if try_resize calls grow.
223226
EXPECT_CALL(buffer, do_grow(124));
224227
buffer.try_resize(124);
@@ -240,23 +243,23 @@ TEST(buffer_test, clear) {
240243
EXPECT_CALL(buffer, do_grow(20));
241244
buffer.try_resize(20);
242245
buffer.try_resize(0);
243-
EXPECT_EQ(static_cast<size_t>(0), buffer.size());
244-
EXPECT_EQ(20u, buffer.capacity());
246+
EXPECT_EQ(buffer.size(), 0u);
247+
EXPECT_EQ(buffer.capacity(), 20u);
245248
}
246249

247250
TEST(buffer_test, append) {
248251
char data[15];
249252
mock_buffer<char> buffer(data, 10);
250253
auto test = "test";
251254
buffer.append(test, test + 5);
252-
EXPECT_STREQ(test, &buffer[0]);
253-
EXPECT_EQ(5u, buffer.size());
255+
EXPECT_STREQ(&buffer[0], test);
256+
EXPECT_EQ(buffer.size(), 5u);
254257
buffer.try_resize(10);
255258
EXPECT_CALL(buffer, do_grow(12));
256259
buffer.append(test, test + 2);
257-
EXPECT_EQ('t', buffer[10]);
258-
EXPECT_EQ('e', buffer[11]);
259-
EXPECT_EQ(12u, buffer.size());
260+
EXPECT_EQ(buffer[10], 't');
261+
EXPECT_EQ(buffer[11], 'e');
262+
EXPECT_EQ(buffer.size(), 12u);
260263
}
261264

262265
TEST(buffer_test, append_partial) {
@@ -444,7 +447,7 @@ struct check_custom {
444447
auto parse_ctx = fmt::format_parse_context("");
445448
auto ctx = fmt::format_context(fmt::appender(buffer), fmt::format_args());
446449
h.format(parse_ctx, ctx);
447-
EXPECT_EQ("test", std::string(buffer.data, buffer.size()));
450+
EXPECT_EQ(std::string(buffer.data, buffer.size()), "test");
448451
return test_result();
449452
}
450453
};
@@ -470,14 +473,14 @@ enum class arg_id_result { none, index, name };
470473
struct test_arg_id_handler {
471474
arg_id_result res = arg_id_result::none;
472475
int index = 0;
473-
string_view name;
476+
fmt::string_view name;
474477

475478
constexpr void on_index(int i) {
476479
res = arg_id_result::index;
477480
index = i;
478481
}
479482

480-
constexpr void on_name(string_view n) {
483+
constexpr void on_name(fmt::string_view n) {
481484
res = arg_id_result::name;
482485
name = n;
483486
}
@@ -700,46 +703,46 @@ TEST(base_test, format_to) {
700703
TEST(base_test, format_to_array) {
701704
char buffer[4];
702705
auto result = fmt::format_to(buffer, "{}", 12345);
703-
EXPECT_EQ(4, std::distance(&buffer[0], result.out));
706+
EXPECT_EQ(std::distance(&buffer[0], result.out), 4);
704707
EXPECT_TRUE(result.truncated);
705-
EXPECT_EQ(buffer + 4, result.out);
706-
EXPECT_EQ("1234", fmt::string_view(buffer, 4));
708+
EXPECT_EQ(result.out, buffer + 4);
709+
EXPECT_EQ(fmt::string_view(buffer, 4), "1234");
707710

708711
char* out = nullptr;
709712
EXPECT_THROW(out = result, std::runtime_error);
710713
(void)out;
711714

712715
result = fmt::format_to(buffer, "{:s}", "foobar");
713-
EXPECT_EQ(4, std::distance(&buffer[0], result.out));
716+
EXPECT_EQ(std::distance(&buffer[0], result.out), 4);
714717
EXPECT_TRUE(result.truncated);
715-
EXPECT_EQ(buffer + 4, result.out);
716-
EXPECT_EQ("foob", fmt::string_view(buffer, 4));
718+
EXPECT_EQ(result.out, buffer + 4);
719+
EXPECT_EQ(fmt::string_view(buffer, 4), "foob");
717720

718721
buffer[0] = 'x';
719722
buffer[1] = 'x';
720723
buffer[2] = 'x';
721724
buffer[3] = 'x';
722725
result = fmt::format_to(buffer, "{}", 'A');
723-
EXPECT_EQ(1, std::distance(&buffer[0], result.out));
726+
EXPECT_EQ(std::distance(&buffer[0], result.out), 1);
724727
EXPECT_FALSE(result.truncated);
725-
EXPECT_EQ(buffer + 1, result.out);
726-
EXPECT_EQ("Axxx", fmt::string_view(buffer, 4));
728+
EXPECT_EQ(result.out, buffer + 1);
729+
EXPECT_EQ(fmt::string_view(buffer, 4), "Axxx");
727730

728731
result = fmt::format_to(buffer, "{}{} ", 'B', 'C');
729-
EXPECT_EQ(3, std::distance(&buffer[0], result.out));
732+
EXPECT_EQ(std::distance(&buffer[0], result.out), 3);
730733
EXPECT_FALSE(result.truncated);
731-
EXPECT_EQ(buffer + 3, result.out);
732-
EXPECT_EQ("BC x", fmt::string_view(buffer, 4));
734+
EXPECT_EQ(result.out, buffer + 3);
735+
EXPECT_EQ(fmt::string_view(buffer, 4), "BC x");
733736

734737
result = fmt::format_to(buffer, "{}", "ABCDE");
735-
EXPECT_EQ(4, std::distance(&buffer[0], result.out));
738+
EXPECT_EQ(std::distance(&buffer[0], result.out), 4);
736739
EXPECT_TRUE(result.truncated);
737-
EXPECT_EQ("ABCD", fmt::string_view(buffer, 4));
740+
EXPECT_EQ(fmt::string_view(buffer, 4), "ABCD");
738741

739742
result = fmt::format_to(buffer, "{}", std::string(1000, '*').c_str());
740-
EXPECT_EQ(4, std::distance(&buffer[0], result.out));
743+
EXPECT_EQ(std::distance(&buffer[0], result.out), 4);
741744
EXPECT_TRUE(result.truncated);
742-
EXPECT_EQ("****", fmt::string_view(buffer, 4));
745+
EXPECT_EQ(fmt::string_view(buffer, 4), "****");
743746
}
744747

745748
// Test that check is not found by ADL.
@@ -828,7 +831,7 @@ TEST(base_test, throw_in_buffer_dtor) {
828831
}
829832
}
830833

831-
struct its_a_trap {
834+
struct convertible_to_any_type_with_member_x {
832835
template <typename T> operator T() const {
833836
auto v = T();
834837
v.x = 42;
@@ -837,12 +840,12 @@ struct its_a_trap {
837840
};
838841

839842
FMT_BEGIN_NAMESPACE
840-
template <> struct formatter<its_a_trap> {
843+
template <> struct formatter<convertible_to_any_type_with_member_x> {
841844
FMT_CONSTEXPR auto parse(format_parse_context& ctx) -> decltype(ctx.begin()) {
842845
return ctx.begin();
843846
}
844847

845-
auto format(its_a_trap, format_context& ctx) const
848+
auto format(convertible_to_any_type_with_member_x, format_context& ctx) const
846849
-> decltype(ctx.out()) const {
847850
auto out = ctx.out();
848851
*out++ = 'x';
@@ -851,9 +854,10 @@ template <> struct formatter<its_a_trap> {
851854
};
852855
FMT_END_NAMESPACE
853856

854-
TEST(base_test, trappy_conversion) {
857+
TEST(base_test, promiscuous_conversions) {
855858
auto s = std::string();
856-
fmt::format_to(std::back_inserter(s), "{}", its_a_trap());
859+
fmt::format_to(std::back_inserter(s), "{}",
860+
convertible_to_any_type_with_member_x());
857861
EXPECT_EQ(s, "x");
858862
}
859863

@@ -878,25 +882,22 @@ TEST(base_test, format_to_custom_container) {
878882
fmt::format_to(std::back_inserter(c), "");
879883
}
880884

881-
struct nondeterministic_format_string {
882-
mutable int i = 0;
883-
FMT_CONSTEXPR operator string_view() const {
884-
return string_view("{}", i++ != 0 ? 2 : 0);
885-
}
886-
};
887-
888885
TEST(base_test, no_repeated_format_string_conversions) {
886+
struct nondeterministic_format_string {
887+
mutable int i = 0;
888+
FMT_CONSTEXPR operator fmt::string_view() const {
889+
return {"{}", i++ != 0 ? 2 : 0};
890+
}
891+
};
892+
889893
#if !FMT_GCC_VERSION
890894
char buf[10];
891895
fmt::format_to(buf, nondeterministic_format_string());
892896
#endif
893897
}
894898

895899
TEST(base_test, format_context_accessors) {
896-
class copier {
897-
static fmt::format_context copy(fmt::appender app,
898-
const fmt::format_context& ctx) {
899-
return fmt::format_context(std::move(app), ctx.args(), ctx.locale());
900-
}
900+
auto copy = [](fmt::appender app, const fmt::format_context& ctx) {
901+
return fmt::format_context(app, ctx.args(), ctx.locale());
901902
};
902903
}

0 commit comments

Comments
 (0)