--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="test-nsm-dummy">
+ <refmeta>
+ <refentrytitle>Testing against the NSM dummy</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>Testing against the NSM dummy</refname>
+ <refpurpose>Important things to know when testing against the NSM dummy implementation</refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Notes about the NSM dummy behaviour</title>
+ <para>
+ We do not guarantee that our NSM dummy is functional equivalent to
+ the real NSM. The dummy does however, provide the same interfaces and
+ the behaviour of all public methods used by the Node Startup
+ Controller should be very similar to that of the real NSM.
+ </para>
+ <para>
+ We implemented a few special features in the NSM dummy that make
+ testing the Node Startup Controller easier:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <literal>com.contiautomotive.NodeStateManager.LifecycleControl.CheckLucRequired</literal>
+ will alternative between returning <literal>TRUE</literal> and
+ <literal>FALSE</literal> with every call. This way we can test how the
+ Node Startup Controller behaves with and without starting the LUC simply by
+ starting it twice.
+ </listitem>
+ <listitem>
+ <literal>com.contiautomotive.NodeStateManager.LifecycleControl.SetNodeState</literal>
+ will alternative between accepting the state and not accepting the state with
+ every call. This way we can test how the Node Startup Controller handles both
+ scenarios.
+ </listitem>
+ <listitem>
+ The NSM dummy will shut down all registered shutdown consumers upon receiving
+ <literal>SIGHUP</literal>. This allows to test the shutdown sequence by running
+ the following command:
+ <programlisting>kill -s HUP $(pidof nsm-dummy)</programlisting>
+ </listitem>
+ <listitem>
+ Unlike the real NSM, which only ever shuts down using one shutdown
+ mode, the NSM dummy will shut down the consumers for all modes.
+ The modes are isolated from each other to avoid undesired
+ side-effects of this difference in implementation.
+ </listitem>
+ </itemizedlist>
+ </refsect1>
+</refentry>
+