Commit 8e5f41b2 authored by tfarina's avatar tfarina Committed by Commit bot

tools/gn: delete generate_test_gn_data tool

In the beginning, when gn was released, it was used to make performance
tests, as we didn't have many BUILD.gn files.

Now that we have hundreds of them in tree, this is not necessary, as the
performance can be tested with real data.

BUG=94925, 372642
R=brettw@chromium.org,dpranke@chromium.org

Review URL: https://codereview.chromium.org/1534823002

Cr-Commit-Position: refs/heads/master@{#368492}
parent 8e584883
......@@ -149,7 +149,6 @@ group("both_gn_and_gyp") {
"//third_party/codesighs",
"//third_party/pdfium/samples:pdfium_test",
"//tools/gn",
"//tools/gn:generate_test_gn_data",
"//tools/gn:gn_unittests",
"//tools/perf/clear_system_cache",
"//ui/accessibility:accessibility_unittests",
......
......@@ -367,7 +367,6 @@
'../third_party/codesighs/codesighs.gyp:maptsvdifftool',
'../third_party/pdfium/samples/samples.gyp:pdfium_diff',
'../third_party/pdfium/samples/samples.gyp:pdfium_test',
'../tools/gn/gn.gyp:generate_test_gn_data',
'../tools/gn/gn.gyp:gn',
'../tools/gn/gn.gyp:gn_unittests',
'../tools/perf/clear_system_cache/clear_system_cache.gyp:clear_system_cache',
......
......@@ -312,13 +312,3 @@ test("gn_unittests") {
"//testing/gtest",
]
}
executable("generate_test_gn_data") {
sources = [
"generate_test_gn_data.cc",
]
deps = [
"//base",
"//build/config/sanitizers:deps",
]
}
......@@ -152,7 +152,7 @@ def write_ninja(path, options):
continue
if name.endswith('_unittest.cc'):
continue
if name in ['generate_test_gn_data.cc', 'run_all_unittests.cc']:
if name == 'run_all_unittests.cc':
continue
full_path = os.path.join(GN_ROOT, name)
static_libraries['gn']['sources'].append(
......
// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <stddef.h>
#include <fstream>
#include <iostream>
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "build/build_config.h"
// Usage: just run in the directory where you want your test source root to be.
int files_written = 0;
int targets_written = 0;
base::FilePath UTF8ToFilePath(const std::string& s) {
return base::FilePath::FromUTF8Unsafe(s);
}
std::string FilePathToUTF8(const base::FilePath& path) {
#if defined(OS_WIN)
return base::WideToUTF8(path.value());
#else
return path.value();
#endif
}
base::FilePath RepoPathToPathName(const std::vector<int>& repo_path) {
base::FilePath ret;
for (const auto& elem : repo_path) {
ret = ret.Append(UTF8ToFilePath(base::IntToString(elem)));
}
return ret;
}
std::string TargetIndexToLetter(int target_index) {
char ret[2];
ret[0] = static_cast<char>('a' + target_index);
ret[1] = 0;
return ret;
}
std::string RepoPathToTargetName(const std::vector<int>& repo_path,
int target_index) {
std::string ret;
for (size_t i = 0; i < repo_path.size(); i++) {
if (i != 0)
ret.push_back('_');
ret.append(base::IntToString(repo_path[i]));
}
ret += TargetIndexToLetter(target_index);
return ret;
}
std::string RepoPathToFullTargetName(const std::vector<int>& repo_path,
int target_index) {
std::string ret;
for (const auto& elem : repo_path) {
ret.push_back('/');
ret.append(base::IntToString(elem));
}
ret += ":" + RepoPathToTargetName(repo_path, target_index);
return ret;
}
void WriteLevel(const std::vector<int>& repo_path,
int spread,
int max_depth,
int targets_per_level,
int files_per_target) {
base::FilePath dirname = RepoPathToPathName(repo_path);
base::FilePath filename = dirname.AppendASCII("BUILD.gn");
std::cout << "Writing " << FilePathToUTF8(filename) << "\n";
// Don't keep the file open while recursing.
{
base::CreateDirectory(dirname);
std::ofstream file;
file.open(FilePathToUTF8(filename).c_str(),
std::ios_base::out | std::ios_base::binary);
files_written++;
for (int i = 0; i < targets_per_level; i++) {
targets_written++;
file << "executable(\"" << RepoPathToTargetName(repo_path, i)
<< "\") {\n";
file << " sources = [\n";
for (int f = 0; f < files_per_target; f++)
file << " \"" << base::IntToString(f) << ".cc\",\n";
if (repo_path.size() < (size_t)max_depth) {
file << " ]\n";
file << " deps = [\n";
for (int d = 0; d < spread; d++) {
std::vector<int> cur = repo_path;
cur.push_back(d);
for (int t = 0; t < targets_per_level; t++)
file << " \"" << RepoPathToFullTargetName(cur, t) << "\",\n";
}
}
file << " ]\n}\n\n";
}
}
if (repo_path.size() < (size_t)max_depth) {
// Recursively generate subdirs.
for (int i = 0; i < spread; i++) {
std::vector<int> cur = repo_path;
cur.push_back(i);
WriteLevel(cur, spread, max_depth, targets_per_level, files_per_target);
}
}
}
int main() {
WriteLevel(std::vector<int>(), 5, 4, 3, 50); // 781 files, 2343 targets
//WriteLevel(std::vector<int>(), 6, 4, 2, 50);
std::cout << "Wrote " << files_written << " files and "
<< targets_written << " targets.\n";
return 0;
}
......@@ -267,16 +267,6 @@
'../../testing/gtest.gyp:gtest',
],
},
{
'target_name': 'generate_test_gn_data',
'type': 'executable',
'sources': [
'generate_test_gn_data.cc',
],
'dependencies': [
'../../base/base.gyp:base',
],
}
],
'conditions': [
['test_isolation_mode != "noop"', {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment