tree 231c814c66e65371c5c1ce2727d3a2874520fdcd
parent e301b7460842c990c0147edd1bc55047090a2240
author Eric Rahm <erahm@google.com> 1751408035 +0000
committer Eric Rahm <ericrahm@gmail.com> 1751945226 -0700

Add C++ golden file test suite

This change introduces a robust, granular testing infrastructure for the C++ backend using golden files. This test suite serves as a critical safety net to enable safe and efficient refactoring of the code generator in the future.

By comparing generated code against a set of "golden" (known-good) header files, we can quickly detect any unintended changes or regressions.

Key Features:

*   **Granular Tests:** Each golden file comparison is a standalone `py_test` target, allowing for parallel execution and precise failure identification.
*   **`cpp_golden_test` Macro:** A new Starlark macro, `cpp_golden_test`, has been added to `compiler/back_end/cpp/build_defs.bzl`. This simplifies adding new golden tests by abstracting away the underlying `py_test` implementation details.
*   **Debugging:** To simplify the diagnosis of regressions, test failures produce a `diff` of the generated file against its golden counterpart.
*   **Full Coverage:** The suite includes tests for all `.emb` files in the `testdata` directory, including those with complex dependencies and imports.

Usage:

**To run all C++ golden tests:**
```
bazel test //compiler/back_end/cpp/... --test_tag_filters=golden
```

**To run a single golden test:**
```
bazel test //compiler/back_end/cpp:bits_golden_test
```

**To add a new golden test:**
1.  Add your `.emb` file to `testdata/`.
2.  Generate the corresponding golden `.emb.h` file (e.g., by temporarily modifying and running the `generate_golden_files.sh` script via a `sh_binary`).
3.  Copy the new golden file into `testdata/golden_cpp/`.
4.  Add a `cpp_golden_test()` rule to `compiler/back_end/cpp/BUILD`.
