[test] introduce sh_wrapper rule

sh_wrapper will be used to compose sh_wrapper_tests that are
multiple layers of wrapped commands.

check_exit_code.sh will be the simple wrapping
layer that verifies exit status, and is useful for
expect-fail tests.

These will be used to test the various rsproxy-related sh_wrappers.

Bug: 390427892
Change-Id: I91589977113a022e93baeebe6e4385479bb36bb4
Reviewed-on: https://fuchsia-review.googlesource.com/c/rsclient/+/1365975
Reviewed-by: David Turner <digit@google.com>
Commit-Queue: David Fang <fangism@google.com>
9 files changed
tree: 1b8b477de59c94d649d28b4d163ea5381414cce8
  1. cmd/
  2. internal/
  3. scripts/
  4. tools/
  5. .bazelversion
  6. .gitignore
  7. AUTHORS
  8. BUILD.bazel
  9. CONTRIBUTING.md
  10. GEMINI.md
  11. go.mod
  12. go.sum
  13. LICENSE
  14. MODULE.bazel
  15. OWNERS
  16. PATENTS
  17. README.md
  18. version.bzl
README.md

ResultStore Client Tools

The rsclient repository contains tools that support the use of ResultStore services and API.

rsproxy acts as a bridge between build tools and the ResultStore service.

The first supported build tool is Fuchsia's fork of ninja.

Developing from source

Prerequisites

  • rsclient builds with Bazel. We recommend using Bazelisk to use the version of Bazel currently supported by this code base.

rsclient is supported for Linux, and is yet untested on other platforms.

Setup

Before working with the code base, we recommend installing the precommit hook once per git clone with:

./scripts/install_precommit.sh

This runs a variety of checks and automatic regeneration steps for you before committing local changes.

Building

To build everything:

$ bazelisk build ...

Testing

To run tests:

$ bazelisk test ...

Install

Versioning

Not yet applicable.

Releases

Not yet applicable.