|  | // 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 "bsdiff/bspatch.h" | 
|  |  | 
|  | #include <unistd.h> | 
|  |  | 
|  | #include <gtest/gtest.h> | 
|  |  | 
|  | #include "bsdiff/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 |