{{fbdoc item="title" value="The FreeBASIC test suite"}}

The test suite is used to catch compiler, runtime, library, and target
regressions. It is also used by the packaging scripts to prove that an installed
compiler can compile and run basic programs from a clean layout.

{{fbdoc item="subsect" value="Common make targets"}}

%%(sh)
make sanity
make quick-test
make full-test
make compiler-smoke
make bootstrap-emit-test
%%

Use the smaller targets while developing a focused change and the broader suite
before release or after changes to parser, code generation, runtime startup,
string handling, graphics, sound, or cross-target support.

{{fbdoc item="subsect" value="Package and platform smoke tests"}}

The ##build_scripts/## directory contains installer and platform smoke tests for
supported package families and target ports. Those scripts are the preferred way
to test an installed package because they catch missing files, wrong paths, wrong
compiler names, and packaging-only problems that an in-tree build can hide.

Graphics and sound work should be tested explicitly on the affected platform.
SCREEN modes, SCREENSET behavior, input scaling, audio playback, and backend
startup/shutdown have enough platform-specific behavior that compiler-only tests
are not enough.
