blob: 5c6c917294b83fd27cc3b2bd32b8ab6c148a1822 [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/task_scheduler/sequence_sort_key.h"
#include "base/task_scheduler/task_traits.h"
#include "base/time/time.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace base {
namespace internal {
TEST(TaskSchedulerSequenceSortKeyTest, OperatorLessThan) {
SequenceSortKey key_a(TaskPriority::USER_BLOCKING,
TimeTicks::FromInternalValue(1000));
SequenceSortKey key_b(TaskPriority::USER_BLOCKING,
TimeTicks::FromInternalValue(2000));
SequenceSortKey key_c(TaskPriority::USER_VISIBLE,
TimeTicks::FromInternalValue(1000));
SequenceSortKey key_d(TaskPriority::USER_VISIBLE,
TimeTicks::FromInternalValue(2000));
SequenceSortKey key_e(TaskPriority::BACKGROUND,
TimeTicks::FromInternalValue(1000));
SequenceSortKey key_f(TaskPriority::BACKGROUND,
TimeTicks::FromInternalValue(2000));
EXPECT_FALSE(key_a < key_a);
EXPECT_LT(key_b, key_a);
EXPECT_LT(key_c, key_a);
EXPECT_LT(key_d, key_a);
EXPECT_LT(key_e, key_a);
EXPECT_LT(key_f, key_a);
EXPECT_FALSE(key_a < key_b);
EXPECT_FALSE(key_b < key_b);
EXPECT_LT(key_c, key_b);
EXPECT_LT(key_d, key_b);
EXPECT_LT(key_e, key_b);
EXPECT_LT(key_f, key_b);
EXPECT_FALSE(key_a < key_c);
EXPECT_FALSE(key_b < key_c);
EXPECT_FALSE(key_c < key_c);
EXPECT_LT(key_d, key_c);
EXPECT_LT(key_e, key_c);
EXPECT_LT(key_f, key_c);
EXPECT_FALSE(key_a < key_d);
EXPECT_FALSE(key_b < key_d);
EXPECT_FALSE(key_c < key_d);
EXPECT_FALSE(key_d < key_d);
EXPECT_LT(key_e, key_d);
EXPECT_LT(key_f, key_d);
EXPECT_FALSE(key_a < key_e);
EXPECT_FALSE(key_b < key_e);
EXPECT_FALSE(key_c < key_e);
EXPECT_FALSE(key_d < key_e);
EXPECT_FALSE(key_e < key_e);
EXPECT_LT(key_f, key_e);
EXPECT_FALSE(key_a < key_f);
EXPECT_FALSE(key_b < key_f);
EXPECT_FALSE(key_c < key_f);
EXPECT_FALSE(key_d < key_f);
EXPECT_FALSE(key_e < key_f);
EXPECT_FALSE(key_f < key_f);
}
TEST(TaskSchedulerSequenceSortKeyTest, OperatorGreaterThan) {
SequenceSortKey key_a(TaskPriority::USER_BLOCKING,
TimeTicks::FromInternalValue(1000));
SequenceSortKey key_b(TaskPriority::USER_BLOCKING,
TimeTicks::FromInternalValue(2000));
SequenceSortKey key_c(TaskPriority::USER_VISIBLE,
TimeTicks::FromInternalValue(1000));
SequenceSortKey key_d(TaskPriority::USER_VISIBLE,
TimeTicks::FromInternalValue(2000));
SequenceSortKey key_e(TaskPriority::BACKGROUND,
TimeTicks::FromInternalValue(1000));
SequenceSortKey key_f(TaskPriority::BACKGROUND,
TimeTicks::FromInternalValue(2000));
EXPECT_FALSE(key_a > key_a);
EXPECT_FALSE(key_b > key_a);
EXPECT_FALSE(key_c > key_a);
EXPECT_FALSE(key_d > key_a);
EXPECT_FALSE(key_e > key_a);
EXPECT_FALSE(key_f > key_a);
EXPECT_GT(key_a, key_b);
EXPECT_FALSE(key_b > key_b);
EXPECT_FALSE(key_c > key_b);
EXPECT_FALSE(key_d > key_b);
EXPECT_FALSE(key_e > key_b);
EXPECT_FALSE(key_f > key_b);
EXPECT_GT(key_a, key_c);
EXPECT_GT(key_b, key_c);
EXPECT_FALSE(key_c > key_c);
EXPECT_FALSE(key_d > key_c);
EXPECT_FALSE(key_e > key_c);
EXPECT_FALSE(key_f > key_c);
EXPECT_GT(key_a, key_d);
EXPECT_GT(key_b, key_d);
EXPECT_GT(key_c, key_d);
EXPECT_FALSE(key_d > key_d);
EXPECT_FALSE(key_e > key_d);
EXPECT_FALSE(key_f > key_d);
EXPECT_GT(key_a, key_e);
EXPECT_GT(key_b, key_e);
EXPECT_GT(key_c, key_e);
EXPECT_GT(key_d, key_e);
EXPECT_FALSE(key_e > key_e);
EXPECT_FALSE(key_f > key_e);
EXPECT_GT(key_a, key_f);
EXPECT_GT(key_b, key_f);
EXPECT_GT(key_c, key_f);
EXPECT_GT(key_d, key_f);
EXPECT_GT(key_e, key_f);
EXPECT_FALSE(key_f > key_f);
}
} // namespace internal
} // namespace base