mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-23 13:52:28 +00:00
Improve cosmo's conformance to libc-test
This change addresses various open source compatibility issues, so that we pass 313/411 of the tests in https://github.com/jart/libc-test where earlier today we were passing about 30/411 of them, due to header toil. Please note that Glibc only passes 341/411 so 313 today is pretty good! - Make the conformance of libc/isystem/ headers nearly perfect - Import more of the remaining math library routines from Musl - Fix inconsistencies with type signatures of calls like umask - Write tests for getpriority/setpriority which work great now - conform to `struct sockaddr *` on remaining socket functions - Import a bunch of uninteresting stdlib functions e.g. rand48 - Introduce readdir_r, scandir, pthread_kill, sigsetjmp, etc.. Follow the instructions in our `tool/scripts/cosmocc` toolchain to run these tests yourself. You use `make CC=cosmocc` on the test repository
This commit is contained in:
parent
467a332e38
commit
e557058ac8
189 changed files with 5091 additions and 884 deletions
|
@ -16,9 +16,10 @@
|
|||
│ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │
|
||||
│ PERFORMANCE OF THIS SOFTWARE. │
|
||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||
#include "libc/mem/mem.h"
|
||||
#include "libc/mem/gc.internal.h"
|
||||
#include "libc/mem/mem.h"
|
||||
#include "libc/stdio/stdio.h"
|
||||
#include "libc/str/str.h"
|
||||
#include "libc/testlib/ezbench.h"
|
||||
#include "libc/testlib/hyperion.h"
|
||||
#include "libc/testlib/testlib.h"
|
||||
|
@ -33,6 +34,18 @@ TEST(fgets, test) {
|
|||
fclose(f);
|
||||
}
|
||||
|
||||
TEST(fgets, eof) {
|
||||
FILE *f;
|
||||
char s[10];
|
||||
char buf[] = "test";
|
||||
ASSERT_NE(NULL, (f = fmemopen(buf, sizeof buf, "r")));
|
||||
ASSERT_EQ(s, fgets(s, sizeof s, f));
|
||||
ASSERT_EQ(0, strcmp(s, buf));
|
||||
ASSERT_EQ(0, fgets(s, sizeof s, f));
|
||||
ASSERT_EQ('t', s[0]);
|
||||
ASSERT_EQ(0, fclose(f));
|
||||
}
|
||||
|
||||
void Benchmark(void) {
|
||||
FILE *f;
|
||||
char *line;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue