| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- // Copyright (c) Tailscale Inc & AUTHORS
- // SPDX-License-Identifier: BSD-3-Clause
- package netstack
- import (
- "net/netip"
- "testing"
- )
- func TestWindowsPingOutputIsSuccess(t *testing.T) {
- tests := []struct {
- name string
- ip string
- out string
- want bool
- }{
- {
- name: "success",
- ip: "10.0.0.1",
- want: true,
- out: `Pinging 10.0.0.1 with 32 bytes of data:
- Reply from 10.0.0.1: bytes=32 time=7ms TTL=64
- Ping statistics for 10.0.0.1:
- Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
- Approximate round trip times in milli-seconds:
- Minimum = 7ms, Maximum = 7ms, Average = 7ms
- `,
- },
- {
- name: "success_sub_millisecond",
- ip: "10.0.0.1",
- want: true,
- out: `Pinging 10.0.0.1 with 32 bytes of data:
- Reply from 10.0.0.1: bytes=32 time<1ms TTL=64
- Ping statistics for 10.0.0.1:
- Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
- Approximate round trip times in milli-seconds:
- Minimum = 7ms, Maximum = 7ms, Average = 7ms
- `,
- },
- {
- name: "success_german",
- ip: "10.0.0.1",
- want: true,
- out: `Ping wird ausgeführt für 10.0.0.1 mit 32 Bytes Daten:
- Antwort von from 10.0.0.1: Bytes=32 Zeit=7ms TTL=64
- Ping-Statistik für 10.0.0.1:
- Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust),
- Ca. Zeitangaben in Millisek.:
- Minimum = 7ms, Maximum = 7ms, Mittelwert = 7ms
- `,
- },
- {
- name: "unreachable",
- ip: "10.0.0.6",
- want: false,
- out: `Pinging 10.0.0.6 with 32 bytes of data:
- Reply from 10.0.108.189: Destination host unreachable
- Ping statistics for 10.0.0.6:
- Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
- `,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- got := windowsPingOutputIsSuccess(netip.MustParseAddr(tt.ip), []byte(tt.out))
- if got != tt.want {
- t.Errorf("got %v; want %v", got, tt.want)
- }
- })
- }
- }
|