// Copyright 2015 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// +build !plan9

package net

import (
	"os"
	"syscall"
	"testing"
)

func TestSpuriousENOTAVAIL(t *testing.T) {
	for _, tt := range []struct {
		error
		ok bool
	}{
		{syscall.EADDRNOTAVAIL, true},
		{&os.SyscallError{Syscall: "syscall", Err: syscall.EADDRNOTAVAIL}, true},
		{&OpError{Op: "op", Err: syscall.EADDRNOTAVAIL}, true},
		{&OpError{Op: "op", Err: &os.SyscallError{Syscall: "syscall", Err: syscall.EADDRNOTAVAIL}}, true},

		{syscall.EINVAL, false},
		{&os.SyscallError{Syscall: "syscall", Err: syscall.EINVAL}, false},
		{&OpError{Op: "op", Err: syscall.EINVAL}, false},
		{&OpError{Op: "op", Err: &os.SyscallError{Syscall: "syscall", Err: syscall.EINVAL}}, false},
	} {
		if ok := spuriousENOTAVAIL(tt.error); ok != tt.ok {
			t.Errorf("spuriousENOTAVAIL(%v) = %v; want %v", tt.error, ok, tt.ok)
		}
	}
}
