From 809f0f5019c202edf3917f8251c70a008cf8a3d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C5=8Dshin?= Date: Mon, 4 Dec 2023 19:33:37 -0500 Subject: [PATCH] Turn on tests, check argv[0] --- .../calls/getprogramexecutablename_test.c | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/test/libc/calls/getprogramexecutablename_test.c b/test/libc/calls/getprogramexecutablename_test.c index 61c9ed914..aa5d51a32 100644 --- a/test/libc/calls/getprogramexecutablename_test.c +++ b/test/libc/calls/getprogramexecutablename_test.c @@ -28,25 +28,20 @@ #include "libc/testlib/testlib.h" static char *self; -static bool skipcosmotests; void SetUp(void) { self = GetProgramExecutableName(); } void SetUpOnce(void) { - if (!getenv("COSMOPOLITAN_PROGRAM_EXECUTABLE")) { - fprintf(stderr, - "warning: old ape loader detected; skipping some tests %m\n"); - skipcosmotests = true; - } testlib_enable_tmp_setup_teardown(); } __attribute__((__constructor__)) static void Child(int argc, char *argv[]) { if (argc >= 2 && !strcmp(argv[1], "Child")) { - ASSERT_EQ(3, argc); + ASSERT_EQ(argc, 4); EXPECT_STREQ(argv[2], GetProgramExecutableName()); + EXPECT_STREQ(argv[3], argv[0]); exit(g_testlib_failed); } } @@ -59,33 +54,33 @@ TEST(GetProgramExecutableName, ofThisFile) { TEST(GetProgramExecutableName, nullEnv) { SPAWN(fork); - execve(self, (char *[]){self, "Child", self, 0}, (char *[]){0}); + execve(self, (char *[]){self, "Child", self, self, 0}, (char *[]){0}); abort(); EXITS(0); } TEST(GetProramExecutableName, weirdArgv0NullEnv) { SPAWN(fork); - execve(self, (char *[]){"hello", "Child", self, 0}, (char *[]){0}); + execve(self, (char *[]){"hello", "Child", self, "hello", 0}, (char *[]){0}); abort(); EXITS(0); } TEST(GetProgramExecutableName, weirdArgv0CosmoVar) { - if (skipcosmotests) return; char buf[32 + PATH_MAX]; stpcpy(stpcpy(buf, "COSMOPOLITAN_PROGRAM_EXECUTABLE="), self); SPAWN(fork); - execve(self, (char *[]){"hello", "Child", self, 0}, (char *[]){buf, 0}); + execve(self, (char *[]){"hello", "Child", self, "hello", 0}, + (char *[]){buf, 0}); abort(); EXITS(0); } TEST(GetProgramExecutableName, weirdArgv0WrongCosmoVar) { - if (skipcosmotests) return; char *bad = "COSMOPOLITAN_PROGRAM_EXECUTABLE=hi"; SPAWN(fork); - execve(self, (char *[]){"hello", "Child", self, 0}, (char *[]){bad, 0}); + execve(self, (char *[]){"hello", "Child", self, "hello", 0}, + (char *[]){bad, 0}); abort(); EXITS(0); } @@ -104,7 +99,7 @@ TEST(GetProgramExecutableName, movedSelf) { ASSERT_NE(NULL, getcwd(buf, BUFSIZ - 5)); stpcpy(buf + strlen(buf), "/test"); SPAWN(fork); - execve(buf, (char *[]){"hello", "Child", buf, 0}, (char *[]){0}); + execve(buf, (char *[]){"hello", "Child", buf, "hello", 0}, (char *[]){0}); abort(); EXITS(0); }