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