forked from CosmosOS/Cosmos
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request CosmosOS#161 from CosmosOS/CosmosOS#143
CosmosOS#143 has been finished ui for the test runner is finished
- Loading branch information
Showing
15 changed files
with
716 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
<?xml version="1.0" encoding="utf-8" ?> | ||
<configuration> | ||
<startup> | ||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> | ||
</startup> | ||
</configuration> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
<Application x:Class="Cosmos.TestRunner.UI.App" | ||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" | ||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" | ||
StartupUri="MainWindow.xaml"> | ||
<Application.Resources> | ||
|
||
</Application.Resources> | ||
</Application> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Configuration; | ||
using System.Data; | ||
using System.Linq; | ||
using System.Threading.Tasks; | ||
using System.Windows; | ||
|
||
namespace Cosmos.TestRunner.UI | ||
{ | ||
/// <summary> | ||
/// Interaction logic for App.xaml | ||
/// </summary> | ||
public partial class App : Application | ||
{ | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> | ||
<PropertyGroup> | ||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | ||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | ||
<ProjectGuid>{0B20C26F-CA92-4D88-8211-EC7B0A261337}</ProjectGuid> | ||
<OutputType>WinExe</OutputType> | ||
<AppDesignerFolder>Properties</AppDesignerFolder> | ||
<RootNamespace>Cosmos.TestRunner.UI</RootNamespace> | ||
<AssemblyName>Cosmos.TestRunner.UI</AssemblyName> | ||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion> | ||
<FileAlignment>512</FileAlignment> | ||
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> | ||
<WarningLevel>4</WarningLevel> | ||
</PropertyGroup> | ||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | ||
<PlatformTarget>AnyCPU</PlatformTarget> | ||
<DebugSymbols>true</DebugSymbols> | ||
<DebugType>full</DebugType> | ||
<Optimize>false</Optimize> | ||
<OutputPath>bin\Debug\</OutputPath> | ||
<DefineConstants>DEBUG;TRACE</DefineConstants> | ||
<ErrorReport>prompt</ErrorReport> | ||
<WarningLevel>4</WarningLevel> | ||
</PropertyGroup> | ||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | ||
<PlatformTarget>AnyCPU</PlatformTarget> | ||
<DebugType>pdbonly</DebugType> | ||
<Optimize>true</Optimize> | ||
<OutputPath>bin\Release\</OutputPath> | ||
<DefineConstants>TRACE</DefineConstants> | ||
<ErrorReport>prompt</ErrorReport> | ||
<WarningLevel>4</WarningLevel> | ||
</PropertyGroup> | ||
<ItemGroup> | ||
<Reference Include="System" /> | ||
<Reference Include="System.Data" /> | ||
<Reference Include="System.Xml" /> | ||
<Reference Include="Microsoft.CSharp" /> | ||
<Reference Include="System.Core" /> | ||
<Reference Include="System.Xml.Linq" /> | ||
<Reference Include="System.Data.DataSetExtensions" /> | ||
<Reference Include="System.Xaml"> | ||
<RequiredTargetFramework>4.0</RequiredTargetFramework> | ||
</Reference> | ||
<Reference Include="WindowsBase" /> | ||
<Reference Include="PresentationCore" /> | ||
<Reference Include="PresentationFramework" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<ApplicationDefinition Include="App.xaml"> | ||
<Generator>MSBuild:Compile</Generator> | ||
<SubType>Designer</SubType> | ||
</ApplicationDefinition> | ||
<Page Include="MainWindow.xaml"> | ||
<Generator>MSBuild:Compile</Generator> | ||
<SubType>Designer</SubType> | ||
</Page> | ||
<Compile Include="App.xaml.cs"> | ||
<DependentUpon>App.xaml</DependentUpon> | ||
<SubType>Code</SubType> | ||
</Compile> | ||
<Compile Include="ListViewLogMessage.cs" /> | ||
<Compile Include="MainWindowHandler.TestEngine.cs" /> | ||
<Compile Include="MainWindow.xaml.cs"> | ||
<DependentUpon>MainWindow.xaml</DependentUpon> | ||
<SubType>Code</SubType> | ||
</Compile> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<Compile Include="MainWindowHandler.OutputHandler.cs" /> | ||
<Compile Include="Properties\AssemblyInfo.cs"> | ||
<SubType>Code</SubType> | ||
</Compile> | ||
<Compile Include="Properties\Resources.Designer.cs"> | ||
<AutoGen>True</AutoGen> | ||
<DesignTime>True</DesignTime> | ||
<DependentUpon>Resources.resx</DependentUpon> | ||
</Compile> | ||
<Compile Include="Properties\Settings.Designer.cs"> | ||
<AutoGen>True</AutoGen> | ||
<DependentUpon>Settings.settings</DependentUpon> | ||
<DesignTimeSharedInput>True</DesignTimeSharedInput> | ||
</Compile> | ||
<EmbeddedResource Include="Properties\Resources.resx"> | ||
<Generator>ResXFileCodeGenerator</Generator> | ||
<LastGenOutput>Resources.Designer.cs</LastGenOutput> | ||
</EmbeddedResource> | ||
<None Include="Properties\Settings.settings"> | ||
<Generator>SettingsSingleFileGenerator</Generator> | ||
<LastGenOutput>Settings.Designer.cs</LastGenOutput> | ||
</None> | ||
<AppDesigner Include="Properties\" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<None Include="App.config" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<ProjectReference Include="..\Cosmos.TestRunner.Core\Cosmos.TestRunner.Core.csproj"> | ||
<Project>{758faf24-9974-4db8-82ef-1b64daf2f0bc}</Project> | ||
<Name>Cosmos.TestRunner.Core</Name> | ||
</ProjectReference> | ||
</ItemGroup> | ||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | ||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. | ||
Other similar extension points exist, see Microsoft.Common.targets. | ||
<Target Name="BeforeBuild"> | ||
</Target> | ||
<Target Name="AfterBuild"> | ||
</Target> | ||
--> | ||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Linq; | ||
using System.Text; | ||
using System.Threading.Tasks; | ||
|
||
namespace Cosmos.TestRunner.UI | ||
{ | ||
public class ListViewLogMessage | ||
{ | ||
public ListViewLogMessage(string _date, string _level, string _message) | ||
{ | ||
Date = _date; | ||
Level = _level; | ||
Message = _message; | ||
} | ||
|
||
public string Date | ||
{ | ||
get; | ||
set; | ||
} | ||
|
||
public string Level | ||
{ | ||
get; | ||
set; | ||
} | ||
|
||
public string Message | ||
{ | ||
get; | ||
set; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
<Window x:Class="Cosmos.TestRunner.UI.MainWindow" | ||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" | ||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" | ||
Title="Test Runner" Height="393" Width="634"> | ||
<Grid> | ||
<Grid.ColumnDefinitions> | ||
<ColumnDefinition Width="*" /> | ||
</Grid.ColumnDefinitions> | ||
<Grid.RowDefinitions> | ||
<RowDefinition Height="Auto" /> | ||
<RowDefinition Height="Auto" /> | ||
<RowDefinition Height="*" /> | ||
</Grid.RowDefinitions> | ||
|
||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" | ||
VerticalAlignment="Bottom" Grid.Row="1" Grid.Column="1"> | ||
<Button x:Name="s_messages_btn" Content="Show Messages" Width="90" Height="24" Margin="3" Click="s_messages_btn_Click" /> | ||
<Button x:Name="h_messages_btn" Content="Hide Messages" Width="90" Height="24" Margin="3" Click="h_messages_btn_Click" /> | ||
</StackPanel> | ||
<ListView x:Name="message_display_list" Grid.Row="2" Grid.Column="1"> | ||
<ListView.View> | ||
<GridView> | ||
<GridViewColumn Width="50px" Header="Date" HeaderStringFormat="Date" DisplayMemberBinding="{Binding Date}"/> | ||
<GridViewColumn Width="50px" Header="Level" HeaderStringFormat="Level" DisplayMemberBinding="{Binding Level}"/> | ||
<GridViewColumn Width="Auto" Header="Message" HeaderStringFormat="Message" DisplayMemberBinding="{Binding Message}"/> | ||
|
||
</GridView> | ||
</ListView.View> | ||
</ListView> | ||
</Grid> | ||
</Window> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Linq; | ||
using System.Text; | ||
using System.Threading.Tasks; | ||
using System.Windows; | ||
using System.Windows.Controls; | ||
using System.Windows.Data; | ||
using System.Windows.Documents; | ||
using System.Windows.Input; | ||
using System.Windows.Media; | ||
using System.Windows.Media.Imaging; | ||
using System.Windows.Navigation; | ||
using System.Windows.Shapes; | ||
|
||
namespace Cosmos.TestRunner.UI | ||
{ | ||
/// <summary> | ||
/// Interaction logic for MainWindow.xaml | ||
/// </summary> | ||
public partial class MainWindow : Window | ||
{ | ||
private MainWindowHandler testEngineHandler = null; | ||
public MainWindow() | ||
{ | ||
InitializeComponent(); | ||
testEngineHandler = new MainWindowHandler(message_display_list); | ||
testEngineHandler.RunTestEngine(); | ||
} | ||
|
||
private void h_messages_btn_Click(object sender, RoutedEventArgs e) | ||
{ | ||
message_display_list.Visibility = Visibility.Collapsed; | ||
} | ||
|
||
private void s_messages_btn_Click(object sender, RoutedEventArgs e) | ||
{ | ||
message_display_list.Visibility = Visibility.Visible; | ||
} | ||
} | ||
} |
134 changes: 134 additions & 0 deletions
134
Tests/Cosmos.TestRunner.UI/MainWindowHandler.OutputHandler.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,134 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Diagnostics; | ||
using Cosmos.TestRunner.Core; | ||
using System.Windows.Controls; | ||
|
||
namespace Cosmos.TestRunner.UI | ||
{ | ||
public partial class MainWindowHandler : OutputHandlerBase | ||
{ | ||
private ListView message_display_list; | ||
public MainWindowHandler(ListView wpflistView) | ||
{ | ||
message_display_list = wpflistView; | ||
} | ||
|
||
private readonly Stopwatch mCurrentTaskStopwatch = new Stopwatch(); | ||
private readonly Stopwatch mCurrentKernelStopwatch = new Stopwatch(); | ||
private readonly Stopwatch mExecutionStopwatch = new Stopwatch(); | ||
|
||
protected override void OnTaskStart(string taskName) | ||
{ | ||
Log("Running task '" + taskName + "'"); | ||
mCurrentTaskStopwatch.Reset(); | ||
mCurrentTaskStopwatch.Start(); | ||
mLogLevel++; | ||
} | ||
|
||
protected override void OnTaskEnd(string taskName) | ||
{ | ||
mCurrentTaskStopwatch.Stop(); | ||
mLogLevel--; | ||
Log("Done running task '" + taskName + "'. Took " + mCurrentTaskStopwatch.Elapsed); | ||
} | ||
|
||
protected override void OnUnhandledException(Exception exception) | ||
{ | ||
Log("Unhandled exception: " + exception.ToString()); | ||
} | ||
|
||
protected override void OnExecutionEnd() | ||
{ | ||
mLogLevel = 0; | ||
Log("Done executing"); | ||
Log("Took " + mExecutionStopwatch.Elapsed); | ||
|
||
Log(String.Format("{0} kernels succeeded their tests", mNumberOfSuccesses)); | ||
Log(String.Format("{0} kernels failed their tests", mNumberOfFailures)); | ||
} | ||
|
||
protected override void OnExecutionStart() | ||
{ | ||
mLogLevel = 0; | ||
Log("Start executing"); | ||
mExecutionStopwatch.Reset(); | ||
mExecutionStopwatch.Start(); | ||
mLogLevel = 1; | ||
} | ||
|
||
protected override void OnLogDebugMessage(string message) | ||
{ | ||
|
||
} | ||
|
||
protected override void OnRunConfigurationStart(RunConfiguration configuration) | ||
{ | ||
Log(string.Format("Start configuration. IsELF = {0}, Target = {1}", configuration.IsELF, configuration.RunTarget)); | ||
mLogLevel++; | ||
} | ||
|
||
protected override void OnRunConfigurationEnd(RunConfiguration configuration) | ||
{ | ||
mLogLevel--; | ||
} | ||
|
||
protected override void OnLogError(string message) | ||
{ | ||
Log("Error: " + message); | ||
} | ||
|
||
protected override void OnLogMessage(string message) | ||
{ | ||
Log("Msg: " + message); | ||
} | ||
|
||
protected override void OnExecuteKernelEnd(string assemblyName) | ||
{ | ||
mCurrentKernelStopwatch.Stop(); | ||
Log("Done running kernel. Took " + mCurrentKernelStopwatch.Elapsed); | ||
mLogLevel--; | ||
} | ||
|
||
protected override void OnExecuteKernelStart(string assemblyName) | ||
{ | ||
Log("Starting kernel '" + assemblyName + "'"); | ||
mCurrentKernelStopwatch.Reset(); | ||
mCurrentKernelStopwatch.Start(); | ||
mLogLevel++; | ||
} | ||
|
||
private int mLogLevel; | ||
private void Log(string message) | ||
{ | ||
string Date = DateTime.Now.ToString("hh:mm:ss.ffffff "); | ||
string level = new String(' ', mLogLevel * 2); | ||
message_display_list.Dispatcher.Invoke(new Action<string, string, string>(DisplayOnWindow), new object[] { Date, level, message }); | ||
} | ||
|
||
protected override void OnSetKernelTestResult(bool succeeded, string message) | ||
{ | ||
Log(string.Format("Success = {0}, Message = '{1}'", succeeded, message)); | ||
if (succeeded) | ||
{ | ||
mNumberOfSuccesses++; | ||
} | ||
else | ||
{ | ||
mNumberOfFailures++; | ||
} | ||
} | ||
|
||
private int mNumberOfSuccesses = 0; | ||
private int mNumberOfFailures = 0; | ||
|
||
protected override void OnSetKernelSucceededAssertionsCount(int succeededAssertions) | ||
{ | ||
} | ||
|
||
private void DisplayOnWindow(string _date, string _level, string _msg) | ||
{ | ||
message_display_list.Items.Add(new ListViewLogMessage(_date, _level, _msg)); | ||
} | ||
} | ||
} |
Oops, something went wrong.