VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfMultiBackendTestRunner.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2024 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
10 #include <vlutil/vlTime.h>
11 #include <set>
13 #include <memory>
14 #include <QEventLoop>
15 
16 class DtSimulationAddress;
18 class DtSimMessage;
20 
22 {
23 public:
24 
25  enum DtTickFailureType { Default, DtPredicateBreak, DtExecutionStateFailure, DtSpecificTimeoutFailure, DtGeneralTimeoutFailure };
26  DtVrfMultiBackendTestRunner(std::shared_ptr<DtVrfRemoteController> controller, DtTime ioPeriod, DtTime backendTimeout, DtTime scenarioLoadTimeout, DtTime scenarioRunTimeout, DtTime backendShutdownTimeout, std::ostream& ostream = std::cout);
27 
28  void init(const std::set<DtSimulationAddress>& backendAddresses, DtConnectionSettings* connection, const DtApplicationSet& application, const std::string& scenario);
29  void reset();
30  void run();
31 
32  void setTestLog(const std::string& testLog);
33  static void saveTestResults(int status, const std::string& testLog, const std::string& scenario);
34 protected:
35  void tick(std::function<bool()> predicate, const std::string& predicateErrorString, const double& specificTimeout);
36 
37  bool areBackendsStarted() const;
38  bool haveBackendsLoadedScenario() const;
39  void setTickState(const std::string& predicateSpecificErrorString);
40 
41  static void scenarioLoadedCallback(const DtSimulationAddress& simAddr, void* usr);
42  void scenarioLoaded(const DtSimulationAddress& simAddr);
43 
44  static void testResultMessageReceivedCallback(DtSimMessage* msg, void* usr);
45  void testResultMessageReceived(DtSimMessage* msg);
46  std::string testLogFile() const;
47  std::string scenarioFilename() const;
48 protected:
49  std::shared_ptr<DtVrfRemoteController> myRemoteController;
50 
56 
58  std::set<DtSimulationAddress> myBackendAddresses;
61  std::string myScenarioFile;
62 
69 
71  QEventLoop myEventLoop;
72  std::unique_ptr<DtApplicationExecutionManager> myExecutionManager;
73  std::ostream& myDefaultOutput;
74  std::string myTestLogFile;
75  std::set<DtSimulationAddress> myBackendsLoaded;
76 
77 };
78 
std::unique_ptr< DtApplicationExecutionManager > myExecutionManager
Definition: vrfMultiBackendTestRunner.h:72
DtTime myOverallTimeout
Definition: vrfMultiBackendTestRunner.h:51
std::ostream & myDefaultOutput
Definition: vrfMultiBackendTestRunner.h:73
DtTime myBackendStartupTimeout
Definition: vrfMultiBackendTestRunner.h:52
std::shared_ptr< DtVrfRemoteController > myRemoteController
Definition: vrfMultiBackendTestRunner.h:49
DtTime myIoPeriod
Definition: vrfMultiBackendTestRunner.h:57
std::string myTestLogFile
Definition: vrfMultiBackendTestRunner.h:74
bool myShouldExit
Definition: vrfMultiBackendTestRunner.h:67
std::set< DtSimulationAddress > myBackendsLoaded
Definition: vrfMultiBackendTestRunner.h:75
Base class for all Launcher settings objects.
Definition: connectionSettings.h:64
int myScenarioLoadedCount
Definition: vrfMultiBackendTestRunner.h:66
DtApplicationSet myApplicationSettings
Definition: vrfMultiBackendTestRunner.h:60
Definition: vrfMultiBackendTestRunner.h:21
DtConnectionSettings * myConnectionSettings
Definition: vrfMultiBackendTestRunner.h:59
The main class for the remote control interface to VR-Forces. Instantiating this class allows the sen...
Definition: vrfRemoteController.h:206
#define DT_DLL_vrfqtprocesscontrol
This file is used to determine how to build.
Definition: vrfQtProcessControlDefines.h:23
File: simMsg.h.
Definition: simMessage.h:35
The class that contains the applications to run and any additional information associated with the ap...
Definition: applicationSet.h:26
int myTestResultStatus
Definition: vrfMultiBackendTestRunner.h:64
DtString myTestResultReason
Definition: vrfMultiBackendTestRunner.h:65
std::set< DtSimulationAddress > myBackendAddresses
Definition: vrfMultiBackendTestRunner.h:58
DtTime myScenarioLoadTimeout
Definition: vrfMultiBackendTestRunner.h:53
DtTickFailureType
Definition: vrfMultiBackendTestRunner.h:25
DtTime myScenarioRunTimeout
Definition: vrfMultiBackendTestRunner.h:54
std::string myScenarioFile
Definition: vrfMultiBackendTestRunner.h:61
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtTickFailureType myTickState
Definition: vrfMultiBackendTestRunner.h:68
DtTime myBackendShutdownTimeout
Definition: vrfMultiBackendTestRunner.h:55
DtClock myTimeoutTimer
Definition: vrfMultiBackendTestRunner.h:70
bool myReceivedTestResult
Definition: vrfMultiBackendTestRunner.h:63
QEventLoop myEventLoop
Definition: vrfMultiBackendTestRunner.h:71

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)