public void ReadLogTests() { using (Stream stream = File.OpenRead(@"logcat.bin")) using (ShellStream shellStream = new ShellStream(stream, false)) using (LogReader reader = new LogReader(shellStream)) { // This stream contains 3 log entries. Read & validate the first one, // read the next two ones (to be sure all data is read correctly). var log = reader.ReadEntry(); Assert.IsInstanceOfType(log, typeof(AndroidLogEntry)); Assert.AreEqual(707, log.ProcessId); Assert.AreEqual(1254, log.ThreadId); Assert.AreEqual(3u, log.Id); Assert.IsNotNull(log.Data); Assert.AreEqual(179, log.Data.Length); Assert.AreEqual(new DateTime(2015, 11, 14, 23, 38, 20, 590, DateTimeKind.Utc), log.TimeStamp); var androidLog = (AndroidLogEntry)log; Assert.AreEqual(4, androidLog.Priority); Assert.AreEqual("ActivityManager", androidLog.Tag); Assert.AreEqual("Start proc com.google.android.gm for broadcast com.google.android.gm/.widget.GmailWidgetProvider: pid=7026 uid=10066 gids={50066, 9997, 3003, 1028, 1015} abi=x86", androidLog.Message); Assert.IsNotNull(reader.ReadEntry()); Assert.IsNotNull(reader.ReadEntry()); } }
public void ConstructorTest() { using (MemoryStream stream = new MemoryStream()) using (ShellStream shellStream = new ShellStream(stream, false)) { Assert.AreEqual(stream, shellStream.Inner); Assert.IsTrue(shellStream.CanRead); Assert.IsFalse(shellStream.CanSeek); Assert.IsFalse(shellStream.CanWrite); } }
public void ConstructorWriteOnlyTest() { var temp = Path.GetTempFileName(); try { using (FileStream stream = File.OpenWrite(temp)) { ShellStream shellStream = new ShellStream(stream, false); } } finally { File.Delete(temp); } }
public void MultipleCRLFInString() { using (MemoryStream stream = GetStream("\r\n1\r\n2\r\n3\r\n4\r\n5")) using (ShellStream shellStream = new ShellStream(stream, false)) using (StreamReader reader = new StreamReader(shellStream)) { Assert.AreEqual((int)'\n', shellStream.ReadByte()); stream.Position = 0; byte[] buffer = new byte[100]; var read = shellStream.Read(buffer, 0, 100); var actual = Encoding.ASCII.GetString(buffer, 0, read); Assert.AreEqual(actual, "\n1\n2\n3\n4\n5"); Assert.AreEqual(10, read); for (int i = 10; i < buffer.Length; i++) { Assert.AreEqual(0, buffer[i]); } } }
public void PendingByteTest1() { using (MemoryStream stream = GetStream("\r\nH\ra")) using (ShellStream shellStream = new ShellStream(stream, false)) { byte[] buffer = new byte[1]; var read = shellStream.Read(buffer, 0, 1); Assert.AreEqual(1, read); Assert.AreEqual((byte)'\n', buffer[0]); read = shellStream.Read(buffer, 0, 1); Assert.AreEqual(1, read); Assert.AreEqual((byte)'H', buffer[0]); read = shellStream.Read(buffer, 0, 1); Assert.AreEqual(1, read); Assert.AreEqual((byte)'\r', buffer[0]); read = shellStream.Read(buffer, 0, 1); Assert.AreEqual(1, read); Assert.AreEqual((byte)'a', buffer[0]); } }
public void ReadLogTest() { var device = new DeviceData() { Serial = "169.254.109.177:5555", State = DeviceState.Online }; var responses = new AdbResponse[] { AdbResponse.OK, AdbResponse.OK }; var responseMessages = new string[] { }; var requests = new string[] { "host:transport:169.254.109.177:5555", "shell:logcat -B -b system" }; var receiver = new ConsoleOutputReceiver(); using (Stream stream = File.OpenRead("logcat.bin")) using (ShellStream shellStream = new ShellStream(stream, false)) { Logs.LogEntry[] logs = null; this.RunTest( responses, responseMessages, requests, shellStream, () => { logs = AdbClient.Instance.RunLogService(device, Logs.LogId.System).ToArray(); }); Assert.AreEqual(3, logs.Count()); } }
public void TestCRLFAtStart() { using (MemoryStream stream = GetStream("\r\nHello, World!")) using (ShellStream shellStream = new ShellStream(stream, false)) using (StreamReader reader = new StreamReader(shellStream)) { Assert.AreEqual((int)'\n', shellStream.ReadByte()); stream.Position = 0; byte[] buffer = new byte[2]; var read = shellStream.Read(buffer, 0, 2); Assert.AreEqual(2, read); Assert.AreEqual((byte)'\n', buffer[0]); Assert.AreEqual((byte)'H', buffer[1]); stream.Position = 0; Assert.AreEqual("\nHello, World!", reader.ReadToEnd()); } }