fix(ivy): change symbol-extractor to use .accept rather than -—define UPDATE_GOLDEN=1 (#22913)

Using `-—define` causes bazel to bust the cache which means that doing
`bazel test target` followed by `bazel run -—define UPDATE_GOLDEN=1 target` will
cause caches to be invalidated and house full rebuild.

PR Close #22913
This commit is contained in:
Miško Hevery 2018-03-21 10:55:14 -07:00 committed by Matias Niemelä
parent c84817970e
commit bfe35dac85
3 changed files with 17 additions and 11 deletions

View File

@ -5,7 +5,6 @@ load("@build_bazel_rules_nodejs//:defs.bzl", "jasmine_node_test")
ts_library(
name = "lib",
testonly = 1,
srcs = glob(
["**/*.ts"],
exclude = [

View File

@ -10,14 +10,9 @@ import * as fs from 'fs';
import * as path from 'path';
import {SymbolExtractor} from './symbol_extractor';
// These keys are arbitrary and local to this test.
const update_var = 'UPDATE_GOLDEN';
const update_val = 1;
if (require.main === module) {
const doUpdate = process.env[update_var] == update_val;
const args = process.argv.slice(2) as[string, string];
process.exitCode = main(args, doUpdate) ? 0 : 1;
process.exitCode = main(args) ? 0 : 1;
}
/**
@ -27,9 +22,10 @@ if (require.main === module) {
* cli javascriptFilePath.js goldenFilePath.json
* ```
*/
function main(argv: [string, string], doUpdate: boolean): boolean {
function main(argv: [string, string, string] | [string, string]): boolean {
const javascriptFilePath = require.resolve(argv[0]);
const goldenFilePath = require.resolve(argv[1]);
const doUpdate = argv[2] == '--accept';
const javascriptContent = fs.readFileSync(javascriptFilePath).toString();
const goldenContent = fs.readFileSync(goldenFilePath).toString();
@ -46,8 +42,7 @@ function main(argv: [string, string], doUpdate: boolean): boolean {
if (!passed) {
console.error(`TEST FAILED!`);
console.error(` To update the golden file run: `);
console.error(
` bazel run --define ${update_var}=${update_val} ${process.env['BAZEL_TARGET']}`);
console.error(` bazel run ${process.env['BAZEL_TARGET']}.accept`);
}
}
return passed;

View File

@ -6,9 +6,13 @@
"""This test verifies that a set of top level symbols from a javascript file match a gold file.
"""
load("@build_bazel_rules_nodejs//:defs.bzl", "nodejs_test")
# This does a deep import under //internal because of not wanting the wrapper macro
# because it introduces an extra target_bin target.
load("@build_bazel_rules_nodejs//internal/node:node.bzl", "nodejs_test", "nodejs_binary")
def js_expected_symbol_test(name, src, golden, **kwargs):
"""This test verifies that a set of top level symbols from a javascript file match a gold file.
"""
all_data = [src, golden]
all_data += [Label("//tools/symbol-extractor:lib")]
entry_point = "angular/tools/symbol-extractor/cli.js"
@ -20,3 +24,11 @@ def js_expected_symbol_test(name, src, golden, **kwargs):
templated_args = ["$(location %s)" % src, "$(location %s)" % golden],
**kwargs
)
nodejs_binary(
name = name + '.accept',
data = all_data,
entry_point = entry_point,
templated_args = ["$(location %s)" % src, "$(location %s)" % golden, '--accept'],
**kwargs
)