/* * 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. * * SPDX-License-Identifier: Apache-2.0 OR MIT * */ #include namespace ScriptCanvasTests { ScriptCanvasEditor::UnitTestResult VerifyReporterEditor(const ScriptCanvasEditor::Reporter& reporter) { ScriptCanvasEditor::UnitTestResult result = ScriptCanvasEditor::UnitTestResult::AssumeFailure(); AZStd::string details; if (!reporter.IsCompiled()) { details = "Graph did not compile.\n"; } else if (reporter.IsReportFinished()) { result.m_compiled = true; const auto& successes = reporter.GetSuccess(); for (const auto& success : successes) { details += "SUCCESS - "; details += success.data(); details += "\n"; } if (!reporter.IsActivated()) { details += "Graph did not activate\n"; } if (!reporter.IsDeactivated()) { // \todo track this more aggressively, graphs should deactivate details += "Graph did not deactivate\n"; } if (!reporter.IsErrorFree()) { details += "Graph had errors\n"; } const auto& failures = reporter.GetFailure(); for (const auto& failure : failures) { details += "FAILURE - "; details += failure.data(); details += "\n"; } if (!reporter.IsComplete()) { details += "Graph was not marked complete\n"; } const auto& checkpoints = reporter.GetCheckpoints(); if (checkpoints.empty()) { details += "No checkpoints or other unit test nodes found, using them can help parse graph test failures\n"; } else { AZStd::string checkpointPath = "Checkpoint Path:\n"; int i = 0; for (const auto& checkpoint : checkpoints) { checkpointPath += AZStd::string::format("%2d: %s\n", ++i, checkpoint.data()); } details += checkpointPath.data(); } if (reporter.IsComplete() && failures.empty()) { result.m_completed = true; result.m_consoleOutput = "SUCCEEDED, COMPLETE!\n"; result.m_consoleOutput += details; return result; } } else { result.m_compiled = true; details += "Graph report did not finish\n"; } result.m_consoleOutput = "FAILED!\n"; result.m_consoleOutput += details; return result; } }