aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-09-18 14:00:14 +0000
committer_ov4 <ov4@ov4.org>2026-09-18 14:00:14 +0000
commitd8db366565094d5bbb5eef5855e5036f55cfdac4 (patch)
treec8de2ab0ddce6e5637c0a3d28a73e1d6c69031c4
parent75d5790ee125e42cb6b9824b833b08765a01f5fe (diff)
add write_helper test
-rw-r--r--module-test/write_helper_test.cc37
1 files changed, 37 insertions, 0 deletions
diff --git a/module-test/write_helper_test.cc b/module-test/write_helper_test.cc
new file mode 100644
index 0000000..eb86692
--- /dev/null
+++ b/module-test/write_helper_test.cc
@@ -0,0 +1,37 @@
+#include <iostream>
+#include <print>
+#include <unistd.h>
+#include <cstdlib>
+#include <ctime>
+#include <string>
+#include <cstring>
+#include <print>
+
+using namespace std;
+
+size_t write_simulator(const char *s, size_t len, int &err)
+{
+ size_t rand_len = rand() % (len+1);
+ size_t ret = write(STDOUT_FILENO, s, rand_len);
+ err = errno;
+ return ret;
+}
+
+int main()
+{
+ const char *s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz\n0123456789";
+ srand(time(nullptr));
+ size_t pos = 0;
+ int err = EINTR;
+ while (pos < strlen(s))
+ {
+ ;
+ size_t ret = write_simulator(s+pos, strlen(s+pos), err);
+ if (ret == string::npos)
+ if (err == EINTR) ret = 0;
+ else return 0;
+ pos += ret;
+ }
+ return 0;
+
+}