Add more tests.
This commit is contained in:
parent
a9a4e74fed
commit
59536b154c
@ -6,6 +6,7 @@
|
|||||||
#include <cfloat>
|
#include <cfloat>
|
||||||
#include <climits>
|
#include <climits>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
#include <memory>
|
||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
#include "format.h"
|
#include "format.h"
|
||||||
|
|
||||||
@ -560,23 +561,47 @@ TEST(FormatterTest, ArgInserter) {
|
|||||||
EXPECT_STREQ("12", c_str(format("{0}") << 2));
|
EXPECT_STREQ("12", c_str(format("{0}") << 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
struct CallCheck {
|
struct CountCalls {
|
||||||
bool &called;
|
int &num_calls;
|
||||||
|
|
||||||
CallCheck(bool &called) : called(called) {}
|
CountCalls(int &num_calls) : num_calls(num_calls) {}
|
||||||
|
|
||||||
void operator()(const Formatter &) const {
|
void operator()(const Formatter &) const {
|
||||||
called = true;
|
++num_calls;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
TEST(ActiveFormatterTest, Action) {
|
TEST(ActiveFormatterTest, Action) {
|
||||||
bool called = false;
|
int num_calls = 0;
|
||||||
{
|
{
|
||||||
fmt::ActiveFormatter<CallCheck> af("test", CallCheck(called));
|
fmt::ActiveFormatter<CountCalls> af("test", CountCalls(num_calls));
|
||||||
EXPECT_FALSE(called);
|
EXPECT_EQ(0, num_calls);
|
||||||
}
|
}
|
||||||
EXPECT_TRUE(called);
|
EXPECT_EQ(1, num_calls);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(ActiveFormatterTest, Copy) {
|
||||||
|
int num_calls = 0;
|
||||||
|
typedef fmt::ActiveFormatter<CountCalls> AF;
|
||||||
|
std::auto_ptr<AF> af(new AF("test", CountCalls(num_calls)));
|
||||||
|
EXPECT_EQ(0, num_calls);
|
||||||
|
{
|
||||||
|
AF copy(*af);
|
||||||
|
EXPECT_EQ(0, num_calls);
|
||||||
|
af.reset();
|
||||||
|
EXPECT_EQ(0, num_calls);
|
||||||
|
}
|
||||||
|
EXPECT_EQ(1, num_calls);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(ActiveFormatterTest, ActionNotCalledOnError) {
|
||||||
|
int num_calls = 0;
|
||||||
|
{
|
||||||
|
EXPECT_THROW(
|
||||||
|
fmt::ActiveFormatter<CountCalls> af("{0", CountCalls(num_calls)),
|
||||||
|
FormatError);
|
||||||
|
}
|
||||||
|
EXPECT_EQ(0, num_calls);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(ActiveFormatterTest, ArgLifetime) {
|
TEST(ActiveFormatterTest, ArgLifetime) {
|
||||||
|
Loading…
Reference in New Issue
Block a user