README.md
1# Gazelle test cases
2
3This directory contains a suite of test cases for the Skylark language plugin
4for Gazelle.
5
6Please note that there are no `BUILD` or `BUILD.bazel` files in subdirs, instead
7there are `BUILD.in` and `BUILD.out` describing what the `BUILD` should look
8like initially and what the `BUILD` file should look like after the run. These
9names are special because they are not recognized by Bazel as a proper `BUILD`
10file, and therefore are included in the data dependency by the recursive data
11glob in `//gazelle:go_default_test`. If you would like to include any extremely
12complicated tests that contain proper `BUILD` files you will need to manually
13add them to the `//gazelle:go_default_test` target's `data` section.
14
15## `simple`
16
17Simple is a base test case that was used to validate the parser.
18
19## `nobuildfiles`
20
21A test just like `simple` that has no `BUILD` files at the beginning.
22
23## `import`
24
25Import is a test case that imports a `.bzl` from the same directory.
26
27## `multidir`
28
29Multidir is a test that has a `.bzl` that imports from a different dirrectory.
30
31## `tests`
32
33Using the skylib as an example, this test has `.bzl` files that end in
34`_tests.bzl` which are `load`ed into `BUILD` files and never imported by
35another repo.
36
37## `private`
38
39Using the skylib as an example, this test has `.bzl` files that live in a
40directory called `private` which is used to indicate that they are repo private.
41Note that this is distict from the expectations of go's `internal` where the
42relative position in the hierarchy determines the visibility.
43
44## `defaultvisibility`
45
46If the package declares a `default_visibility` the generated `bzl_library`
47should not set its own `visibility`.
48
49## `external`
50
51This test demonstrates that if you load from another repo, it is able to
52generate a `deps` entry for the dependency.
53
54## `empty`
55
56Gazelle has the ability to remove old and unused targets. Test that.
57