Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 <algorithm> | 5 #include <algorithm> |
| 6 | 6 |
| 7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
| 8 #include "tools/gn/runtime_deps.h" | 8 #include "tools/gn/runtime_deps.h" |
| 9 #include "tools/gn/target.h" | 9 #include "tools/gn/target.h" |
| 10 #include "tools/gn/test_with_scope.h" | 10 #include "tools/gn/test_with_scope.h" |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 42 TEST(RuntimeDeps, Libs) { | 42 TEST(RuntimeDeps, Libs) { |
| 43 TestWithScope setup; | 43 TestWithScope setup; |
| 44 Err err; | 44 Err err; |
| 45 | 45 |
| 46 // Dependency hierarchy: main(exe) -> stat | 46 // Dependency hierarchy: main(exe) -> stat |
| 47 // -> shared | 47 // -> shared |
| 48 // -> set | 48 // -> set |
| 49 | 49 |
| 50 Target stat(setup.settings(), Label(SourceDir("//"), "stat")); | 50 Target stat(setup.settings(), Label(SourceDir("//"), "stat")); |
| 51 InitTargetWithType(setup, &stat, Target::STATIC_LIBRARY); | 51 InitTargetWithType(setup, &stat, Target::STATIC_LIBRARY); |
| 52 stat.data().push_back(SourceFile("//stat.dat")); | 52 stat.data().push_back("//stat.dat"); |
| 53 ASSERT_TRUE(stat.OnResolved(&err)); | 53 ASSERT_TRUE(stat.OnResolved(&err)); |
| 54 | 54 |
| 55 Target shared(setup.settings(), Label(SourceDir("//"), "shared")); | 55 Target shared(setup.settings(), Label(SourceDir("//"), "shared")); |
| 56 InitTargetWithType(setup, &shared, Target::SHARED_LIBRARY); | 56 InitTargetWithType(setup, &shared, Target::SHARED_LIBRARY); |
| 57 shared.data().push_back(SourceFile("//shared.dat")); | 57 shared.data().push_back("//shared.dat"); |
| 58 ASSERT_TRUE(shared.OnResolved(&err)); | 58 ASSERT_TRUE(shared.OnResolved(&err)); |
| 59 | 59 |
| 60 Target set(setup.settings(), Label(SourceDir("//"), "set")); | 60 Target set(setup.settings(), Label(SourceDir("//"), "set")); |
| 61 InitTargetWithType(setup, &set, Target::SOURCE_SET); | 61 InitTargetWithType(setup, &set, Target::SOURCE_SET); |
| 62 set.data().push_back(SourceFile("//set.dat")); | 62 set.data().push_back("//set.dat"); |
| 63 ASSERT_TRUE(set.OnResolved(&err)); | 63 ASSERT_TRUE(set.OnResolved(&err)); |
| 64 | 64 |
| 65 Target main(setup.settings(), Label(SourceDir("//"), "main")); | 65 Target main(setup.settings(), Label(SourceDir("//"), "main")); |
| 66 InitTargetWithType(setup, &main, Target::EXECUTABLE); | 66 InitTargetWithType(setup, &main, Target::EXECUTABLE); |
| 67 main.private_deps().push_back(LabelTargetPair(&stat)); | 67 main.private_deps().push_back(LabelTargetPair(&stat)); |
| 68 main.private_deps().push_back(LabelTargetPair(&shared)); | 68 main.private_deps().push_back(LabelTargetPair(&shared)); |
| 69 main.private_deps().push_back(LabelTargetPair(&set)); | 69 main.private_deps().push_back(LabelTargetPair(&set)); |
| 70 main.data().push_back(SourceFile("//main.dat")); | 70 main.data().push_back("//main.dat"); |
| 71 ASSERT_TRUE(main.OnResolved(&err)); | 71 ASSERT_TRUE(main.OnResolved(&err)); |
| 72 | 72 |
| 73 std::vector<std::pair<OutputFile, const Target*>> result = | 73 std::vector<std::pair<OutputFile, const Target*>> result = |
| 74 ComputeRuntimeDeps(&main); | 74 ComputeRuntimeDeps(&main); |
| 75 | 75 |
| 76 // The result should have deps of main, all 4 dat files, and libshared.so | 76 // The result should have deps of main, all 4 dat files, and libshared.so |
| 77 ASSERT_EQ(6u, result.size()) << GetVectorDescription(result); | 77 ASSERT_EQ(6u, result.size()) << GetVectorDescription(result); |
| 78 | 78 |
| 79 // The first one should always be the main exe. | 79 // The first one should always be the main exe. |
| 80 EXPECT_TRUE(MakePair("./main", &main) == result[0]); | 80 EXPECT_TRUE(MakePair("./main", &main) == result[0]); |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 105 TestWithScope setup; | 105 TestWithScope setup; |
| 106 Err err; | 106 Err err; |
| 107 | 107 |
| 108 // Dependency hierarchy: main(exe) -> datadep(exe) -> final_in(source set) | 108 // Dependency hierarchy: main(exe) -> datadep(exe) -> final_in(source set) |
| 109 // -> dep(exe) -> final_out(source set) | 109 // -> dep(exe) -> final_out(source set) |
| 110 // The final_in/out targets each have data files. final_in's should be | 110 // The final_in/out targets each have data files. final_in's should be |
| 111 // included, final_out's should not be. | 111 // included, final_out's should not be. |
| 112 | 112 |
| 113 Target final_in(setup.settings(), Label(SourceDir("//"), "final_in")); | 113 Target final_in(setup.settings(), Label(SourceDir("//"), "final_in")); |
| 114 InitTargetWithType(setup, &final_in, Target::SOURCE_SET); | 114 InitTargetWithType(setup, &final_in, Target::SOURCE_SET); |
| 115 final_in.data().push_back(SourceFile("//final_in.dat")); | 115 final_in.data().push_back("//final_in.dat"); |
| 116 ASSERT_TRUE(final_in.OnResolved(&err)); | 116 ASSERT_TRUE(final_in.OnResolved(&err)); |
| 117 | 117 |
| 118 Target datadep(setup.settings(), Label(SourceDir("//"), "datadep")); | 118 Target datadep(setup.settings(), Label(SourceDir("//"), "datadep")); |
| 119 InitTargetWithType(setup, &datadep, Target::EXECUTABLE); | 119 InitTargetWithType(setup, &datadep, Target::EXECUTABLE); |
| 120 datadep.private_deps().push_back(LabelTargetPair(&final_in)); | 120 datadep.private_deps().push_back(LabelTargetPair(&final_in)); |
| 121 ASSERT_TRUE(datadep.OnResolved(&err)); | 121 ASSERT_TRUE(datadep.OnResolved(&err)); |
| 122 | 122 |
| 123 Target final_out(setup.settings(), Label(SourceDir("//"), "final_out")); | 123 Target final_out(setup.settings(), Label(SourceDir("//"), "final_out")); |
| 124 InitTargetWithType(setup, &final_out, Target::SOURCE_SET); | 124 InitTargetWithType(setup, &final_out, Target::SOURCE_SET); |
| 125 final_out.data().push_back(SourceFile("//final_out.dat")); | 125 final_out.data().push_back("//final_out.dat"); |
| 126 ASSERT_TRUE(final_out.OnResolved(&err)); | 126 ASSERT_TRUE(final_out.OnResolved(&err)); |
| 127 | 127 |
| 128 Target dep(setup.settings(), Label(SourceDir("//"), "dep")); | 128 Target dep(setup.settings(), Label(SourceDir("//"), "dep")); |
| 129 InitTargetWithType(setup, &dep, Target::EXECUTABLE); | 129 InitTargetWithType(setup, &dep, Target::EXECUTABLE); |
| 130 dep.private_deps().push_back(LabelTargetPair(&final_out)); | 130 dep.private_deps().push_back(LabelTargetPair(&final_out)); |
| 131 ASSERT_TRUE(dep.OnResolved(&err)); | 131 ASSERT_TRUE(dep.OnResolved(&err)); |
| 132 | 132 |
| 133 Target main(setup.settings(), Label(SourceDir("//"), "main")); | 133 Target main(setup.settings(), Label(SourceDir("//"), "main")); |
| 134 InitTargetWithType(setup, &main, Target::EXECUTABLE); | 134 InitTargetWithType(setup, &main, Target::EXECUTABLE); |
| 135 main.private_deps().push_back(LabelTargetPair(&dep)); | 135 main.private_deps().push_back(LabelTargetPair(&dep)); |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 161 TestWithScope setup; | 161 TestWithScope setup; |
| 162 Err err; | 162 Err err; |
| 163 | 163 |
| 164 // Dependency hierarchy: main(exe) -> datadep (action) | 164 // Dependency hierarchy: main(exe) -> datadep (action) |
| 165 // -> datadep_copy (copy) | 165 // -> datadep_copy (copy) |
| 166 // -> dep (action) | 166 // -> dep (action) |
| 167 // -> dep_copy (copy) | 167 // -> dep_copy (copy) |
| 168 | 168 |
| 169 Target datadep(setup.settings(), Label(SourceDir("//"), "datadep")); | 169 Target datadep(setup.settings(), Label(SourceDir("//"), "datadep")); |
| 170 InitTargetWithType(setup, &datadep, Target::ACTION); | 170 InitTargetWithType(setup, &datadep, Target::ACTION); |
| 171 datadep.data().push_back(SourceFile("//datadep.data")); | 171 datadep.data().push_back("//datadep.data"); |
| 172 datadep.action_values().outputs() = | 172 datadep.action_values().outputs() = |
| 173 SubstitutionList::MakeForTest("//datadep.output"); | 173 SubstitutionList::MakeForTest("//datadep.output"); |
| 174 ASSERT_TRUE(datadep.OnResolved(&err)); | 174 ASSERT_TRUE(datadep.OnResolved(&err)); |
| 175 | 175 |
| 176 Target datadep_copy(setup.settings(), Label(SourceDir("//"), "datadep_copy")); | 176 Target datadep_copy(setup.settings(), Label(SourceDir("//"), "datadep_copy")); |
| 177 InitTargetWithType(setup, &datadep_copy, Target::COPY_FILES); | 177 InitTargetWithType(setup, &datadep_copy, Target::COPY_FILES); |
| 178 datadep_copy.sources().push_back(SourceFile("//input")); | 178 datadep_copy.sources().push_back(SourceFile("//input")); |
| 179 datadep_copy.data().push_back(SourceFile("//datadep_copy.data")); | 179 datadep_copy.data().push_back("//datadep_copy.data"); |
| 180 datadep_copy.action_values().outputs() = | 180 datadep_copy.action_values().outputs() = |
| 181 SubstitutionList::MakeForTest("//datadep_copy.output"); | 181 SubstitutionList::MakeForTest("//datadep_copy.output"); |
| 182 ASSERT_TRUE(datadep_copy.OnResolved(&err)); | 182 ASSERT_TRUE(datadep_copy.OnResolved(&err)); |
| 183 | 183 |
| 184 Target dep(setup.settings(), Label(SourceDir("//"), "dep")); | 184 Target dep(setup.settings(), Label(SourceDir("//"), "dep")); |
| 185 InitTargetWithType(setup, &dep, Target::ACTION); | 185 InitTargetWithType(setup, &dep, Target::ACTION); |
| 186 dep.data().push_back(SourceFile("//dep.data")); | 186 dep.data().push_back("//dep.data"); |
| 187 dep.action_values().outputs() = | 187 dep.action_values().outputs() = |
| 188 SubstitutionList::MakeForTest("//dep.output"); | 188 SubstitutionList::MakeForTest("//dep.output"); |
| 189 ASSERT_TRUE(dep.OnResolved(&err)); | 189 ASSERT_TRUE(dep.OnResolved(&err)); |
| 190 | 190 |
| 191 Target dep_copy(setup.settings(), Label(SourceDir("//"), "dep_copy")); | 191 Target dep_copy(setup.settings(), Label(SourceDir("//"), "dep_copy")); |
| 192 InitTargetWithType(setup, &dep_copy, Target::COPY_FILES); | 192 InitTargetWithType(setup, &dep_copy, Target::COPY_FILES); |
| 193 dep_copy.sources().push_back(SourceFile("//input")); | 193 dep_copy.sources().push_back(SourceFile("//input")); |
| 194 dep_copy.data().push_back(SourceFile("//dep_copy.data")); | 194 dep_copy.data().push_back("//dep_copy.data"); |
|
scottmg
2015/06/03 22:11:30
should there be a test for directories here since
| |
| 195 dep_copy.action_values().outputs() = | 195 dep_copy.action_values().outputs() = |
| 196 SubstitutionList::MakeForTest("//dep_copy.output"); | 196 SubstitutionList::MakeForTest("//dep_copy.output"); |
| 197 ASSERT_TRUE(dep_copy.OnResolved(&err)); | 197 ASSERT_TRUE(dep_copy.OnResolved(&err)); |
| 198 | 198 |
| 199 Target main(setup.settings(), Label(SourceDir("//"), "main")); | 199 Target main(setup.settings(), Label(SourceDir("//"), "main")); |
| 200 InitTargetWithType(setup, &main, Target::EXECUTABLE); | 200 InitTargetWithType(setup, &main, Target::EXECUTABLE); |
| 201 main.private_deps().push_back(LabelTargetPair(&dep)); | 201 main.private_deps().push_back(LabelTargetPair(&dep)); |
| 202 main.private_deps().push_back(LabelTargetPair(&dep_copy)); | 202 main.private_deps().push_back(LabelTargetPair(&dep_copy)); |
| 203 main.data_deps().push_back(LabelTargetPair(&datadep)); | 203 main.data_deps().push_back(LabelTargetPair(&datadep)); |
| 204 main.data_deps().push_back(LabelTargetPair(&datadep_copy)); | 204 main.data_deps().push_back(LabelTargetPair(&datadep_copy)); |
| (...skipping 28 matching lines...) Expand all Loading... | |
| 233 EXPECT_TRUE(std::find(result.begin(), result.end(), | 233 EXPECT_TRUE(std::find(result.begin(), result.end(), |
| 234 MakePair("../../dep_copy.data", &dep_copy)) != | 234 MakePair("../../dep_copy.data", &dep_copy)) != |
| 235 result.end()) << GetVectorDescription(result); | 235 result.end()) << GetVectorDescription(result); |
| 236 | 236 |
| 237 // Explicitly asking for the runtime deps of an action target only includes | 237 // Explicitly asking for the runtime deps of an action target only includes |
| 238 // the data and not all outputs. | 238 // the data and not all outputs. |
| 239 result = ComputeRuntimeDeps(&dep); | 239 result = ComputeRuntimeDeps(&dep); |
| 240 ASSERT_EQ(1u, result.size()); | 240 ASSERT_EQ(1u, result.size()); |
| 241 EXPECT_TRUE(MakePair("../../dep.data", &dep) == result[0]); | 241 EXPECT_TRUE(MakePair("../../dep.data", &dep) == result[0]); |
| 242 } | 242 } |
| OLD | NEW |