blob: e7b8d06a08c72b1d198cdff2ebce9b7fc687e5a3 [file] [log] [blame]
# Copyright 2020 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Defines a golden file test to be executed during the build. Fails
# if `golden`'s contents aren't equal to `current`'s.
#
# For more complex golden testing, see //build/testing/golden_test.gni.
#
# Parameters
# golden (required)
# Path to the canonical file.
#
# current (required)
# Path to the file under test.
#
# warn_on_changes (default: false)
# If true, mismatches are treated as warnings rather than errors.
template("golden_file") {
assert(defined(invoker.golden), "golden is a required parameter")
assert(defined(invoker.current), "current is a required parameter")
action(target_name) {
forward_variables_from(invoker, "*")
script = "//build/testing/verify_golden_file.py"
stamp_file = "$target_gen_dir/$target_name.verified"
inputs = [
current,
golden,
]
outputs = [ stamp_file ]
args = [
"--golden",
rebase_path(golden),
"--current",
rebase_path(current),
"--stamp",
rebase_path(stamp_file),
]
warn_on_changes =
defined(invoker.warn_on_changes) && invoker.warn_on_changes
if (warn_on_changes) {
args += [ "--warn" ]
}
}
}