aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorVasil Dimov <vd@FreeBSD.org>2021-04-19 11:35:09 +0200
committerVasil Dimov <vd@FreeBSD.org>2022-07-20 16:26:24 +0200
commitb527b549504672704a61f70d2565b9489aaaba91 (patch)
tree8e303842e1ad9b220ba2d5f150061a2061887663 /src/test
parent29f66f76826056f53d971ac734b7ed49b39848d3 (diff)
net: convert standalone SetSocketNonBlocking() to Sock::SetNonBlocking()
This further encapsulates syscalls inside the `Sock` class. Co-authored-by: practicalswift <practicalswift@users.noreply.github.com>
Diffstat (limited to 'src/test')
-rw-r--r--src/test/fuzz/util.cpp13
-rw-r--r--src/test/fuzz/util.h2
-rw-r--r--src/test/util/net.h2
3 files changed, 17 insertions, 0 deletions
diff --git a/src/test/fuzz/util.cpp b/src/test/fuzz/util.cpp
index 1d19856671..0faece5854 100644
--- a/src/test/fuzz/util.cpp
+++ b/src/test/fuzz/util.cpp
@@ -254,6 +254,19 @@ int FuzzedSock::GetSockName(sockaddr* name, socklen_t* name_len) const
return 0;
}
+bool FuzzedSock::SetNonBlocking() const
+{
+ constexpr std::array setnonblocking_errnos{
+ EBADF,
+ EPERM,
+ };
+ if (m_fuzzed_data_provider.ConsumeBool()) {
+ SetFuzzedErrNo(m_fuzzed_data_provider, setnonblocking_errnos);
+ return false;
+ }
+ return true;
+}
+
bool FuzzedSock::IsSelectable() const
{
return m_selectable;
diff --git a/src/test/fuzz/util.h b/src/test/fuzz/util.h
index 92ad08ec59..c5ae78da67 100644
--- a/src/test/fuzz/util.h
+++ b/src/test/fuzz/util.h
@@ -80,6 +80,8 @@ public:
int GetSockName(sockaddr* name, socklen_t* name_len) const override;
+ bool SetNonBlocking() const override;
+
bool IsSelectable() const override;
bool Wait(std::chrono::milliseconds timeout, Event requested, Event* occurred = nullptr) const override;
diff --git a/src/test/util/net.h b/src/test/util/net.h
index 749b5b3364..814a4ff9c8 100644
--- a/src/test/util/net.h
+++ b/src/test/util/net.h
@@ -166,6 +166,8 @@ public:
return 0;
}
+ bool SetNonBlocking() const override { return true; }
+
bool IsSelectable() const override { return true; }
bool Wait(std::chrono::milliseconds timeout,