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