Ein typischer Einstellungstest, der mir neulich begegnet ist: Von einem Producer werden Messwerte (Sekunden) mit einem Timestamp des Ist-Zeitpunktes erzeugt. Diese werden von einem Sender/Empfänger Paar über Sockets an einen Consumer übertragen.
Dort werden sie in übersichtlicher Form dargestellt.
Development Guidelines:
- Die Verwendung von C++ Standards, C11 und neuer
- Die Implementierung soll eine Linux und Windows Plattform abdecken
- Das Build System für die gesamte Anwendung ist CMake
- Die gesamte Anwendung verfügt über Unit Tests die mit google test zu erstellen sind
- Die Versionsverwaltung git ist zu verwenden
- Eine Dokumentation des Anwendungsentwurfs ist verfügbar
- Die Übertragung kann von Sockets auf andere Mechanismen (Shared File) umgestellt werden. Der Impact auf die Anwendung soll begrenzt sein.
Design:
Der Testfall wurde als Statemachine umgesetzt. Aus den Anforderungen lässt sich eine Klassenhierarchy abeiten: ‚producer‘ und ‚consumer‘ von ‚basicvalues‘, die mittels des ‚transmitters‘ übertragen werden. ‚transmitter‘ ist eine abstrakte Klasse, um flexibel bei der Übertragungsart zu bleiben, die konkrete Umsetzung im Testfall nutzt TCP-Sockets. Für diese werden zur Sicherung der Plattformunabhängigkeit die Wrapperklassen ‚tcpsocket´ und ’sockwrp‘ verrwendetn, die Implementierung des plattformspezifischen Netzwerkcodes findet sich in den Klassen ’sockwin‘ und ’socklin‘.
- Sprache: c++
- Plattform: Windows, Linux
- Quellcode: opensource/valtrans
- Status: Demoversion