4 #if SILICONSTUDIO_PLATFORM_WINDOWS_STORE || SILICONSTUDIO_PLATFORM_WINDOWS_PHONE
8 using System.Threading.Tasks;
10 using Windows.Networking.Sockets;
11 using Windows.Networking;
12 using Windows.Storage.Streams;
14 namespace SiliconStudio.
Paradox.Graphics.Regression
16 public static partial class ImageTester
18 private static StreamSocket imageComparisonServer;
20 public static bool Connect()
22 var task = ConnectAsync();
27 public static void Disconnect()
29 DisconnectAsync().Wait();
34 var task = RequestImageComparisonStatusAsync(testName);
43 public static bool SendImage(TestResultImage testResultImage)
45 var task = SendImageAsync(testResultImage);
52 if (imageComparisonServer != null)
57 imageComparisonServer =
new StreamSocket();
58 await imageComparisonServer.ConnectAsync(
new HostName(ParadoxImageServerHost), ParadoxImageServerPort.ToString());
61 using (var memoryStream =
new MemoryStream())
63 var binaryWriter =
new BinaryWriter(memoryStream);
64 ImageTestResultConnection.Write(binaryWriter);
66 var dataWriter =
new DataWriter(imageComparisonServer.OutputStream);
67 dataWriter.WriteBytes(memoryStream.ToArray());
68 await dataWriter.StoreAsync();
69 await dataWriter.FlushAsync();
70 dataWriter.DetachStream();
77 imageComparisonServer = null;
83 public static async
Task DisconnectAsync()
85 if (imageComparisonServer != null)
90 using (var dataWriter =
new DataWriter(imageComparisonServer.OutputStream))
93 await dataWriter.StoreAsync();
94 await dataWriter.FlushAsync();
95 dataWriter.DetachStream();
98 imageComparisonServer.Dispose();
103 imageComparisonServer = null;
107 public static async
Task<bool> RequestImageComparisonStatusAsync(
string testName = null)
110 throw new InvalidOperationException(
"Could not connect to image comparer server");
114 if (testName == null && NUnit.Framework.TestContext.CurrentContext == null)
116 testName = NUnit.Framework.TestContext.CurrentContext.Test.FullName;
120 using (var memoryStream =
new MemoryStream())
122 var binaryWriter =
new BinaryWriter(memoryStream);
126 binaryWriter.Write(testName);
128 var dataWriter =
new DataWriter(imageComparisonServer.OutputStream);
129 dataWriter.WriteBytes(memoryStream.ToArray());
130 await dataWriter.StoreAsync();
131 await dataWriter.FlushAsync();
132 dataWriter.DetachStream();
135 var dataReader =
new DataReader(imageComparisonServer.InputStream);
136 await dataReader.LoadAsync(1);
137 var result = dataReader.ReadBoolean();
138 dataReader.DetachStream();
152 public static async
Task<bool> SendImageAsync(TestResultImage testResultImage)
155 throw new InvalidOperationException(
"Could not connect to image comparer server");
159 if (testResultImage.TestName == null && NUnit.Framework.TestContext.CurrentContext != null)
161 testResultImage.TestName = NUnit.Framework.TestContext.CurrentContext.Test.FullName;
165 using (var memoryStream =
new MemoryStream())
167 var binaryWriter =
new BinaryWriter(memoryStream);
171 TestGameBase.TestGameLogger.Info(
@"Sending image information...");
172 testResultImage.Write(binaryWriter);
174 var dataWriter =
new DataWriter(imageComparisonServer.OutputStream);
175 dataWriter.WriteBytes(memoryStream.ToArray());
176 await dataWriter.StoreAsync();
177 await dataWriter.FlushAsync();
178 dataWriter.DetachStream();
181 var dataReader =
new DataReader(imageComparisonServer.InputStream);
182 await dataReader.LoadAsync(1);
183 var result = dataReader.ReadBoolean();
184 dataReader.DetachStream();