// Copyright 2018 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 "testing/gtest/include/gtest/gtest.h"

#include "chrome/browser/ash/crostini/crosvm_metrics.h"

namespace crostini {

TEST(CrosvmMetricsTest, CalculateCrosvmRssPercentageSuccess) {
  CrosvmMetrics::PidStatMap pid_proc_map = {
      {1111, {.pid = 1111, .utime = 1, .stime = 1, .rss = 20}}};
  int64_t mem_used = 1000;
  int64_t page_size = 512;
  int expected = 1;
  EXPECT_EQ(expected, CrosvmMetrics::CalculateCrosvmRssPercentage(
                          pid_proc_map, mem_used, page_size));
}

TEST(CrosvmMetricsTest, CalculateCrosvmCpuPercentageSuccess) {
  CrosvmMetrics::PidStatMap previous_pid_stat_map = {
      {1111, {.pid = 1111, .utime = 1, .stime = 0, .rss = 20}}};
  CrosvmMetrics::PidStatMap pid_stat_map = {
      {1111, {.pid = 1111, .utime = 6, .stime = 4, .rss = 20}}};
  int64_t cycle_cpu_time = 1000;
  int expected = 1;
  EXPECT_EQ(expected, CrosvmMetrics::CalculateCrosvmCpuPercentage(
                          pid_stat_map, previous_pid_stat_map, cycle_cpu_time));
}

}  // namespace crostini
