bc97abb33e
* Move Gazelle extension to //gazelle/bzl and change package name This fixes an issue with importing bazel-skylib into google3. Currently, Glaze (internal Go build file generator) attempts to generate a target (//gazelle:gazelle) that conflicts with one that's already declared here. I think the right solution is actually to move the package into a subdirectory. In the future (bazelbuild/bazel-gazelle#5), Gazelle's Go extension will generate target names similar to what Glaze does, so the same conflict will happen in open source. I think it's also logical to have a directory of packages in case more need to be added in the future, and for the extension to have a package name matching the language it works with. This is an incompatible change, but the //gazelle directory isn't part of a tagged release yet, so hopefully it won't break anyone. * fix runfiles access in test * Fix gazelle package names. Co-authored-by: Jay Conrod <jayconrod@google.com> |
||
---|---|---|
.. | ||
defaultvisibility | ||
empty | ||
external | ||
import | ||
multidir | ||
nobuildfiles | ||
private | ||
simple | ||
tests | ||
README.md |
Gazelle test cases
This directory contains a suite of test cases for the Skylark language plugin for Gazelle.
Please note that there are no BUILD
or BUILD.bazel
files in subdirs, insted
there are BUILD.in
and BUILD.out
describing what the BUILD
should look
like initially and what the BUILD
file should look like after the run. These
names are special because they are not recognized by Bazel as a proper BUILD
file, and therefore are included in the data dependency by the recursive data
glob in //gazelle:go_default_test
. If you would like to include any extremely
complicated tests that contain proper BUILD
files you will need to manually
add them to the //gazelle:go_default_test
target's data
section.
simple
Simple is a base test case that was used to validate the parser.
nobuildfiles
A test just like simple
that has no BUILD
files at the beginning.
import
Import is a test case that imports a .bzl
from the same directory.
multidir
Multidir is a test that has a .bzl
that imports from a different dirrectory.
tests
Using the skylib as an example, this test has .bzl
files that end in
_tests.bzl
which are load
ed into BUILD
files and never imported by
another repo.
private
Using the skylib as an example, this test has .bzl
files that live in a
directory called private
which is used to indicate that they are repo private.
Note that this is distict from the expectations of go's internal
where the
relative position in the hierarchy determines the visibility.
defaultvisibility
If the package declares a default_visibility
the generated bzl_library
should not set its own visibility
.
external
This test demonstrates that if you load from another repo, it is able to
generate a deps
entry for the dependency.
empty
Gazelle has the ability to remove old and unused targets. Test that.