TEST(TestTaskStatus, Forgiveness) { TaskStatus s; // Forgive transient backoff updateStatus(&s, TaskStatus::errorBackoff("err")); EXPECT_TRUE(s.isInBackoff(s.timestamp())); s.forgive(); EXPECT_FALSE(s.isInBackoff(s.timestamp())); // Forgive permanent failure updateStatus(&s, TaskStatus::failed()); EXPECT_TRUE(s.isFailed()); s.forgive(); EXPECT_FALSE(s.isFailed()); }
bool operator == (const TaskStatus& left, const TaskStatus& right) { return left.task_id() == right.task_id() && left.state() == right.state() && left.data() == right.data() && left.message() == right.message() && left.slave_id() == right.slave_id() && left.timestamp() == right.timestamp() && left.executor_id() == right.executor_id() && left.healthy() == right.healthy() && left.source() == right.source() && left.reason() == right.reason() && left.uuid() == right.uuid(); }
// Returns a JSON object modeled on a TaskStatus. JSON::Object model(const TaskStatus& status) { JSON::Object object; object.values["state"] = TaskState_Name(status.state()); object.values["timestamp"] = status.timestamp(); return object; }
TaskStatus expectStatusFromString(const TaskStatus& expected, const char* s) { auto actual = TaskStatus::fromString(s); EXPECT_NEAR(expected.timestamp(), actual.timestamp(), 2); EXPECT_EQ(expected.toDynamicNoTime(), actual.toDynamicNoTime()); return actual; }