//////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2010, 2026 Contributors to the Eclipse Foundation
//
// See the NOTICE file(s) distributed with this work for additional
// information regarding copyright ownership.
//
// This program and the accompanying materials are made available
// under the terms of the MIT License which is available at
// https://opensource.org/licenses/MIT
//
// SPDX-License-Identifier: MIT
//////////////////////////////////////////////////////////////////////////////

include::../_part_attributes.asciidoc[]

:leveloffset: -2

[[tools-cifsim-chapter-test-mode]]
== Test mode

indexterm:[CIF simulator,test mode]
indexterm:[test mode]

WARNING: This page is primarily intended for the developers of the CIF simulator, and not its end users.

In order to be able to perform automated testing, the _Test mode_ option (_Output_ category) can be used.
This option has the following effect:

* The visual interfaces for all <<tools-cifsim-output-chapter-index,output components>> (such as visualizers) are disabled.

* The user is no longer asked to <<tools-cifsim-termination-confirm,confirm termination>> of the simulator, if the _Ask to confirm simulator termination_ option (_Simulator_ category) is configured to let the simulator decide whether to ask the user for confirmation or terminate automatically.
By not asking for user input at the console, the automated test set can be fully automatically executed.

* It is allowed to perform <<tools-cifsim-output-chapter-realtime,real-time>> simulation without using any <<tools-cifsim-output-realtime-outcomp,real-time output components>>, allowing testing of the real-time functionality in the automated test set.

* All <<tools-cifsim-output-chapter-realtime,real-time delays>> are skipped.
By not performing unnecessary real-time delays, the automated test set executes as fast as possible.

* The <<tools-cifsim-output-svgviz-chapter-index,SVG visualizer>> operates in synchronous mode, rather than asynchronous mode.
This ensures that debug output becomes synchronous as well, and we thus get consistent output for our test cases.
This is not only useful for automated testing, but also for debugging.
