.. _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``
