fn test_network_stats_add_from()

in nfm-controller/src/events/network_event.rs [547:671]


    fn test_network_stats_add_from() {
        let mut net_stats = NetworkStats {
            sockets_connecting: 20,
            sockets_established: 60,
            sockets_closing: 5,
            sockets_closed: 15,

            sockets_completed: 9,
            severed_connect: 4,
            severed_establish: 2,

            connect_attempts: 56,
            bytes_received: 59,
            bytes_delivered: 61,
            segments_received: 73,
            segments_delivered: 79,

            connect_us: MetricHistogram {
                count: 57,
                min: 20,
                max: 25,
                sum: 1250,
            },
            rtt_us: MetricHistogram {
                count: 11,
                min: 29,
                max: 31,
                sum: 350,
            },
            rtt_smoothed_us: MetricHistogram {
                count: 11,
                min: 50,
                max: 100,
                sum: 1000,
            },

            retrans_syn: 50,
            retrans_est: 51,
            retrans_close: 52,
            rtos_syn: 53,
            rtos_est: 54,
            rtos_close: 55,
        };
        let sock_stats = SockStats {
            last_touched_us: 451,
            connect_start_us: 101,
            connect_end_us: 127,
            bytes_received: 67,
            bytes_delivered: 71,
            segments_received: 83,
            segments_delivered: 89,
            state_flags: SockStateFlags::ENTERED_ESTABLISH
                | SockStateFlags::STARTED_CLOSURE
                | SockStateFlags::CLOSED,

            rtt_count: 3,
            rtt_latest_us: 25,
            rtt_smoothed_us: 40,

            retrans_syn: 10,
            retrans_est: 1,
            retrans_close: 2,
            rtos_syn: 3,
            rtos_est: 4,
            rtos_close: 5,

            connect_attempts: 6,
            connect_successes: 7,

            ..Default::default()
        };

        let expected = NetworkStats {
            sockets_connecting: 20,
            sockets_established: 60,
            sockets_closing: 5,
            sockets_closed: 16,

            sockets_completed: 9,
            severed_connect: 4,
            severed_establish: 2,

            connect_attempts: 62,
            bytes_received: 126,
            bytes_delivered: 132,
            segments_received: 156,
            segments_delivered: 168,

            connect_us: MetricHistogram {
                count: 64,
                min: 20,
                max: 26,
                sum: 1276,
            },
            rtt_us: MetricHistogram {
                count: 12,
                min: 25,
                max: 31,
                sum: 375,
            },
            rtt_smoothed_us: MetricHistogram {
                count: 12,
                min: 40,
                max: 100,
                sum: 1040,
            },

            retrans_syn: 60,
            retrans_est: 52,
            retrans_close: 54,
            rtos_syn: 56,
            rtos_est: 58,
            rtos_close: 60,
        };

        net_stats.add_from(&sock_stats);
        assert_eq!(net_stats, expected);

        net_stats.add_from(&sock_stats);
        assert_eq!(
            net_stats.bytes_delivered,
            sock_stats.bytes_delivered * 2 + 61
        );
        assert_eq!(net_stats.connect_us.max, 26);
    }