Files
clang-p2996/libc/docs/api_test.rst
Siva Chandra Reddy 1bb6f1bb8f [libc][docs] Move links to internal developer guides out of the main side bar.
The links are all now from a "Developer Guides" page which is linked from the
main side bar.
2022-11-05 00:04:50 -07:00

21 lines
1.1 KiB
ReStructuredText

.. _api_test:
========
API Test
========
The implementation of libc-project is unique because our public C header files
are generated using information from ground truth captured in TableGen files.
Unit tests only exercise the internal C++ implementations and don't ensure the
headers were generated by the build system and that the generated header files
contain the extpected declarations and definitions. A simple solution is to have
contributors write an integration test for each individual function as a C
program; however, this would place a large burden on contributors and duplicates
some effort from the unit tests.
Instead we automate the generation of what we call as an API test. This API test
ensures that public facing symbols are visible, that the header files are
generated as expected, and that each libc function has the correct function
prototype as specified by the standards. The API test cmake rules are located in
``test/src/CMakeLists.txt``. The source file for the API test is generated in
``<build directory>/projects/libc/test/src/public_api_test.cpp``