1// Copyright 2022 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5//go:build aix || darwin
6
7package runtime_test
8
9import (
10	"runtime"
11	"syscall"
12	"testing"
13)
14
15func TestSetNonblock(t *testing.T) {
16	t.Parallel()
17
18	r, w, errno := runtime.Pipe()
19	if errno != 0 {
20		t.Fatal(syscall.Errno(errno))
21	}
22	defer func() {
23		runtime.Close(r)
24		runtime.Close(w)
25	}()
26
27	checkIsPipe(t, r, w)
28
29	runtime.SetNonblock(r)
30	runtime.SetNonblock(w)
31	checkNonblocking(t, r, "reader")
32	checkNonblocking(t, w, "writer")
33
34	runtime.Closeonexec(r)
35	runtime.Closeonexec(w)
36	checkCloseonexec(t, r, "reader")
37	checkCloseonexec(t, w, "writer")
38}
39