mirror of
				https://github.com/tailscale/tailscale.git
				synced 2025-10-31 08:11:32 +01:00 
			
		
		
		
	Hacky temporary workaround until we do #13654 correctly. Updates #13654 Change-Id: I764eaedbb112fb3a34dddb89572fec1b2543fd4a Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
		
			
				
	
	
		
			78 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // 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)
 | |
| 			}
 | |
| 		})
 | |
| 	}
 | |
| }
 |