Integrating latest 47acbe8
This commit is contained in:
@@ -37,29 +37,29 @@
|
||||
#include <AzToolsFramework/ToolsComponents/EditorComponentBase.h>
|
||||
#include <AzToolsFramework/AssetBrowser/AssetBrowserEntry.h>
|
||||
|
||||
#include <Data/Data.h>
|
||||
#include <Editor/GraphCanvas/GraphCanvasEditorNotificationBusId.h>
|
||||
#include <Editor/QtMetaTypes.h>
|
||||
#include <Editor/Settings.h>
|
||||
#include <Editor/Translation/TranslationHelper.h>
|
||||
#include <Editor/View/Widgets/PropertyGridBus.h>
|
||||
|
||||
#include <Editor/Assets/ScriptCanvasAssetHelpers.h>
|
||||
#include <Editor/GraphCanvas/GraphCanvasEditorNotificationBusId.h>
|
||||
#include <Editor/Include/ScriptCanvas/GraphCanvas/NodeDescriptorBus.h>
|
||||
#include <Editor/Model/UnitTestBrowserFilterModel.h>
|
||||
|
||||
#include <ScriptCanvas/Data/DataRegistry.h>
|
||||
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
|
||||
#include <ScriptCanvas/Assets/ScriptCanvasAssetHandler.h>
|
||||
#include <ScriptCanvas/GraphCanvas/NodeDescriptorBus.h>
|
||||
|
||||
#include <ScriptCanvas/Bus/ScriptCanvasExecutionBus.h>
|
||||
#include <ScriptCanvas/Bus/UnitTestVerificationBus.h>
|
||||
|
||||
#include <LyViewPaneNames.h>
|
||||
|
||||
#include <Editor/Translation/TranslationHelper.h>
|
||||
#include <Editor/View/Widgets/PropertyGridBus.h>
|
||||
#include <Editor/View/Widgets/UnitTestPanel/UnitTestDockWidget.h>
|
||||
#include <Editor/View/Widgets/UnitTestPanel/ui_UnitTestDockWidget.h>
|
||||
#include <Editor/View/Widgets/UnitTestPanel/moc_UnitTestDockWidget.cpp>
|
||||
|
||||
#include <Data/Data.h>
|
||||
|
||||
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
|
||||
#include <ScriptCanvas/Assets/ScriptCanvasAssetHandler.h>
|
||||
#include <ScriptCanvas/Bus/ScriptCanvasExecutionBus.h>
|
||||
#include <ScriptCanvas/Bus/UnitTestVerificationBus.h>
|
||||
#include <ScriptCanvas/Data/DataRegistry.h>
|
||||
#include <ScriptCanvas/GraphCanvas/NodeDescriptorBus.h>
|
||||
|
||||
#include <LyViewPaneNames.h>
|
||||
|
||||
namespace ScriptCanvasEditor
|
||||
{
|
||||
@@ -352,6 +352,38 @@ namespace ScriptCanvasEditor
|
||||
}
|
||||
}
|
||||
|
||||
QCheckBox* UnitTestDockWidget::GetEnabledCheckBox(ScriptCanvas::ExecutionMode mode)
|
||||
{
|
||||
switch (mode)
|
||||
{
|
||||
case ScriptCanvas::ExecutionMode::Interpreted:
|
||||
return m_ui->executionInterpretedEnabled;
|
||||
|
||||
case ScriptCanvas::ExecutionMode::Native:
|
||||
return m_ui->executionNativeEnabled;
|
||||
|
||||
default:
|
||||
AZ_Assert(false, "Unsupported type");
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
QLabel* UnitTestDockWidget::GetStatusLabel(ScriptCanvas::ExecutionMode mode)
|
||||
{
|
||||
switch (mode)
|
||||
{
|
||||
case ScriptCanvas::ExecutionMode::Interpreted:
|
||||
return m_ui->labelInterpretedStatus;
|
||||
|
||||
case ScriptCanvas::ExecutionMode::Native:
|
||||
return m_ui->labelNativeStatus;
|
||||
|
||||
default:
|
||||
AZ_Assert(false, "Unsupported type");
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void UnitTestDockWidget::ClearSearchFilter()
|
||||
{
|
||||
{
|
||||
@@ -423,73 +455,192 @@ namespace ScriptCanvasEditor
|
||||
}
|
||||
}
|
||||
|
||||
QString ModeToString(ScriptCanvas::ExecutionMode mode)
|
||||
{
|
||||
using namespace ScriptCanvas;
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case ExecutionMode::Interpreted:
|
||||
return QString("Interpreted");
|
||||
|
||||
case ExecutionMode::Native:
|
||||
return QString("Native");
|
||||
|
||||
default:
|
||||
return QString("<invalid>");
|
||||
}
|
||||
}
|
||||
|
||||
bool UnitTestDockWidget::IsModeEnabled(ScriptCanvas::ExecutionMode mode)
|
||||
{
|
||||
return GetEnabledCheckBox(mode)->checkState() == Qt::Checked;
|
||||
}
|
||||
|
||||
void UnitTestDockWidget::RunTests(const AZStd::vector<AZ::Uuid>& scriptUuids)
|
||||
{
|
||||
m_ui->consoleOutput->hide();
|
||||
AZStd::vector<ScriptCanvas::ExecutionMode> activeModes;
|
||||
|
||||
m_filter->FlushLatestTestRun();
|
||||
m_filter->TestsStart();
|
||||
|
||||
int successCount = 0;
|
||||
int failureCount = 0;
|
||||
|
||||
m_ui->label->setText(QString("Starting %1 tests.").arg(scriptUuids.size()));
|
||||
|
||||
for (const AZ::Uuid& scriptUuid : scriptUuids)
|
||||
auto executionModes = { ExecutionMode::Interpreted, ExecutionMode::Native };
|
||||
for (auto mode : executionModes)
|
||||
{
|
||||
const SourceAssetBrowserEntry* sourceBrowserEntry = SourceAssetBrowserEntry::GetSourceByUuid(scriptUuid);
|
||||
|
||||
if (sourceBrowserEntry == nullptr)
|
||||
if (IsModeEnabled(mode))
|
||||
{
|
||||
++failureCount;
|
||||
activeModes.push_back(mode);
|
||||
}
|
||||
else
|
||||
{
|
||||
AZStd::string scriptAbsolutePath = sourceBrowserEntry->GetFullPath();
|
||||
GetStatusLabel(mode)->setText(ModeToString(mode) + QString(" not running"));
|
||||
}
|
||||
}
|
||||
|
||||
if (activeModes.empty() || scriptUuids.empty())
|
||||
{
|
||||
m_ui->consoleOutput->hide();
|
||||
m_filter->FlushLatestTestRun();
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
AZ::SystemTickBus::Handler::BusConnect();
|
||||
|
||||
Reporter reporter;
|
||||
m_ui->label->setText(QString("Starting %1 tests.").arg(scriptUuids.size()));
|
||||
m_filter->FlushLatestTestRun();
|
||||
m_filter->TestsStart();
|
||||
m_ui->consoleOutput->hide();
|
||||
|
||||
UnitTestWidgetNotificationBus::Broadcast(&UnitTestWidgetNotifications::OnTestStart, scriptUuid);
|
||||
for (size_t modeIndex = 0; modeIndex < activeModes.size(); ++modeIndex)
|
||||
{
|
||||
auto mode = activeModes[modeIndex];
|
||||
|
||||
ScriptCanvasExecutionBus::BroadcastResult(reporter, &ScriptCanvasExecutionRequests::RunGraph, scriptAbsolutePath);
|
||||
GetStatusLabel(mode)->setText(QString("Starting %1 tests.").arg(scriptUuids.size()));
|
||||
|
||||
for (const AZ::Uuid& scriptUuid : scriptUuids)
|
||||
{
|
||||
const SourceAssetBrowserEntry* sourceBrowserEntry = SourceAssetBrowserEntry::GetSourceByUuid(scriptUuid);
|
||||
if (sourceBrowserEntry == nullptr)
|
||||
{
|
||||
AZ_Error("Script Canvas", false, "The source asset file with ID: %s was not found", scriptUuid.ToString<AZStd::string>().c_str());
|
||||
continue;
|
||||
}
|
||||
|
||||
UnitTestResult testResult;
|
||||
UnitTestVerificationBus::BroadcastResult(testResult, &UnitTestVerificationRequests::Verify, reporter);
|
||||
|
||||
UnitTestWidgetNotificationBus::Broadcast(&UnitTestWidgetNotifications::OnTestResult, scriptUuid, testResult);
|
||||
|
||||
if (testResult.m_success)
|
||||
{
|
||||
++successCount;
|
||||
AZ::Data::AssetInfo assetInfo;
|
||||
if (AssetHelpers::GetAssetInfo(sourceBrowserEntry->GetFullPath(), assetInfo))
|
||||
{
|
||||
auto asset = AZ::Data::AssetManager::Instance().GetAsset(assetInfo.m_assetId, azrtti_typeid<ScriptCanvasAsset>(), AZ::Data::AssetLoadBehavior::PreLoad);
|
||||
asset.BlockUntilLoadComplete();
|
||||
if (asset.IsReady())
|
||||
{
|
||||
RunTestGraph(asset, mode);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
++failureCount;
|
||||
}
|
||||
}
|
||||
|
||||
QString executionMessage = QString("Executed %1 out of %2 test(s) - ").arg(successCount + failureCount).arg(scriptUuids.size());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (successCount > 0)
|
||||
{
|
||||
executionMessage += QString("%1 passed").arg(successCount);
|
||||
}
|
||||
void UnitTestDockWidget::OnTestsComplete()
|
||||
{
|
||||
AZ::SystemTickBus::Handler::BusDisconnect();
|
||||
|
||||
if (successCount > 0 && failureCount > 0)
|
||||
{
|
||||
executionMessage += ", ";
|
||||
}
|
||||
QString testCompletionString;
|
||||
|
||||
if (failureCount > 0)
|
||||
{
|
||||
executionMessage += QString("%1 failed").arg(failureCount);
|
||||
}
|
||||
const int nativeMode = static_cast<int>(ExecutionMode::Native);
|
||||
if (m_testMetrics[nativeMode].m_graphsTested > 0)
|
||||
{
|
||||
testCompletionString = ModeToString(ExecutionMode::Native);
|
||||
testCompletionString += QString(": ");
|
||||
|
||||
executionMessage += ".";
|
||||
testCompletionString += QString("Attempted %1 test(s) - %2 Succeeded, %3 Failed, %4 Failed to Compile")
|
||||
.arg(m_testMetrics[nativeMode].m_graphsTested)
|
||||
.arg(m_testMetrics[nativeMode].m_success)
|
||||
.arg(m_testMetrics[nativeMode].m_failures)
|
||||
.arg(m_testMetrics[nativeMode].m_compilationFailures);
|
||||
|
||||
m_ui->label->setText(QString(executionMessage));
|
||||
GetStatusLabel(ExecutionMode::Native)->setText(testCompletionString);
|
||||
}
|
||||
|
||||
const int interpretedMode = static_cast<int>(ExecutionMode::Interpreted);
|
||||
if (m_testMetrics[interpretedMode].m_graphsTested > 0)
|
||||
{
|
||||
testCompletionString = ModeToString(ExecutionMode::Interpreted);
|
||||
testCompletionString += QString(": ");
|
||||
|
||||
testCompletionString += QString("Attempted %1 test(s) - %2 Succeeded, %3 Failed, %4 Failed to Compile")
|
||||
.arg(m_testMetrics[interpretedMode].m_graphsTested)
|
||||
.arg(m_testMetrics[interpretedMode].m_success)
|
||||
.arg(m_testMetrics[interpretedMode].m_failures)
|
||||
.arg(m_testMetrics[interpretedMode].m_compilationFailures);
|
||||
|
||||
GetStatusLabel(ExecutionMode::Interpreted)->setText(testCompletionString);
|
||||
}
|
||||
|
||||
m_filter->TestsEnd();
|
||||
m_ui->label->setText(QString("Finished"));
|
||||
|
||||
m_testMetrics[nativeMode].Clear();
|
||||
m_testMetrics[interpretedMode].Clear();
|
||||
}
|
||||
|
||||
void UnitTestDockWidget::RunTestGraph(AZ::Data::Asset<AZ::Data::AssetData> asset, ScriptCanvas::ExecutionMode mode)
|
||||
{
|
||||
Reporter reporter;
|
||||
UnitTestWidgetNotificationBus::Broadcast(&UnitTestWidgetNotifications::OnTestStart, asset.GetId().m_guid);
|
||||
|
||||
ScriptCanvasExecutionBus::BroadcastResult(reporter, &ScriptCanvasExecutionRequests::RunAssetGraph, asset, mode);
|
||||
|
||||
UnitTestResult testResult;
|
||||
|
||||
UnitTestVerificationBus::BroadcastResult(testResult, &UnitTestVerificationRequests::Verify, reporter);
|
||||
UnitTestWidgetNotificationBus::Broadcast(&UnitTestWidgetNotifications::OnTestResult, asset.GetId().m_guid, testResult);
|
||||
|
||||
m_pendingTests.Add(asset.GetId(), mode);
|
||||
|
||||
++m_testMetrics[static_cast<int>(mode)].m_graphsTested;
|
||||
|
||||
if (testResult.m_compiled)
|
||||
{
|
||||
if (testResult.m_completed)
|
||||
{
|
||||
++m_testMetrics[static_cast<int>(mode)].m_success;
|
||||
}
|
||||
else
|
||||
{
|
||||
++m_testMetrics[static_cast<int>(mode)].m_failures;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
++m_testMetrics[static_cast<int>(mode)].m_compilationFailures;
|
||||
}
|
||||
|
||||
m_pendingTests.Complete(asset.GetId(), mode);
|
||||
}
|
||||
|
||||
void UnitTestDockWidget::OnSystemTick()
|
||||
{
|
||||
if (m_pendingTests.IsFinished())
|
||||
{
|
||||
OnTestsComplete();
|
||||
}
|
||||
}
|
||||
|
||||
void UnitTestDockWidget::PendingTests::Add(AZ::Data::AssetId assetId, ExecutionMode mode)
|
||||
{
|
||||
m_pendingTests.push_back(AZStd::make_pair(assetId, mode));
|
||||
}
|
||||
|
||||
void UnitTestDockWidget::PendingTests::Complete(AZ::Data::AssetId assetId, ExecutionMode mode)
|
||||
{
|
||||
AZStd::erase_if(m_pendingTests, [assetId, mode](const AZStd::pair<AZ::Data::AssetId, ExecutionMode>& pending)
|
||||
{
|
||||
return (assetId == pending.first && mode == pending.second);
|
||||
});
|
||||
}
|
||||
|
||||
bool UnitTestDockWidget::PendingTests::IsFinished() const
|
||||
{
|
||||
return m_pendingTests.empty();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -25,11 +25,12 @@
|
||||
#include <QStyledItemDelegate>
|
||||
#include <QPainter>
|
||||
|
||||
#include <AzCore/Component/EntityId.h>
|
||||
#include <AzCore/Casting/numeric_cast.h>
|
||||
#include <AzCore/Component/ComponentApplicationBus.h>
|
||||
#include <AzCore/Component/Entity.h>
|
||||
#include <AzCore/Component/EntityId.h>
|
||||
#include <AzCore/Component/TickBus.h>
|
||||
#include <AzCore/std/containers/vector.h>
|
||||
#include <AzCore/Casting/numeric_cast.h>
|
||||
|
||||
#include <AzToolsFramework/API/ToolsApplicationAPI.h>
|
||||
|
||||
@@ -125,6 +126,8 @@ namespace ScriptCanvasEditor
|
||||
, public GraphCanvas::AssetEditorNotificationBus::Handler
|
||||
, public AzToolsFramework::EditorEvents::Bus::Handler
|
||||
, public UnitTestWidgetNotificationBus::Handler
|
||||
, private AZ::Data::AssetBus::MultiHandler
|
||||
, private AZ::SystemTickBus::Handler
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
@@ -147,6 +150,9 @@ namespace ScriptCanvasEditor
|
||||
void OnResultsButtonClicked(QModelIndex index);
|
||||
|
||||
private:
|
||||
bool IsModeEnabled(ScriptCanvas::ExecutionMode mode);
|
||||
QLabel* GetStatusLabel(ScriptCanvas::ExecutionMode mode);
|
||||
QCheckBox* GetEnabledCheckBox(ScriptCanvas::ExecutionMode mode);
|
||||
void ClearSearchFilter();
|
||||
void UpdateSearchFilter();
|
||||
|
||||
@@ -160,6 +166,12 @@ namespace ScriptCanvasEditor
|
||||
void OpenTestResults(AZ::Uuid sourceUuid, AZStd::string_view sourceDisplayName);
|
||||
void RunTests(const AZStd::vector<AZ::Uuid>& scriptUuids);
|
||||
|
||||
void RunTestGraph(AZ::Data::Asset<AZ::Data::AssetData>, ScriptCanvas::ExecutionMode);
|
||||
|
||||
void OnTestsComplete();
|
||||
|
||||
void OnSystemTick() override;
|
||||
|
||||
AZ::EntityId m_scriptCanvasGraphId;
|
||||
AZ::EntityId m_graphCanvasGraphId;
|
||||
|
||||
@@ -171,5 +183,39 @@ namespace ScriptCanvasEditor
|
||||
ItemButtonsDelegate* m_itemButtonsDelegate;
|
||||
|
||||
QTimer m_filterTimer;
|
||||
|
||||
class PendingTests
|
||||
{
|
||||
public:
|
||||
|
||||
void Add(AZ::Data::AssetId assetId, ExecutionMode mode);
|
||||
|
||||
void Complete(AZ::Data::AssetId assetId, ExecutionMode mode);
|
||||
|
||||
bool IsFinished() const;
|
||||
|
||||
private:
|
||||
|
||||
AZStd::vector<AZStd::pair<AZ::Data::AssetId, ExecutionMode>> m_pendingTests;
|
||||
};
|
||||
|
||||
PendingTests m_pendingTests;
|
||||
|
||||
struct TestMetrics
|
||||
{
|
||||
int m_graphsTested = 0;
|
||||
int m_success = 0;
|
||||
int m_failures = 0;
|
||||
int m_compilationFailures = 0;
|
||||
|
||||
void Clear()
|
||||
{
|
||||
m_graphsTested = 0;
|
||||
m_success = 0;
|
||||
m_failures = 0;
|
||||
m_compilationFailures = 0;
|
||||
}
|
||||
};
|
||||
TestMetrics m_testMetrics[static_cast<int>(ExecutionMode::COUNT)];
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,189 +26,298 @@
|
||||
<string>Test Manager</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="dockWidgetContents">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="runButton">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Run Selected Tests</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="AzQtComponents::SearchLineEdit" name="searchFilter">
|
||||
<property name="placeholderText">
|
||||
<string>Search...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="unitTestFrame">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<property name="spacing">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="ScriptCanvasEditor::UnitTestTreeView" name="testsTree">
|
||||
<property name="verticalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOn</enum>
|
||||
</property>
|
||||
<property name="dragEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alternatingRowColors">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::SingleSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<attribute name="headerVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="consoleOutput">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="testResultsLabel">
|
||||
<property name="text">
|
||||
<string>Test Results</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item alignment="Qt::AlignRight">
|
||||
<widget class="QPushButton" name="closeResults">
|
||||
<property name="toolTip">
|
||||
<string>Close Frame</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../Windows/ScriptCanvasEditorResources.qrc">
|
||||
<normaloff>:/ScriptCanvasEditorResources/Resources/lineedit_clear.png</normaloff>:/ScriptCanvasEditorResources/Resources/lineedit_clear.png</iconset>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPlainTextEdit" name="testResultsOutput">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
<widget class="QPushButton" name="runButton">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>100</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="verticalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOn</enum>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Run Selected Tests</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class ="QCheckBox" name ="graphTraversalExecutionEnabled">
|
||||
<property name = "text">
|
||||
<string>Graph Traversal Execution</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class ="QCheckBox" name ="executionInterpretedEnabled">
|
||||
<property name = "text">
|
||||
<string>Interpreted Execution</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class ="QCheckBox" name ="executionNativeEnabled">
|
||||
<property name = "text">
|
||||
<string>Native Execution</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="AzQtComponents::SearchLineEdit" name="searchFilter">
|
||||
<property name="placeholderText">
|
||||
<string>Search...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="labelFrame">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="unitTestFrame">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<property name="spacing">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="ScriptCanvasEditor::UnitTestTreeView" name="testsTree">
|
||||
<property name="verticalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOn</enum>
|
||||
</property>
|
||||
<property name="dragEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alternatingRowColors">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::SingleSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<attribute name="headerVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="consoleOutput">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="testResultsLabel">
|
||||
<property name="text">
|
||||
<string>Test Results</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item alignment="Qt::AlignRight">
|
||||
<widget class="QPushButton" name="closeResults">
|
||||
<property name="toolTip">
|
||||
<string>Close Frame</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../Windows/ScriptCanvasEditorResources.qrc">
|
||||
<normaloff>:/ScriptCanvasEditorResources/Resources/lineedit_clear.png</normaloff>:/ScriptCanvasEditorResources/Resources/lineedit_clear.png
|
||||
</iconset>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPlainTextEdit" name="testResultsOutput">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>100</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="verticalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOn</enum>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="labelFrame">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>640</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Selected 0 test(s).</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>640</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Selected 0 test(s).</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="labelGraphTraversalFrame">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<widget class="QLabel" name="labelGraphTraversalStatus">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>640</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Graph Traversal Tests</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="labelInterpretedFrame">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<widget class="QLabel" name="labelInterpretedStatus">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>640</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Interpreted Tests</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="labelNativeFrame">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<widget class="QLabel" name="labelNativeStatus">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>640</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Native Tests</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
|
||||
Reference in New Issue
Block a user