osbase/bootparam: make test external

The bootparam package was the only package with this edge case:

1. It has both an internal and an external test.
2. The external test depends on a separate package, which depends on the
   package under test.

The core of rules_go has a 225 line function to handle this edge case:
https://github.com/bazel-contrib/rules_go/blob/v0.55.1/go/private/rules/test.bzl#L519

However, the edge case is not handled by the gopackagesdriver.
Additionally, the separate package (bootparam/ref) uses cgo, which
causes additional problems. This means that the Go VS Code extension
always reports 8 warnings in the bootparam and ref packages.

Instead of fixing this edge case in gopackagesdriver, it's easier to
make bootparam package not have this special case by making the internal
test external. This removes all the warnings.

Change-Id: Ia0aa4d2b62cdeaaec9983f3ecf4d229ea49358b2
Reviewed-on: https://review.monogon.dev/c/monogon/+/4387
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
Tested-by: Jenkins CI
2 files changed
tree: 118a1c9b69fccae9be2b2de0a00dc65aa886fafb
  1. .github/
  2. .vscode/
  3. build/
  4. cloud/
  5. go/
  6. intellij/
  7. metropolis/
  8. osbase/
  9. third_party/
  10. tools/
  11. version/
  12. .bazelignore
  13. .bazelproject
  14. .bazelrc
  15. .bazelrc.ci
  16. .bazelrc.sandboxroot
  17. .bazelversion
  18. .git-ignore-revs
  19. .gitignore
  20. BUILD.bazel
  21. CODING_STANDARDS.md
  22. go.mod
  23. go.sum
  24. LICENSE
  25. MODULE.bazel
  26. MODULE.bazel.lock
  27. README.md
  28. SETUP.md
  29. shell.nix
  30. WORKSPACE
README.md

Monogon Monorepo

This is the main repository containing the source code for the Monogon Platform.

This is pre-release software - take a look, and check back later! In the meantime, join us on Matrix (#monogon-os-community:matrix.org) or Discord.

Environment

Our build environment is self-contained and requires only minimal host dependencies:

  • A Linux machine or VM.
  • Bazelisk >= v1.15.0 (or a working Nix environment).
  • A reasonably recent kernel with user namespaces enabled.
  • Working KVM with access to /dev/kvm (if you want to run tests).

Our docs assume that Bazelisk is available as bazel on your PATH.

Refer to SETUP.md for detailed instructions.

Monogon OS

The source code lives in //metropolis (Metropolis is the codename of Monogon OS).

See the //metropolis/README.md for a developer quick start guide, or see the Monogon OS Handbook for user documentation.