Perform some code cleanup

This commit is contained in:
Justine Tunney 2022-10-04 23:32:16 -07:00
parent 174d288e66
commit fe3216e961
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
14 changed files with 803 additions and 312 deletions

View file

@ -20,12 +20,15 @@
#include "libc/calls/struct/iovec.h"
#include "libc/dce.h"
#include "libc/errno.h"
#include "libc/limits.h"
#include "libc/macros.internal.h"
#include "libc/mem/mem.h"
#include "libc/mem/gc.h"
#include "libc/mem/gc.internal.h"
#include "libc/mem/mem.h"
#include "libc/runtime/runtime.h"
#include "libc/sock/sock.h"
#include "libc/sysv/consts/auxv.h"
#include "libc/sysv/consts/iov.h"
#include "libc/sysv/consts/o.h"
#include "libc/testlib/testlib.h"
@ -35,6 +38,32 @@ void SetUpOnce(void) {
ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath fattr", 0));
}
TEST(writev, negativeFd_ebadf) {
ASSERT_SYS(EBADF, -1, writev(-1, 0, 0));
}
TEST(writev, negativeCount_einval) {
ASSERT_SYS(EINVAL, -1, writev(1, 0, -1));
}
TEST(writev, negative_einvalOrEfault) {
struct iovec v[] = {{"", -1}};
ASSERT_EQ(-1, writev(1, v, 1));
ASSERT_TRUE(errno == EINVAL || errno == EFAULT);
errno = 0;
}
TEST(writev, exceedsIovMax_einval) {
if (IsWindows()) return; // it's complicated
int i, n = IOV_MAX + 1;
struct iovec *v = _gc(malloc(sizeof(struct iovec) * n));
for (i = 0; i < n; ++i) {
v[i].iov_base = "x";
v[i].iov_len = 1;
}
ASSERT_SYS(EINVAL, -1, writev(1, v, n));
}
TEST(writev, test) {
int fd;
char ba[1] = "a";