Fix bugs and make code tinier

- Fixed bug where stdio eof wasn't being sticky
- Fixed bug where fseeko() wasn't clearing eof state
- Removed assert() usage from libc favoring _unassert() / _npassert()
This commit is contained in:
Justine Tunney 2022-10-09 22:38:28 -07:00
parent 9b7c8db846
commit d5910e2673
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
115 changed files with 510 additions and 290 deletions

View file

@ -27,6 +27,22 @@
#include "libc/testlib/ezbench.h"
#include "libc/testlib/testlib.h"
char testlib_enable_tmp_setup_teardown;
TEST(read, eof) {
char b[8] = "hello";
ASSERT_SYS(0, 3, creat("foo", 0644));
ASSERT_SYS(0, 4, open("foo", O_RDONLY));
ASSERT_SYS(0, 0, read(4, b, 8));
ASSERT_SYS(0, 8, write(3, b, 8));
ASSERT_SYS(0, 8, read(4, b, 8));
ASSERT_SYS(0, 0, read(4, b, 8));
ASSERT_SYS(0, 0, close(4));
ASSERT_SYS(0, 0, close(3));
}
////////////////////////////////////////////////////////////////////////////////
static long Read(long fd, void *buf, unsigned long size) {
long ax, di, si, dx;
asm volatile("syscall"