2
0
Fork 0
mirror of https://github.com/bazelbuild/bazel-skylib synced 2024-12-01 13:15:24 +00:00
bazel-skylib/gazelle/bzl/testdata/README.md
Ivo List bc97abb33e
Move bzl ext (#265)
* 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>
2020-08-20 13:14:55 -04:00

57 lines
1.9 KiB
Markdown

# 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.