// Copyright 2020 The Chromium OS 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 "ml_benchmark/sysmetrics.h"

#include <gtest/gtest.h>

namespace ml_benchmark {

TEST(SysMetrics, Memory) {
  const int64_t original_rss = GetSwapAndRSSBytes();
  const int64_t original_size = GetVMSizeBytes();
  const int64_t original_peak_size = GetVMPeakBytes();

  EXPECT_GT(original_rss, 0);
  EXPECT_GT(original_size, 0);
  EXPECT_GE(original_peak_size, original_size);

  // Allocate 100MB more than the known peak value.
  const int hundred_mb_bytes = 1024 * 1024 * 100;
  const int mem_growth_bytes =
      (original_peak_size - original_size) + hundred_mb_bytes;
  char* allocate = new char[mem_growth_bytes];
  // Zero it out and read so the compiler doesn't optimize the variable away.
  memset(allocate, 0, mem_growth_bytes);
  EXPECT_EQ(allocate[mem_growth_bytes - 1], 0);

  const int64_t new_rss = GetSwapAndRSSBytes();
  const int64_t new_size = GetVMSizeBytes();
  const int64_t new_peak_size = GetVMPeakBytes();

  EXPECT_GE(new_rss, original_rss);
  EXPECT_GE(new_size, original_size);
  EXPECT_GE(new_peak_size, original_peak_size);

  delete[] allocate;

  // Ensure vmpeak stays high.
  EXPECT_GE(GetVMPeakBytes(), new_peak_size);
}

}  // namespace ml_benchmark
