case "nacl", "plan9", "windows":
                                continue
                        }
+                       // iOS does not support unix domain sockets
+                       if runtime.GOOS == "darwin" && runtime.GOARCH == "arm" {
+                               continue
+                       }
                case "unixpacket":
                        switch runtime.GOOS {
                        case "android", "darwin", "nacl", "openbsd", "plan9", "windows":
 
        switch runtime.GOOS {
        case "nacl", "plan9", "windows":
                t.Skipf("skipping test on %q", runtime.GOOS)
+       case "darwin":
+               if runtime.GOARCH == "arm" {
+                       t.Skipf("skipping test on %s/%s", runtime.GOOS, runtime.GOARCH)
+               }
        }
        f, err := ioutil.TempFile("", "go_net_unixtest")
        if err != nil {
 
 }
 
 func TestPacketConn(t *testing.T) {
+       if runtime.GOOS == "darwin" && runtime.GOARCH == "arm" {
+               t.Skip("skipping test on darwin/arm")
+       }
        closer := func(c PacketConn, net, addr1, addr2 string) {
                c.Close()
                switch net {
 }
 
 func TestConnAndPacketConn(t *testing.T) {
+       if runtime.GOOS == "darwin" && runtime.GOARCH == "arm" {
+               t.Skip("skipping test on darwin/arm")
+       }
        closer := func(c PacketConn, net, addr1, addr2 string) {
                c.Close()
                switch net {
 
        switch runtime.GOOS {
        case "nacl", "plan9", "windows":
                t.Skipf("skipping test on %q", runtime.GOOS)
+       case "darwin":
+               if runtime.GOARCH == "arm" {
+                       t.Skipf("skipping test on %s/%s", runtime.GOOS, runtime.GOARCH)
+               }
        }
 
        addr := testUnixAddr()
        switch runtime.GOOS {
        case "nacl", "plan9", "windows":
                t.Skipf("skipping test on %q", runtime.GOOS)
+       case "darwin":
+               if runtime.GOARCH == "arm" {
+                       t.Skipf("skipping test on %s/%s", runtime.GOOS, runtime.GOARCH)
+               }
        }
 
        addr1, addr2, addr3 := testUnixAddr(), testUnixAddr(), testUnixAddr()
 
                if net == unixsotype {
                        return true
                }
+       case "darwin":
+               if runtime.GOARCH == "arm" && net == unixsotype {
+                       return true
+               }
        default:
                if net == unixsotype && linuxOnly {
                        return true