TestImpactConsoleTestSequenceEventHandler.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project. For complete copyright and license terms please see the LICENSE at the root of this distribution.
  3. *
  4. * SPDX-License-Identifier: Apache-2.0 OR MIT
  5. *
  6. */
  7. #include <TestImpactFramework/TestImpactTestSequence.h>
  8. #include <TestImpactFramework/TestImpactClientTestSelection.h>
  9. #include <TestImpactFramework/TestImpactClientFailureReport.h>
  10. #include <TestImpactFramework/TestImpactClientTestRun.h>
  11. #include <AzCore/std/chrono/chrono.h>
  12. #include <AzCore/std/string/string.h>
  13. #include <AzCore/std/containers/unordered_set.h>
  14. #pragma once
  15. namespace TestImpact
  16. {
  17. namespace Console
  18. {
  19. //! Event handler for all test sequence types.
  20. class TestSequenceEventHandler
  21. {
  22. public:
  23. explicit TestSequenceEventHandler(SuiteType suiteFilter);
  24. //! TestSequenceStartCallback.
  25. void operator()(Client::TestRunSelection&& selectedTests);
  26. //! ImpactAnalysisTestSequenceStartCallback.
  27. void operator()(
  28. Client::TestRunSelection&& selectedTests,
  29. AZStd::vector<AZStd::string>&& discardedTests,
  30. AZStd::vector<AZStd::string>&& draftedTests);
  31. //! SafeImpactAnalysisTestSequenceStartCallback.
  32. void operator()(
  33. Client::TestRunSelection&& selectedTests,
  34. Client::TestRunSelection&& discardedTests,
  35. AZStd::vector<AZStd::string>&& draftedTests);
  36. //! TestSequenceCompleteCallback.
  37. void operator()(
  38. Client::SequenceFailure&& failureReport,
  39. AZStd::chrono::milliseconds duration);
  40. //! SafeTestSequenceCompleteCallback.
  41. void operator()(
  42. Client::SequenceFailure&& selectedFailureReport,
  43. Client::SequenceFailure&& discardedFailureReport,
  44. AZStd::chrono::milliseconds selectedDuration,
  45. AZStd::chrono::milliseconds discaredDuration);
  46. //! TestRunCompleteCallback.
  47. void operator()(Client::TestRun&& test);
  48. private:
  49. void ClearState();
  50. SuiteType m_suiteFilter;
  51. size_t m_numTests = 0;
  52. size_t m_numTestsComplete = 0;
  53. };
  54. } // namespace Console
  55. } // namespace TestImpact