解决MySql布尔型新旧版本兼容问题,采用枚举来表示布尔型的数据表。由正向工程赋值
大石头 authored at 2018-05-15 21:21:05
6.90 KiB
X
using NewLife.Log;
using NewLife.Net;
using Xunit;

namespace XUnitTest.Net;

public class TcpConnectionInformation2Tests
{
    [Fact]
    public void GetAllTcp()
    {
        var tcps = TcpConnectionInformation2.GetWindowsTcpConnections();
        Assert.NotNull(tcps);
        Assert.True(tcps.Length > 0);
        Assert.Contains(tcps, e => e.ProcessId > 0);

        foreach (var item in tcps)
        {
            XTrace.WriteLine("{0}\t{1}\t{2}\t{3}", item.LocalEndPoint, item.RemoteEndPoint, item.State, item.ProcessId);
        }
    }

    [Fact]
    public void GetLinuxTcpConnections()
    {
        var text = """
              sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
               0: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 19468 1 e15cbfaf 100 0 0 10 0
               1: 0100007F:0277 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 149685425 1 3678d6f4 100 0 0 10 0
               2: 0100007F:177A 00000000:0000 0A 00000000:00000000 00:00000000 00000000  1000        0 149695309 1 94cdb95b 100 0 0 10 0
               3: 0100007F:177B 00000000:0000 0A 00000000:00000000 00:00000000 00000000  1000        0 149702421 1 d7d62468 100 0 0 10 0
               4: 0100007F:177C 00000000:0000 0A 00000000:00000000 00:00000000 00000000  1000        0 149704085 1 5822fee3 100 0 0 10 0
               5: 00000000:157C 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 149309691 1 85d55e14 100 0 0 10 0
               6: 0100007F:177D 00000000:0000 0A 00000000:00000000 00:00000000 00000000  1000        0 149710280 1 a1609a47 100 0 0 10 0
               7: 0100007F:177E 00000000:0000 0A 00000000:00000000 00:00000000 00000000  1000        0 149711117 1 7e430ac6 100 0 0 10 0
               8: 00000000:170C 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 19537 1 3b81419b 100 0 0 10 0
               9: 0E00000A:0016 B90CE28B:2E99 01 00000000:00000000 02:00085E2F 00000000     0        0 149701382 2 cfff818b 25 4 17 16 -1
              10: 0E00000A:0016 B90CE28B:333E 01 00000030:00000000 01:00000018 00000000     0        0 149711082 4 df92dc4e 25 5 31 10 -1
              11: 0E00000A:0016 B90CE28B:3141 01 00000000:00000000 02:0005E6D4 00000000     0        0 149696632 2 1ea81f14 23 4 1 17 -1
              12: 0E00000A:0016 B90CE28B:3332 01 00000000:00000000 02:000AE5FB 00000000     0        0 149710902 2 45f78178 24 4 0 10 -1
              13: 0100007F:99BC 0100007F:81B1 01 00000000:00000000 00:00000000 00000000     0        0 22402 1 a005322b 21 0 0 10 -1
              14: 0E00000A:0016 B90CE28B:2EA3 01 00000000:00000000 02:000867D0 00000000     0        0 149705336 2 cf078afd 26 4 25 10 -1
              15: 0100007F:81B1 0100007F:99BC 01 00000000:00000000 00:00000000 00000000  1000        0 20368 1 9e78ef41 21 4 30 10 -1
              16: 0E00000A:0016 B90CE28B:333F 01 00000000:00000000 02:000AEE21 00000000     0        0 149711086 2 98aefdb4 24 4 0 10 -1
              17: 0E00000A:0016 B90CE28B:3117 01 00000000:00000000 02:0005D099 00000000     0        0 149696608 2 a926c1bc 24 4 17 17 -1
              18: 0E00000A:0016 B90CE28B:2E9A 01 00000000:00000000 02:00085E71 00000000     0        0 149699533 2 7956d5dc 24 5 1 16 -1
              19: 0E00000A:0016 B90CE28B:332D 01 00000000:00000000 02:000AE5C2 00000000     0        0 149710896 2 dfc11f57 24 4 9 20 -1
              20: 0E00000A:0016 B90CE28B:2EA4 01 00000000:00000000 02:00086822 00000000     0        0 149705343 2 07cfcce4 24 4 0 10 -1
              sl  local_address                         remote_address                        st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
               0: 00000000000000000000000000000000:0016 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 19470 1 e47aed0c 100 0 0 10 0
               1: 00000000000000000000000001000000:0277 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 149685424 1 a6e204a1 100 0 0 10 0
               2: 00000000000000000000000001000000:177A 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000  1000        0 149695308 1 97ee3eac 100 0 0 10 0
               3: 00000000000000000000000001000000:177B 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000  1000        0 149702420 1 a2dc1c92 100 0 0 10 0
               4: 00000000000000000000000001000000:177C 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000  1000        0 149704084 1 bd622a42 100 0 0 10 0
               5: 00000000000000000000000000000000:157C 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 149309693 1 de06ed2a 100 0 0 10 0
               6: 00000000000000000000000001000000:177D 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000  1000        0 149710279 1 3157605d 100 0 0 10 0
               7: 00000000000000000000000001000000:177E 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000  1000        0 149711116 1 2d47393d 100 0 0 10 0
               8: 00000000000000000000000000000000:170C 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 19536 1 906ea452 100 0 0 10 0
               9: 0000000000000000FFFF00000E00000A:C8FA 0000000000000000FFFF00007E3B642F:19C8 01 00000000:00000000 00:00000000 00000000     0        0 149709547 1 d441315a 21 5 22 10 -1
              10: 0000000000000000FFFF00000E00000A:C304 0000000000000000FFFF00007E3B642F:19C8 01 00000000:00000000 00:00000000 00000000     0        0 149309791 1 62db7f0d 23 4 28 10 -1
              11: 0000000000000000FFFF00000E00000A:C8F8 0000000000000000FFFF00007E3B642F:19C8 06 00000000:00000000 03:000003B2 00000000     0        0 0 3 de7eabf3
              12: 0000000000000000FFFF00000E00000A:C8F6 0000000000000000FFFF00007E3B642F:19C8 06 00000000:00000000 03:000003B2 00000000     0        0 0 3 d702db02
              13: 0000000000000000FFFF00000E00000A:C8FC 0000000000000000FFFF00007E3B642F:19C8 01 00000000:00000000 00:00000000 00000000     0        0 149710184 1 0ad1e8a5 21 0 0 10 -1
              14: 0000000000000000FFFF00000E00000A:C302 0000000000000000FFFF00007E3B642F:19C8 01 00000000:00000000 00:00000000 00000000     0        0 149309243 1 c4927ab7 24 4 28 10 -1
              15: 0000000000000000FFFF00000E00000A:C8F4 0000000000000000FFFF00007E3B642F:19C8 01 00000000:00000000 00:00000000 00000000     0        0 149710854 1 d7d9b954 21 4 30 10 -1

            """;

        var tcps = TcpConnectionInformation2.ParseTcps(text);
        Assert.NotNull(tcps);
        Assert.Equal(37, tcps.Count);
        //Assert.Contains(tcps, e => e.ProcessId > 0);

        foreach (var item in tcps)
        {
            XTrace.WriteLine("{0}\t{1}\t{2}\t{3}", item.LocalEndPoint, item.RemoteEndPoint, item.State, item.ProcessId);
        }
    }
}