Home | History | Annotate | Download | only in gn
      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
      3 // found in the LICENSE file.
      4 
      5 #include "testing/gtest/include/gtest/gtest.h"
      6 #include "tools/gn/scheduler.h"
      7 #include "tools/gn/scope.h"
      8 #include "tools/gn/test_with_scope.h"
      9 
     10 
     11 // Checks that we find unused identifiers in targets.
     12 TEST(FunctionsTarget, CheckUnused) {
     13   Scheduler scheduler;
     14   TestWithScope setup;
     15 
     16   // The target generator needs a place to put the targets or it will fail.
     17   Scope::ItemVector item_collector;
     18   setup.scope()->set_item_collector(&item_collector);
     19 
     20   // Test a good one first.
     21   TestParseInput good_input(
     22       "source_set(\"foo\") {\n"
     23       "}\n");
     24   ASSERT_FALSE(good_input.has_error());
     25   Err err;
     26   good_input.parsed()->Execute(setup.scope(), &err);
     27   ASSERT_FALSE(err.has_error()) << err.message();
     28 
     29   // Test a source set (this covers everything but component) with an unused
     30   // variable.
     31   TestParseInput source_set_input(
     32       "source_set(\"foo\") {\n"
     33       "  unused = 5\n"
     34       "}\n");
     35   ASSERT_FALSE(source_set_input.has_error());
     36   err = Err();
     37   source_set_input.parsed()->Execute(setup.scope(), &err);
     38   ASSERT_TRUE(err.has_error());
     39 
     40   // Test a component, which is a different code path.
     41   TestParseInput component_input(
     42       "component_mode = \"static_library\"\n"
     43       "component(\"bar\") {\n"
     44       "  unused = 5\n"
     45       "}\n");
     46   ASSERT_FALSE(component_input.has_error());
     47   err = Err();
     48   component_input.parsed()->Execute(setup.scope(), &err);
     49   ASSERT_TRUE(err.has_error()) << err.message();
     50 }
     51