Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Side by Side Diff: tools/gn/target_unittest.cc

Issue 1607423002: Allow .o files for GN generated inputs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comment fix Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/gn/target.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "tools/gn/target.h" 5 #include "tools/gn/target.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "tools/gn/build_settings.h" 10 #include "tools/gn/build_settings.h"
(...skipping 569 matching lines...) Expand 10 before | Expand all | Expand 10 after
580 TestTarget existent_generator(setup, "//foo:existent_generator", 580 TestTarget existent_generator(setup, "//foo:existent_generator",
581 Target::EXECUTABLE); 581 Target::EXECUTABLE);
582 existent_generator.sources().push_back(generated_file); 582 existent_generator.sources().push_back(generated_file);
583 EXPECT_TRUE(existent_generator.OnResolved(&err)); 583 EXPECT_TRUE(existent_generator.OnResolved(&err));
584 scheduler.AddWrittenFile(generated_file); 584 scheduler.AddWrittenFile(generated_file);
585 585
586 // Should be OK. 586 // Should be OK.
587 EXPECT_TRUE(scheduler.GetUnknownGeneratedInputs().empty()); 587 EXPECT_TRUE(scheduler.GetUnknownGeneratedInputs().empty());
588 } 588 }
589 589
590 // Tests that intermediate object files generated by binary targets are also
591 // considered generated for the purposes of input checking. Above, we tested
592 // the failure cases for generated inputs, so here only test .o files that are
593 // present.
594 TEST(Target, ObjectGeneratedInputs) {
595 Scheduler scheduler;
596 TestWithScope setup;
597 Err err;
598
599 // This target compiles the source.
600 SourceFile source_file("//source.cc");
601 TestTarget source_generator(setup, "//:source_target", Target::SOURCE_SET);
602 source_generator.sources().push_back(source_file);
603 EXPECT_TRUE(source_generator.OnResolved(&err));
604
605 // This is the object file that the test toolchain generates for the source.
606 SourceFile object_file("//out/Debug/obj/source_target.source.o");
607
608 TestTarget final_target(setup, "//:final", Target::ACTION);
609 final_target.inputs().push_back(object_file);
610 EXPECT_TRUE(final_target.OnResolved(&err));
611
612 AssertSchedulerHasOneUnknownFileMatching(&final_target, object_file);
613 }
614
590 TEST(Target, ResolvePrecompiledHeaders) { 615 TEST(Target, ResolvePrecompiledHeaders) {
591 TestWithScope setup; 616 TestWithScope setup;
592 Err err; 617 Err err;
593 618
594 Target target(setup.settings(), Label(SourceDir("//foo/"), "bar")); 619 Target target(setup.settings(), Label(SourceDir("//foo/"), "bar"));
595 620
596 // Target with no settings, no configs, should be a no-op. 621 // Target with no settings, no configs, should be a no-op.
597 EXPECT_TRUE(target.ResolvePrecompiledHeaders(&err)); 622 EXPECT_TRUE(target.ResolvePrecompiledHeaders(&err));
598 623
599 // Config with PCH values. 624 // Config with PCH values.
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 "\n" 661 "\n"
637 "From //foo:bar\n" 662 "From //foo:bar\n"
638 " header: pch.h\n" 663 " header: pch.h\n"
639 " source: //pcs.cc\n" 664 " source: //pcs.cc\n"
640 "\n" 665 "\n"
641 "From //foo:c2\n" 666 "From //foo:c2\n"
642 " header: pch2.h\n" 667 " header: pch2.h\n"
643 " source: //pcs2.cc", 668 " source: //pcs2.cc",
644 err.help_text()); 669 err.help_text());
645 } 670 }
OLDNEW
« no previous file with comments | « tools/gn/target.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698