// Copyright 2016 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 "bspatch.h"

#include <unistd.h>

#include <gtest/gtest.h>

#include "test_utils.h"

namespace bsdiff {

class BspatchTest : public testing::Test {
 protected:
  BspatchTest()
      : old_file_("bsdiff_oldfile.XXXXXX"),
        new_file_("bsdiff_newfile.XXXXXX") {}

  test_utils::ScopedTempFile old_file_;
  test_utils::ScopedTempFile new_file_;
};

TEST_F(BspatchTest, IsOverlapping) {
  const char* old_filename = old_file_.c_str();
  const char* new_filename = new_file_.c_str();
  EXPECT_FALSE(IsOverlapping(old_filename, "does-not-exist", {}, {}));
  EXPECT_FALSE(IsOverlapping(old_filename, new_filename, {}, {}));
  EXPECT_EQ(0, unlink(new_filename));
  EXPECT_EQ(0, symlink(old_filename, new_filename));
  EXPECT_TRUE(IsOverlapping(old_filename, new_filename, {}, {}));
  EXPECT_TRUE(IsOverlapping(old_filename, old_filename, {}, {}));
  EXPECT_FALSE(IsOverlapping(old_filename, old_filename, {{0, 1}}, {{1, 1}}));
  EXPECT_FALSE(IsOverlapping(old_filename, old_filename, {{2, 1}}, {{1, 1}}));
  EXPECT_TRUE(IsOverlapping(old_filename, old_filename, {{0, 1}}, {{0, 1}}));
  EXPECT_TRUE(IsOverlapping(old_filename, old_filename, {{0, 4}}, {{2, 1}}));
  EXPECT_TRUE(IsOverlapping(old_filename, old_filename, {{1, 1}}, {{0, 2}}));
  EXPECT_TRUE(IsOverlapping(old_filename, old_filename, {{3, 2}}, {{2, 2}}));
}

}  // namespace bsdiff
