Greatly expand system() shell code features

The cosmopolitan command interpreter now has 13 builtin commands,
variable support, support for ; / && / || syntax, asynchronous support,
and plenty of unit tests with bug fixes.

This change fixes a bug in posix_spawn() with null envp arg. strace
logging now uses atomic writes for scatter functions. Breaking change
renaming GetCpuCount() to _getcpucount(). TurfWar is now updated to use
the new token bucket algorithm. WIN32 affinity masks now inherit across
fork() and execve().
This commit is contained in:
Justine Tunney 2022-10-11 21:06:27 -07:00
parent e7329b7cba
commit b41f91c658
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
80 changed files with 1370 additions and 344 deletions

View file

@ -558,6 +558,20 @@ TEST(strtoul, testoverflow) {
ASSERT_STREQ("", e);
}
TEST(strtol, invalidHex_consistentWithBsd) {
char *c = 0;
long x = strtol("0xz", &c, 16);
ASSERT_EQ(0, x);
ASSERT_STREQ("z", c);
}
TEST(strtol, invalidHex_consistentWithBsd2) {
char *c = 0;
long x = strtol("0xez", &c, 16);
ASSERT_EQ(0xe, x);
ASSERT_STREQ("z", c);
}
BENCH(atoi, bench) {
EZBENCH2("atoi 10⁸", donothing, EXPROPRIATE(atoi(VEIL("r", "100000000"))));
EZBENCH2("strtol 10⁸", donothing,