11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved.
21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be
31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file.
41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/files/file_util.h"
61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/strings/string_util.h"
71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "testing/gtest/include/gtest/gtest.h"
81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "tools/gn/commands.h"
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace commands {
111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccibool FormatFileToString(const std::string& input_filename,
121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                        bool dump_tree,
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                        std::string* output);
141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}  // namespace commands
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define FORMAT_TEST(n)                                                 \
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  TEST(Format, n) {                                                    \
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    std::string out;                                                   \
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    std::string expected;                                              \
201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    EXPECT_TRUE(commands::FormatFileToString(                          \
211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci        "//tools/gn/format_test_data/" #n ".gn", false, &out));        \
221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    ASSERT_TRUE(base::ReadFileToString(                                \
231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci        base::FilePath(FILE_PATH_LITERAL("tools/gn/format_test_data/") \
241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                           FILE_PATH_LITERAL(#n)                       \
251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                               FILE_PATH_LITERAL(".golden")),          \
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci        &expected));                                                   \
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    EXPECT_EQ(out, expected);                                          \
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  }
291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// These are expanded out this way rather than a runtime loop so that
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// --gtest_filter works as expected for individual test running.
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciFORMAT_TEST(001)
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciFORMAT_TEST(002)
341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciFORMAT_TEST(003)
351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciFORMAT_TEST(004)
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciFORMAT_TEST(005)
371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciFORMAT_TEST(006)
381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciFORMAT_TEST(007)
391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciFORMAT_TEST(008)
401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciFORMAT_TEST(009)
411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciFORMAT_TEST(010)
421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciFORMAT_TEST(011)
431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciFORMAT_TEST(012)
441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciFORMAT_TEST(013)
451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciFORMAT_TEST(014)
46