aboutsummaryrefslogtreecommitdiff
path: root/libc/docs/uefi/testing.rst
blob: 0c484f093d6b6503b6e3515165cd5366b5fb32fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.. _libc_uefi_testing:

==========================
Testing the UEFI C library
==========================

.. contents:: Table of Contents
  :depth: 4
  :local:

Testing infrastructure
======================

The LLVM C library supports different kinds of :ref:`tests <build_and_test>`
depending on the build configuration. The UEFI target is considered a full build
and therefore provides all of its own utilities to build and run the generated
tests. Currently UEFI supports two kinds of tests.

#. **Hermetic tests** - These are unit tests built with a test suite similar to
   Google's ``gtest`` infrastructure. These use the same infrastructure as unit
   tests except that the entire environment is self-hosted.

#. **Integration tests** - These are lightweight tests that simply call a
   ``main`` function and checks if it returns non-zero.

The UEFI target uses the same testing infrastructure as the other supported
``libc`` targets. We do this by treating UEFI as a standard hosted environment
capable of launching a ``main`` function. This only requires us to run the
tests in a UEFI environment.