Esempio n. 1
0
        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());
            }
        }
Esempio n. 2
0
 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);
     }
 }
Esempio n. 3
0
        public void ConstructorWriteOnlyTest()
        {
            var temp = Path.GetTempFileName();

            try
            {
                using (FileStream stream = File.OpenWrite(temp))
                {
                    ShellStream shellStream = new ShellStream(stream, false);
                }
            }
            finally
            {
                File.Delete(temp);
            }
        }
Esempio n. 4
0
        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]);
                }
            }
        }
Esempio n. 5
0
        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]);
            }
        }
Esempio n. 6
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());
            }
        }
Esempio n. 7
0
        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());
            }
        }