# Tests for C++ interoperability

Each D file will be compiled and linked with other C++ sources defined in a
[`EXTRA_CPP_SOURCES`  parameter](../README.md#test-configuration).
Any diagnostic emitted must match the predefined diagnostic in the test
file, otherwise the test will fail.

All compiled executables will be run and are expected to finish successfully
with exit code 0. Any output from those binaries must be defined via the
[`RUN_OUTPUT` parameter](../README.md#test-configuration).

## Purpose

The point of these files is to test that the compiler emits valid code
which can interface to binaries generated by a C++ compilers.

## Remarks

All test will be run for a variety of C++ compilers and targets, refer to the
[GitHub CI configuration](../../.github/workflows/runnable_cxx.yml) for more details.

The [remarks for runnable tests](../runnable/README.md#remarks) apply to
this category.

Refer to [test/README.md](../README.md) for general information and the
[test guidelines](../README.md#test-coding-practices).
