Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / tools / gn / ninja_helper_unittest.cc
index 81f3669..3df7a13 100644 (file)
@@ -24,7 +24,7 @@ class HelperSetterUpper {
     settings.set_target_os(Settings::WIN);
 
     // Output going to "out/Debug".
-    build_settings.SetBuildDir(SourceDir("/out/Debug/"));
+    build_settings.SetBuildDir(SourceDir("//out/Debug/"));
 
     // Our source target is in "tools/gn".
     target.set_output_type(Target::EXECUTABLE);
@@ -58,6 +58,32 @@ TEST(NinjaHelper, GetOutputFileForSource) {
                                           SOURCE_CC).value());
 }
 
+TEST(NinjaHelper, GetOutputFileForObject) {
+  HelperSetterUpper setup;
+  NinjaHelper helper(&setup.build_settings);
+
+  EXPECT_EQ(OutputFile("../../tools/gn/foo.o").value(),
+            helper.GetOutputFileForSource(&setup.target,
+                                          SourceFile("//tools/gn/foo.o"),
+                                          SOURCE_O).value());
+
+  EXPECT_EQ(OutputFile("../../tools/gn/foo.obj").value(),
+            helper.GetOutputFileForSource(&setup.target,
+                                          SourceFile("//tools/gn/foo.obj"),
+                                          SOURCE_O).value());
+
+  EXPECT_EQ(OutputFile("nested/foo.o").value(),
+            helper.GetOutputFileForSource(
+                &setup.target,
+                SourceFile("//out/Debug/nested/foo.o"),
+                SOURCE_O).value());
+
+  EXPECT_EQ(OutputFile("/abs/rooted/foo.o").value(),
+            helper.GetOutputFileForSource(&setup.target,
+                                          SourceFile("/abs/rooted/foo.o"),
+                                          SOURCE_O).value());
+}
+
 TEST(NinjaHelper, GetTargetOutputFile) {
   HelperSetterUpper setup;
   NinjaHelper helper(&setup.build_settings);