OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
| 5 #include <stdint.h> |
| 6 |
5 #include "base/files/file.h" | 7 #include "base/files/file.h" |
6 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
7 #include "base/files/scoped_temp_dir.h" | 9 #include "base/files/scoped_temp_dir.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
9 #include "tools/gn/functions.h" | 11 #include "tools/gn/functions.h" |
10 #include "tools/gn/scheduler.h" | 12 #include "tools/gn/scheduler.h" |
11 #include "tools/gn/test_with_scope.h" | 13 #include "tools/gn/test_with_scope.h" |
12 | 14 |
13 namespace { | 15 namespace { |
14 | 16 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 EXPECT_TRUE(CallWriteFile(setup.scope(), "//out/foo.txt", some_string)); | 54 EXPECT_TRUE(CallWriteFile(setup.scope(), "//out/foo.txt", some_string)); |
53 base::FilePath foo_name = temp_dir.path().Append(FILE_PATH_LITERAL("out")) | 55 base::FilePath foo_name = temp_dir.path().Append(FILE_PATH_LITERAL("out")) |
54 .Append(FILE_PATH_LITERAL("foo.txt")); | 56 .Append(FILE_PATH_LITERAL("foo.txt")); |
55 std::string result_contents; | 57 std::string result_contents; |
56 EXPECT_TRUE(base::ReadFileToString(foo_name, &result_contents)); | 58 EXPECT_TRUE(base::ReadFileToString(foo_name, &result_contents)); |
57 EXPECT_EQ(some_string.string_value(), result_contents); | 59 EXPECT_EQ(some_string.string_value(), result_contents); |
58 | 60 |
59 // Update the contents with a list of a string and a number. | 61 // Update the contents with a list of a string and a number. |
60 Value some_list(nullptr, Value::LIST); | 62 Value some_list(nullptr, Value::LIST); |
61 some_list.list_value().push_back(Value(nullptr, "line 1")); | 63 some_list.list_value().push_back(Value(nullptr, "line 1")); |
62 some_list.list_value().push_back(Value(nullptr, static_cast<int64>(2))); | 64 some_list.list_value().push_back(Value(nullptr, static_cast<int64_t>(2))); |
63 EXPECT_TRUE(CallWriteFile(setup.scope(), "//out/foo.txt", some_list)); | 65 EXPECT_TRUE(CallWriteFile(setup.scope(), "//out/foo.txt", some_list)); |
64 EXPECT_TRUE(base::ReadFileToString(foo_name, &result_contents)); | 66 EXPECT_TRUE(base::ReadFileToString(foo_name, &result_contents)); |
65 EXPECT_EQ("line 1\n2\n", result_contents); | 67 EXPECT_EQ("line 1\n2\n", result_contents); |
66 | 68 |
67 // Test that the file is not rewritten if the contents are not changed. | 69 // Test that the file is not rewritten if the contents are not changed. |
68 // Start by setting the modified time to something old to avoid clock | 70 // Start by setting the modified time to something old to avoid clock |
69 // resolution issues. | 71 // resolution issues. |
70 base::Time old_time = base::Time::Now() - base::TimeDelta::FromDays(1); | 72 base::Time old_time = base::Time::Now() - base::TimeDelta::FromDays(1); |
71 base::File foo_file(foo_name, | 73 base::File foo_file(foo_name, |
72 base::File::FLAG_OPEN | | 74 base::File::FLAG_OPEN | |
73 base::File::FLAG_READ | base::File::FLAG_WRITE); | 75 base::File::FLAG_READ | base::File::FLAG_WRITE); |
74 ASSERT_TRUE(foo_file.IsValid()); | 76 ASSERT_TRUE(foo_file.IsValid()); |
75 foo_file.SetTimes(old_time, old_time); | 77 foo_file.SetTimes(old_time, old_time); |
76 | 78 |
77 // Read the current time to avoid timer resolution issues when comparing | 79 // Read the current time to avoid timer resolution issues when comparing |
78 // below. | 80 // below. |
79 base::File::Info original_info; | 81 base::File::Info original_info; |
80 foo_file.GetInfo(&original_info); | 82 foo_file.GetInfo(&original_info); |
81 | 83 |
82 EXPECT_TRUE(CallWriteFile(setup.scope(), "//out/foo.txt", some_list)); | 84 EXPECT_TRUE(CallWriteFile(setup.scope(), "//out/foo.txt", some_list)); |
83 | 85 |
84 // Verify that the last modified time is the same as before. | 86 // Verify that the last modified time is the same as before. |
85 base::File::Info new_info; | 87 base::File::Info new_info; |
86 foo_file.GetInfo(&new_info); | 88 foo_file.GetInfo(&new_info); |
87 EXPECT_EQ(original_info.last_modified, new_info.last_modified); | 89 EXPECT_EQ(original_info.last_modified, new_info.last_modified); |
88 } | 90 } |
OLD | NEW |