mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-08-03 00:10:31 +00:00
Make build hermetic without shell scripts
- Fix some minor issues in ar.com - Have execve() look for `ape` command - Rewrite NT paths using /c/ rather /??/c:/ - Replace broken GCC symlinks with .sym files - Rewrite $PATH environment variables on startup - Make $(APE_NO_MODIFY_SELF) the default bootloader - Add all build command dependencies to build/bootstrap - Get the repository mostly building from source on non-Linux
This commit is contained in:
parent
d44ff6ce1f
commit
d230a01222
160 changed files with 2754 additions and 1342 deletions
|
@ -20,17 +20,18 @@
|
|||
#include "libc/runtime/gc.internal.h"
|
||||
#include "libc/testlib/testlib.h"
|
||||
|
||||
char tmp[ARG_MAX];
|
||||
char16_t envvars[ARG_MAX / 2];
|
||||
|
||||
TEST(mkntenvblock, emptyList_onlyOutputsDoubleNulStringTerminator) {
|
||||
char *envp[] = {NULL};
|
||||
ASSERT_NE(-1, mkntenvblock(envvars, envp, NULL));
|
||||
ASSERT_NE(-1, mkntenvblock(envvars, envp, NULL, tmp));
|
||||
ASSERT_BINEQ(u" ", envvars);
|
||||
}
|
||||
|
||||
TEST(mkntenvblock, envp_becomesSortedDoubleNulTerminatedUtf16String) {
|
||||
char *envp[] = {"u=b", "c=d", "韩=非", "uh=d", "hduc=d", NULL};
|
||||
ASSERT_NE(-1, mkntenvblock(envvars, envp, NULL));
|
||||
ASSERT_NE(-1, mkntenvblock(envvars, envp, NULL, tmp));
|
||||
ASSERT_BINEQ(u"C = d "
|
||||
u"H D U C = d "
|
||||
u"U = b "
|
||||
|
@ -42,7 +43,7 @@ TEST(mkntenvblock, envp_becomesSortedDoubleNulTerminatedUtf16String) {
|
|||
|
||||
TEST(mkntenvblock, extraVar_getsAdded) {
|
||||
char *envp[] = {"u=b", "c=d", "韩=非", "uh=d", "hduc=d", NULL};
|
||||
ASSERT_NE(-1, mkntenvblock(envvars, envp, "a=a"));
|
||||
ASSERT_NE(-1, mkntenvblock(envvars, envp, "a=a", tmp));
|
||||
ASSERT_BINEQ(u"A = a "
|
||||
u"C = d "
|
||||
u"H D U C = d "
|
||||
|
@ -52,3 +53,11 @@ TEST(mkntenvblock, extraVar_getsAdded) {
|
|||
u" ",
|
||||
envvars);
|
||||
}
|
||||
|
||||
TEST(mkntenvblock, pathvars_getUpdated) {
|
||||
char *envp[] = {"PATH=/c/foo:/d/bar", NULL};
|
||||
ASSERT_NE(-1, mkntenvblock(envvars, envp, 0, tmp));
|
||||
ASSERT_BINEQ(u"P A T H = c : \\ f o o ; d : \\ b a r "
|
||||
u" ",
|
||||
envvars);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue