mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-03 11:12:27 +00:00
Make more fixes and improvements
- Remove PAGESIZE constant - Fix realloc() documentation - Fix ttyname_r() error reporting - Make forking more reliable on Windows - Make execvp() a few microseconds faster - Make system() a few microseconds faster - Tighten up the socket-related magic numbers - Loosen restrictions on mmap() offset alignment - Improve GetProgramExecutableName() with getenv("_") - Use mkstemp() as basis for mktemp(), tmpfile(), tmpfd() - Fix flakes in pthread_cancel_test, unix_test, fork_test - Fix recently introduced futex stack overflow regression - Let sockets be passed as stdio to subprocesses on Windows - Improve security of bind() on Windows w/ SO_EXCLUSIVEADDRUSE
This commit is contained in:
parent
140a8a52e5
commit
18bb5888e1
311 changed files with 1239 additions and 2622 deletions
|
@ -325,30 +325,30 @@ TEST(wcscasecmp, testItWorksCase) {
|
|||
╚────────────────────────────────────────────────────────────────────────────│*/
|
||||
|
||||
TEST(strncmp, testEqualManyNs) {
|
||||
char *s1 = malloc(PAGESIZE);
|
||||
char *s2 = malloc(PAGESIZE);
|
||||
memset(s1, 7, PAGESIZE);
|
||||
memset(s2, 7, PAGESIZE);
|
||||
s1[PAGESIZE - 1] = '\0';
|
||||
s2[PAGESIZE - 1] = '\0';
|
||||
char *s1 = malloc(4096);
|
||||
char *s2 = malloc(4096);
|
||||
memset(s1, 7, 4096);
|
||||
memset(s2, 7, 4096);
|
||||
s1[4096 - 1] = '\0';
|
||||
s2[4096 - 1] = '\0';
|
||||
for (unsigned i = 1; i <= 128; ++i) {
|
||||
ASSERT_EQ(0, strncmp(s1 + PAGESIZE - i, s2 + PAGESIZE - i, i + 0));
|
||||
ASSERT_EQ(0, strncmp(s1 + PAGESIZE - i, s2 + PAGESIZE - i, i + 1));
|
||||
ASSERT_EQ(0, strncmp(s1 + 4096 - i, s2 + 4096 - i, i + 0));
|
||||
ASSERT_EQ(0, strncmp(s1 + 4096 - i, s2 + 4096 - i, i + 1));
|
||||
}
|
||||
free(s2);
|
||||
free(s1);
|
||||
}
|
||||
|
||||
TEST(strncmp, testNotEqualManyNs) {
|
||||
char *s1 = malloc(PAGESIZE);
|
||||
char *s2 = malloc(PAGESIZE);
|
||||
char *s1 = malloc(4096);
|
||||
char *s2 = malloc(4096);
|
||||
for (unsigned i = 1; i <= 128; ++i) {
|
||||
memset(s1, 7, PAGESIZE);
|
||||
memset(s2, 7, PAGESIZE);
|
||||
s1[PAGESIZE - 1] = (unsigned char)0;
|
||||
s2[PAGESIZE - 1] = (unsigned char)255;
|
||||
ASSERT_EQ(-255, strncmp(s1 + PAGESIZE - i, s2 + PAGESIZE - i, i + 0));
|
||||
ASSERT_EQ(-255, strncmp(s1 + PAGESIZE - i, s2 + PAGESIZE - i, i + 1));
|
||||
memset(s1, 7, 4096);
|
||||
memset(s2, 7, 4096);
|
||||
s1[4096 - 1] = (unsigned char)0;
|
||||
s2[4096 - 1] = (unsigned char)255;
|
||||
ASSERT_EQ(-255, strncmp(s1 + 4096 - i, s2 + 4096 - i, i + 0));
|
||||
ASSERT_EQ(-255, strncmp(s1 + 4096 - i, s2 + 4096 - i, i + 1));
|
||||
}
|
||||
free(s2);
|
||||
free(s1);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue