Core Go rules tests
===================

This contains tests of the core go rules.

Contents
--------

.. Child list start

* `Misc configuration transition tests <transition/README.rst>`_
* `Basic go_library functionality <go_library/README.rst>`_
* `output_groups functionality <output_groups/README.rst>`_
* `Basic -buildmode=plugin functionality <go_plugin/README.rst>`_
* `go_bazel_test macro functionality <go_bazel_test/README.rst>`_
* `Core Go rules tests <nogo/README.rst>`_
* `go_proto_library importmap <go_proto_library_importmap/README.rst>`_
* `Cross compilation <cross/README.rst>`_
* `Basic go_proto_library functionality <go_proto_library/README.rst>`_
* `c-archive / c-shared linkmodes <c_linkmodes/README.rst>`_
* `Basic go_test functionality <go_test/README.rst>`_
* `.. _#2067: https://github.com/bazelbuild/rules_go/issues/2067 <cgo/README.rst>`_
* `Runfiles functionality <runfiles/README.rst>`_
* `go_download_sdk <go_download_sdk/README.rst>`_
* `go_embed_data <go_embed_data/README.rst>`_
* `race instrumentation <race/README.rst>`_
* `stdlib functionality <stdlib/README.rst>`_
* `Basic go_binary functionality <go_binary/README.rst>`_
* `Starlark unit tests <starlark/README.rst>`_
* `.. _#2127: https://github.com/bazelbuild/rules_go/issues/2127 <coverage/README.rst>`_
* `Import maps <importmap/README.rst>`_
* `Basic go_path functionality <go_path/README.rst>`_

.. Child list end

