mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-12 14:09:12 +00:00
Stop using .com extension in monorepo
The WIN32 CreateProcess() function does not require an .exe or .com suffix in order to spawn an executable. Now that we have Cosmo bash we're no longer so dependent on the cmd.exe prompt.
This commit is contained in:
parent
c8383f25b4
commit
a6baba1b07
239 changed files with 2092 additions and 2244 deletions
|
@ -13,21 +13,21 @@ TEST_LIBC_CALLS_OBJS = \
|
|||
$(TEST_LIBC_CALLS_SRCS:%.c=o/$(MODE)/%.o)
|
||||
|
||||
TEST_LIBC_CALLS_COMS = \
|
||||
$(TEST_LIBC_CALLS_SRCS_TEST:%.c=o/$(MODE)/%.com)
|
||||
$(TEST_LIBC_CALLS_SRCS_TEST:%.c=o/$(MODE)/%)
|
||||
|
||||
TEST_LIBC_CALLS_BINS = \
|
||||
$(TEST_LIBC_CALLS_COMS) \
|
||||
$(TEST_LIBC_CALLS_COMS:%=%.dbg) \
|
||||
o/$(MODE)/test/libc/calls/life-nomod.com \
|
||||
o/$(MODE)/test/libc/calls/life-classic.com \
|
||||
o/$(MODE)/test/libc/calls/zipread.com.dbg \
|
||||
o/$(MODE)/test/libc/calls/zipread.com
|
||||
o/$(MODE)/test/libc/calls/life-nomod \
|
||||
o/$(MODE)/test/libc/calls/life-classic \
|
||||
o/$(MODE)/test/libc/calls/zipread.dbg \
|
||||
o/$(MODE)/test/libc/calls/zipread
|
||||
|
||||
TEST_LIBC_CALLS_TESTS = \
|
||||
$(TEST_LIBC_CALLS_SRCS_TEST:%.c=o/$(MODE)/%.com.ok)
|
||||
$(TEST_LIBC_CALLS_SRCS_TEST:%.c=o/$(MODE)/%.ok)
|
||||
|
||||
TEST_LIBC_CALLS_CHECKS = \
|
||||
$(TEST_LIBC_CALLS_SRCS_TEST:%.c=o/$(MODE)/%.com.runs)
|
||||
$(TEST_LIBC_CALLS_SRCS_TEST:%.c=o/$(MODE)/%.runs)
|
||||
|
||||
TEST_LIBC_CALLS_DIRECTDEPS = \
|
||||
DSP_CORE \
|
||||
|
@ -61,7 +61,7 @@ o/$(MODE)/test/libc/calls/calls.pkg: \
|
|||
$(TEST_LIBC_CALLS_OBJS) \
|
||||
$(foreach x,$(TEST_LIBC_CALLS_DIRECTDEPS),$($(x)_A).pkg)
|
||||
|
||||
o/$(MODE)/test/libc/calls/%.com.dbg: \
|
||||
o/$(MODE)/test/libc/calls/%.dbg: \
|
||||
$(TEST_LIBC_CALLS_DEPS) \
|
||||
o/$(MODE)/test/libc/calls/%.o \
|
||||
o/$(MODE)/test/libc/calls/calls.pkg \
|
||||
|
@ -70,7 +70,7 @@ o/$(MODE)/test/libc/calls/%.com.dbg: \
|
|||
$(APE_NO_MODIFY_SELF)
|
||||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/calls/stat_test.com.dbg: \
|
||||
o/$(MODE)/test/libc/calls/stat_test.dbg: \
|
||||
$(TEST_LIBC_CALLS_DEPS) \
|
||||
o/$(MODE)/test/libc/calls/stat_test.o \
|
||||
o/$(MODE)/third_party/python/Lib/test/tokenize_tests-latin1-coding-cookie-and-utf8-bom-sig.txt.zip.o \
|
||||
|
@ -80,7 +80,7 @@ o/$(MODE)/test/libc/calls/stat_test.com.dbg: \
|
|||
$(APE_NO_MODIFY_SELF)
|
||||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/calls/unveil_test.com.dbg: \
|
||||
o/$(MODE)/test/libc/calls/unveil_test.dbg: \
|
||||
$(TEST_LIBC_CALLS_DEPS) \
|
||||
o/$(MODE)/test/libc/calls/unveil_test.o \
|
||||
o/$(MODE)/test/libc/mem/prog/life.elf.zip.o \
|
||||
|
@ -91,7 +91,7 @@ o/$(MODE)/test/libc/calls/unveil_test.com.dbg: \
|
|||
$(APE_NO_MODIFY_SELF)
|
||||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/calls/pledge_test.com.dbg: \
|
||||
o/$(MODE)/test/libc/calls/pledge_test.dbg: \
|
||||
$(TEST_LIBC_CALLS_DEPS) \
|
||||
o/$(MODE)/test/libc/calls/pledge_test.o \
|
||||
o/$(MODE)/test/libc/mem/prog/life.elf.zip.o \
|
||||
|
@ -102,14 +102,14 @@ o/$(MODE)/test/libc/calls/pledge_test.com.dbg: \
|
|||
$(APE_NO_MODIFY_SELF)
|
||||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/calls/life-classic.com.dbg: \
|
||||
o/$(MODE)/test/libc/calls/life-classic.dbg: \
|
||||
$(LIBC_RUNTIME) \
|
||||
o/$(MODE)/test/libc/calls/life.o \
|
||||
$(CRT) \
|
||||
$(APE)
|
||||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/calls/life-nomod.com.dbg: \
|
||||
o/$(MODE)/test/libc/calls/life-nomod.dbg: \
|
||||
$(LIBC_RUNTIME) \
|
||||
o/$(MODE)/test/libc/calls/life.o \
|
||||
$(CRT) \
|
||||
|
@ -117,43 +117,43 @@ o/$(MODE)/test/libc/calls/life-nomod.com.dbg: \
|
|||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/calls/tiny64.elf.zip.o \
|
||||
o/$(MODE)/test/libc/calls/life-nomod.com.zip.o \
|
||||
o/$(MODE)/test/libc/calls/life-classic.com.zip.o \
|
||||
o/$(MODE)/test/libc/calls/zipread.com.zip.o: private \
|
||||
o/$(MODE)/test/libc/calls/life-nomod.zip.o \
|
||||
o/$(MODE)/test/libc/calls/life-classic.zip.o \
|
||||
o/$(MODE)/test/libc/calls/zipread.zip.o: private \
|
||||
ZIPOBJ_FLAGS += \
|
||||
-B
|
||||
|
||||
# TODO(jart): Have pledge() support SIOCGIFCONF
|
||||
o/$(MODE)/test/libc/calls/ioctl_test.com.runs: \
|
||||
o/$(MODE)/test/libc/calls/ioctl_test.runs: \
|
||||
private .PLEDGE =
|
||||
|
||||
o/$(MODE)/test/libc/calls/lseek_test.com.runs \
|
||||
o/$(MODE)/test/libc/calls/poll_test.com.runs: \
|
||||
o/$(MODE)/test/libc/calls/lseek_test.runs \
|
||||
o/$(MODE)/test/libc/calls/poll_test.runs: \
|
||||
private .PLEDGE = stdio rpath wpath cpath fattr proc inet
|
||||
|
||||
o/$(MODE)/test/libc/calls/fcntl_test.com.runs \
|
||||
o/$(MODE)/test/libc/calls/lock_test.com.runs \
|
||||
o/$(MODE)/test/libc/calls/lock2_test.com.runs \
|
||||
o/$(MODE)/test/libc/calls/lock_ofd_test.com.runs: \
|
||||
o/$(MODE)/test/libc/calls/fcntl_test.runs \
|
||||
o/$(MODE)/test/libc/calls/lock_test.runs \
|
||||
o/$(MODE)/test/libc/calls/lock2_test.runs \
|
||||
o/$(MODE)/test/libc/calls/lock_ofd_test.runs: \
|
||||
private .PLEDGE = stdio rpath wpath cpath fattr proc flock
|
||||
|
||||
o/$(MODE)/test/libc/calls/unveil_test.com.runs \
|
||||
o/$(MODE)/test/libc/calls/openbsd_test.com.runs: \
|
||||
o/$(MODE)/test/libc/calls/unveil_test.runs \
|
||||
o/$(MODE)/test/libc/calls/openbsd_test.runs: \
|
||||
private .PLEDGE = stdio rpath wpath cpath fattr proc unveil
|
||||
|
||||
o/$(MODE)/test/libc/calls/fexecve_test.com.runs: \
|
||||
o/$(MODE)/test/libc/calls/fexecve_test.runs: \
|
||||
private .UNSANDBOXED = 1 # for memfd_create()
|
||||
|
||||
o/$(MODE)/test/libc/calls/execve_test.com.runs: \
|
||||
o/$(MODE)/test/libc/calls/execve_test.runs: \
|
||||
private .UNSANDBOXED = 1 # for memfd_create()
|
||||
|
||||
o/$(MODE)/test/libc/calls/read_test.com.runs: \
|
||||
o/$(MODE)/test/libc/calls/read_test.runs: \
|
||||
private .UNVEIL += /dev/zero
|
||||
|
||||
# TODO(jart): Update nointernet() to allow AF_INET6
|
||||
o/$(MODE)/test/libc/calls/pledge_test.com.runs: \
|
||||
o/$(MODE)/test/libc/calls/pledge_test.runs: \
|
||||
private .INTERNET = 1
|
||||
o/$(MODE)/test/libc/calls/pledge_test.com.runs: \
|
||||
o/$(MODE)/test/libc/calls/pledge_test.runs: \
|
||||
private .PLEDGE =
|
||||
|
||||
.PHONY: o/$(MODE)/test/libc/calls
|
||||
|
|
|
@ -55,35 +55,34 @@ TEST(commandv, testPathSearch) {
|
|||
}
|
||||
|
||||
TEST(commandv, testSlashes_wontSearchPath_butChecksAccess) {
|
||||
EXPECT_SYS(0, 3, creat("home/sh.com", 0755));
|
||||
EXPECT_SYS(0, 3, creat("home/sh", 0755));
|
||||
EXPECT_SYS(0, 2, write(3, "MZ", 2));
|
||||
EXPECT_SYS(0, 0, close(3));
|
||||
EXPECT_STREQ("home/sh.com",
|
||||
commandv("home/sh.com", pathbuf, sizeof(pathbuf)));
|
||||
EXPECT_STREQ("home/sh", commandv("home/sh", pathbuf, sizeof(pathbuf)));
|
||||
}
|
||||
|
||||
TEST(commandv, testSameDir_doesntHappenByDefaultUnlessItsWindows) {
|
||||
EXPECT_SYS(0, 3, creat("bog.com", 0755));
|
||||
EXPECT_SYS(0, 3, creat("bog", 0755));
|
||||
EXPECT_SYS(0, 2, write(3, "MZ", 2));
|
||||
EXPECT_SYS(0, 0, close(3));
|
||||
EXPECT_STREQ(NULL, commandv("bog.com", pathbuf, sizeof(pathbuf)));
|
||||
EXPECT_STREQ(NULL, commandv("bog", pathbuf, sizeof(pathbuf)));
|
||||
EXPECT_EQ(ENOENT, errno);
|
||||
}
|
||||
|
||||
TEST(commandv, testSameDir_willHappenWithColonBlank) {
|
||||
ASSERT_NE(-1, setenv("PATH", "bin:", true));
|
||||
EXPECT_SYS(0, 3, creat("bog.com", 0755));
|
||||
EXPECT_SYS(0, 3, creat("bog", 0755));
|
||||
EXPECT_SYS(0, 2, write(3, "MZ", 2));
|
||||
EXPECT_SYS(0, 0, close(3));
|
||||
EXPECT_STREQ("bog.com", commandv("bog.com", pathbuf, sizeof(pathbuf)));
|
||||
EXPECT_STREQ("bog", commandv("bog", pathbuf, sizeof(pathbuf)));
|
||||
}
|
||||
|
||||
TEST(commandv, testSameDir_willHappenWithColonBlank2) {
|
||||
ASSERT_NE(-1, setenv("PATH", ":bin", true));
|
||||
EXPECT_SYS(0, 3, creat("bog.com", 0755));
|
||||
EXPECT_SYS(0, 3, creat("bog", 0755));
|
||||
EXPECT_SYS(0, 2, write(3, "MZ", 2));
|
||||
EXPECT_SYS(0, 0, close(3));
|
||||
EXPECT_STREQ("bog.com", commandv("bog.com", pathbuf, sizeof(pathbuf)));
|
||||
EXPECT_STREQ("bog", commandv("bog", pathbuf, sizeof(pathbuf)));
|
||||
}
|
||||
|
||||
TEST(commandv, test_DirPaths_wontConsiderDirectoriesExecutable) {
|
||||
|
@ -95,9 +94,8 @@ TEST(commandv, test_DirPaths_wontConsiderDirectoriesExecutable) {
|
|||
|
||||
TEST(commandv, test_DirPaths_wontConsiderDirectoriesExecutable2) {
|
||||
ASSERT_NE(-1, setenv("PATH", ":bin", true));
|
||||
EXPECT_SYS(0, 0, mkdir("this_is_a_directory.com", 0755));
|
||||
EXPECT_STREQ(NULL,
|
||||
commandv("this_is_a_directory.com", pathbuf, sizeof(pathbuf)));
|
||||
EXPECT_SYS(0, 0, mkdir("this_is_a_directory", 0755));
|
||||
EXPECT_STREQ(NULL, commandv("this_is_a_directory", pathbuf, sizeof(pathbuf)));
|
||||
EXPECT_EQ(ENOENT, errno);
|
||||
}
|
||||
|
||||
|
|
|
@ -124,7 +124,7 @@ TEST(GetProgramExecutableName, movedSelf) {
|
|||
if (skiptests) return;
|
||||
if (IsAarch64() && IsQemuUser()) {
|
||||
// clang-format off
|
||||
// TODO(mrdomino): fix: make -j8 m=aarch64 o/aarch64/test/libc/calls/getprogramexecutablename_test.com.ok
|
||||
// TODO(mrdomino): fix: make -j8 m=aarch64 o/aarch64/test/libc/calls/getprogramexecutablename_test.ok
|
||||
// possibly related to the intersection of binfmt_misc and qemu-aarch64
|
||||
// clang-format on
|
||||
return;
|
||||
|
|
|
@ -85,9 +85,9 @@ TEST(mkntcmdline, fixit) {
|
|||
}
|
||||
|
||||
TEST(mkntcmdline, testWut) {
|
||||
char *argv[] = {"C:\\Users\\jart\\𝑟𝑒𝑑𝑏𝑒𝑎𝑛.com", "--strace", NULL};
|
||||
char *argv[] = {"C:\\Users\\jart\\𝑟𝑒𝑑𝑏𝑒𝑎𝑛", "--strace", NULL};
|
||||
EXPECT_NE(-1, mkntcmdline(cmdline, argv));
|
||||
EXPECT_STREQ(u"C:\\Users\\jart\\𝑟𝑒𝑑𝑏𝑒𝑎𝑛.com --strace", cmdline);
|
||||
EXPECT_STREQ(u"C:\\Users\\jart\\𝑟𝑒𝑑𝑏𝑒𝑎𝑛 --strace", cmdline);
|
||||
}
|
||||
|
||||
BENCH(mkntcmdline, lotsOfArgs) {
|
||||
|
|
|
@ -37,8 +37,8 @@ TEST(mkntpath, testSlashes) {
|
|||
* all it takes to make the feature entirely useless to us, similar to
|
||||
* the law of noncontradiction. We address the issue as follows:
|
||||
*/
|
||||
EXPECT_EQ(9, __mkntpath("o/foo.com", p));
|
||||
EXPECT_STREQ(u"o\\foo.com", p);
|
||||
EXPECT_EQ(5, __mkntpath("o/foo", p));
|
||||
EXPECT_STREQ(u"o\\foo", p);
|
||||
}
|
||||
|
||||
TEST(mkntpath, testUnicode) {
|
||||
|
|
|
@ -6,58 +6,58 @@ PKGS += TEST_LIBC_FMT
|
|||
TEST_LIBC_FMT_SRCS := $(wildcard test/libc/fmt/*.c)
|
||||
TEST_LIBC_FMT_SRCS_TEST = $(filter %_test.c,$(TEST_LIBC_FMT_SRCS))
|
||||
TEST_LIBC_FMT_BINS = $(TEST_LIBC_FMT_COMS) $(TEST_LIBC_FMT_COMS:%=%.dbg)
|
||||
TEST_LIBC_FMT_TESTS = $(TEST_LIBC_FMT_SRCS_TEST:%.c=o/$(MODE)/%.com.ok)
|
||||
TEST_LIBC_FMT_TESTS = $(TEST_LIBC_FMT_SRCS_TEST:%.c=o/$(MODE)/%.ok)
|
||||
|
||||
TEST_LIBC_FMT_OBJS = \
|
||||
TEST_LIBC_FMT_OBJS = \
|
||||
$(TEST_LIBC_FMT_SRCS:%.c=o/$(MODE)/%.o)
|
||||
|
||||
TEST_LIBC_FMT_COMS = \
|
||||
$(TEST_LIBC_FMT_SRCS:%.c=o/$(MODE)/%.com)
|
||||
TEST_LIBC_FMT_COMS = \
|
||||
$(TEST_LIBC_FMT_SRCS:%.c=o/$(MODE)/%)
|
||||
|
||||
TEST_LIBC_FMT_CHECKS = \
|
||||
$(TEST_LIBC_FMT_SRCS_TEST:%.c=o/$(MODE)/%.com.runs)
|
||||
TEST_LIBC_FMT_CHECKS = \
|
||||
$(TEST_LIBC_FMT_SRCS_TEST:%.c=o/$(MODE)/%.runs)
|
||||
|
||||
TEST_LIBC_FMT_DIRECTDEPS = \
|
||||
LIBC_FMT \
|
||||
LIBC_INTRIN \
|
||||
LIBC_LOG \
|
||||
LIBC_MEM \
|
||||
LIBC_NEXGEN32E \
|
||||
LIBC_RUNTIME \
|
||||
LIBC_STDIO \
|
||||
LIBC_STR \
|
||||
LIBC_SYSV \
|
||||
LIBC_TESTLIB \
|
||||
LIBC_TINYMATH \
|
||||
LIBC_X \
|
||||
TEST_LIBC_FMT_DIRECTDEPS = \
|
||||
LIBC_FMT \
|
||||
LIBC_INTRIN \
|
||||
LIBC_LOG \
|
||||
LIBC_MEM \
|
||||
LIBC_NEXGEN32E \
|
||||
LIBC_RUNTIME \
|
||||
LIBC_STDIO \
|
||||
LIBC_STR \
|
||||
LIBC_SYSV \
|
||||
LIBC_TESTLIB \
|
||||
LIBC_TINYMATH \
|
||||
LIBC_X \
|
||||
THIRD_PARTY_GDTOA
|
||||
|
||||
TEST_LIBC_FMT_DEPS := \
|
||||
TEST_LIBC_FMT_DEPS := \
|
||||
$(call uniq,$(foreach x,$(TEST_LIBC_FMT_DIRECTDEPS),$($(x))))
|
||||
|
||||
o/$(MODE)/test/libc/fmt/fmt.pkg: \
|
||||
$(TEST_LIBC_FMT_OBJS) \
|
||||
o/$(MODE)/test/libc/fmt/fmt.pkg: \
|
||||
$(TEST_LIBC_FMT_OBJS) \
|
||||
$(foreach x,$(TEST_LIBC_FMT_DIRECTDEPS),$($(x)_A).pkg)
|
||||
|
||||
o/$(MODE)/test/libc/fmt/%.com.dbg: \
|
||||
$(TEST_LIBC_FMT_DEPS) \
|
||||
o/$(MODE)/test/libc/fmt/%.o \
|
||||
o/$(MODE)/test/libc/fmt/fmt.pkg \
|
||||
$(LIBC_TESTMAIN) \
|
||||
$(CRT) \
|
||||
o/$(MODE)/test/libc/fmt/%.dbg: \
|
||||
$(TEST_LIBC_FMT_DEPS) \
|
||||
o/$(MODE)/test/libc/fmt/%.o \
|
||||
o/$(MODE)/test/libc/fmt/fmt.pkg \
|
||||
$(LIBC_TESTMAIN) \
|
||||
$(CRT) \
|
||||
$(APE_NO_MODIFY_SELF)
|
||||
@$(APELINK)
|
||||
|
||||
$(TEST_LIBC_FMT_OBJS): test/libc/fmt/BUILD.mk
|
||||
|
||||
$(TEST_LIBC_FMT_OBJS): private \
|
||||
DEFAULT_CCFLAGS += \
|
||||
$(TEST_LIBC_FMT_OBJS): private \
|
||||
DEFAULT_CCFLAGS += \
|
||||
-fno-builtin
|
||||
|
||||
o/$(MODE)/test/libc/fmt/fprintf_test.com.runs: \
|
||||
o/$(MODE)/test/libc/fmt/fprintf_test.runs: \
|
||||
private .UNVEIL += w:/dev/full
|
||||
|
||||
.PHONY: o/$(MODE)/test/libc/fmt
|
||||
o/$(MODE)/test/libc/fmt: \
|
||||
$(TEST_LIBC_FMT_BINS) \
|
||||
o/$(MODE)/test/libc/fmt: \
|
||||
$(TEST_LIBC_FMT_BINS) \
|
||||
$(TEST_LIBC_FMT_CHECKS)
|
||||
|
|
|
@ -23,19 +23,19 @@
|
|||
#include "libc/x/x.h"
|
||||
|
||||
TEST(stripexts, test) {
|
||||
char s[] = "foo/bar.com.dbg";
|
||||
char s[] = "foo/bar.dbg";
|
||||
EXPECT_STREQ("foo/bar", stripexts(s));
|
||||
}
|
||||
|
||||
TEST(stripexts, test2) {
|
||||
char s[] = "foo/bar.com.dbg";
|
||||
char s[] = "foo/bar.dbg";
|
||||
EXPECT_STREQ("bar", stripexts(basename(s)));
|
||||
}
|
||||
|
||||
TEST(xstripexts, test) {
|
||||
EXPECT_STREQ("foo/bar", gc(xstripexts("foo/bar.com.dbg")));
|
||||
EXPECT_STREQ("foo/bar", gc(xstripexts("foo/bar.dbg")));
|
||||
}
|
||||
|
||||
TEST(xstripexts, test2) {
|
||||
EXPECT_STREQ("bar", gc(xstripexts(basename("foo/bar.com.dbg"))));
|
||||
EXPECT_STREQ("bar", gc(xstripexts(basename("foo/bar.dbg"))));
|
||||
}
|
||||
|
|
|
@ -10,17 +10,17 @@ TEST_LIBC_INTRIN_OBJS = \
|
|||
$(TEST_LIBC_INTRIN_SRCS:%.c=o/$(MODE)/%.o)
|
||||
|
||||
TEST_LIBC_INTRIN_COMS = \
|
||||
$(TEST_LIBC_INTRIN_SRCS:%.c=o/$(MODE)/%.com)
|
||||
$(TEST_LIBC_INTRIN_SRCS:%.c=o/$(MODE)/%)
|
||||
|
||||
TEST_LIBC_INTRIN_BINS = \
|
||||
$(TEST_LIBC_INTRIN_COMS) \
|
||||
$(TEST_LIBC_INTRIN_COMS:%=%.dbg)
|
||||
|
||||
TEST_LIBC_INTRIN_TESTS = \
|
||||
$(TEST_LIBC_INTRIN_SRCS_TEST:%.c=o/$(MODE)/%.com.ok)
|
||||
$(TEST_LIBC_INTRIN_SRCS_TEST:%.c=o/$(MODE)/%.ok)
|
||||
|
||||
TEST_LIBC_INTRIN_CHECKS = \
|
||||
$(TEST_LIBC_INTRIN_SRCS_TEST:%.c=o/$(MODE)/%.com.runs)
|
||||
$(TEST_LIBC_INTRIN_SRCS_TEST:%.c=o/$(MODE)/%.runs)
|
||||
|
||||
TEST_LIBC_INTRIN_DIRECTDEPS = \
|
||||
LIBC_CALLS \
|
||||
|
@ -50,7 +50,7 @@ o/$(MODE)/test/libc/intrin/intrin.pkg: \
|
|||
$(TEST_LIBC_INTRIN_OBJS) \
|
||||
$(foreach x,$(TEST_LIBC_INTRIN_DIRECTDEPS),$($(x)_A).pkg)
|
||||
|
||||
o/$(MODE)/test/libc/intrin/%.com.dbg: \
|
||||
o/$(MODE)/test/libc/intrin/%.dbg: \
|
||||
$(TEST_LIBC_INTRIN_DEPS) \
|
||||
o/$(MODE)/test/libc/intrin/%.o \
|
||||
o/$(MODE)/test/libc/intrin/intrin.pkg \
|
||||
|
@ -60,7 +60,7 @@ o/$(MODE)/test/libc/intrin/%.com.dbg: \
|
|||
@$(APELINK)
|
||||
|
||||
# Test what happens when *NSYNC isn't linked.
|
||||
o/$(MODE)/test/libc/intrin/lock_test.com.dbg: \
|
||||
o/$(MODE)/test/libc/intrin/lock_test.dbg: \
|
||||
$(TEST_LIBC_INTRIN_DEPS) \
|
||||
o/$(MODE)/test/libc/intrin/lock_test.o \
|
||||
o/$(MODE)/test/libc/intrin/intrin.pkg \
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
*
|
||||
* This test can be run as follows:
|
||||
*
|
||||
* make o//test/libc/intrin/lockscale_test.com.runs V=5 TESTARGS=-b
|
||||
* make o//test/libc/intrin/lockscale_test.runs V=5 TESTARGS=-b
|
||||
*
|
||||
* It's intended to demonstrate the importance of futexes. On systems
|
||||
* that don't have them, this test consumes orders of a magnitude more
|
||||
|
|
|
@ -8,21 +8,21 @@ TEST_LIBC_LOG_SRCS_TEST = $(filter %_test.c,$(TEST_LIBC_LOG_SRCS))
|
|||
|
||||
TEST_LIBC_LOG_OBJS = \
|
||||
$(TEST_LIBC_LOG_SRCS:%.c=o/$(MODE)/%.o) \
|
||||
o/$(MODE)/test/libc/log/backtrace.com.zip.o \
|
||||
o/$(MODE)/test/libc/log/backtrace.com.dbg.zip.o
|
||||
o/$(MODE)/test/libc/log/backtrace.zip.o \
|
||||
o/$(MODE)/test/libc/log/backtrace.dbg.zip.o
|
||||
|
||||
TEST_LIBC_LOG_COMS = \
|
||||
$(TEST_LIBC_LOG_SRCS:%.c=o/$(MODE)/%.com)
|
||||
$(TEST_LIBC_LOG_SRCS:%.c=o/$(MODE)/%)
|
||||
|
||||
TEST_LIBC_LOG_BINS = \
|
||||
$(TEST_LIBC_LOG_COMS) \
|
||||
$(TEST_LIBC_LOG_COMS:%=%.dbg)
|
||||
|
||||
TEST_LIBC_LOG_TESTS = \
|
||||
$(TEST_LIBC_LOG_SRCS_TEST:%.c=o/$(MODE)/%.com.ok)
|
||||
$(TEST_LIBC_LOG_SRCS_TEST:%.c=o/$(MODE)/%.ok)
|
||||
|
||||
TEST_LIBC_LOG_CHECKS = \
|
||||
$(TEST_LIBC_LOG_SRCS_TEST:%.c=o/$(MODE)/%.com.runs)
|
||||
$(TEST_LIBC_LOG_SRCS_TEST:%.c=o/$(MODE)/%.runs)
|
||||
|
||||
TEST_LIBC_LOG_DIRECTDEPS = \
|
||||
LIBC_CALLS \
|
||||
|
@ -47,7 +47,7 @@ o/$(MODE)/test/libc/log/log.pkg: \
|
|||
$(TEST_LIBC_LOG_OBJS) \
|
||||
$(foreach x,$(TEST_LIBC_LOG_DIRECTDEPS),$($(x)_A).pkg)
|
||||
|
||||
o/$(MODE)/test/libc/log/%.com.dbg: \
|
||||
o/$(MODE)/test/libc/log/%.dbg: \
|
||||
$(TEST_LIBC_LOG_DEPS) \
|
||||
o/$(MODE)/test/libc/log/%.o \
|
||||
o/$(MODE)/test/libc/log/log.pkg \
|
||||
|
@ -56,10 +56,10 @@ o/$(MODE)/test/libc/log/%.com.dbg: \
|
|||
$(APE_NO_MODIFY_SELF)
|
||||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/log/backtrace_test.com.dbg: \
|
||||
o/$(MODE)/test/libc/log/backtrace_test.dbg: \
|
||||
$(TEST_LIBC_LOG_DEPS) \
|
||||
o/$(MODE)/test/libc/log/backtrace.com.zip.o \
|
||||
o/$(MODE)/test/libc/log/backtrace.com.dbg.zip.o \
|
||||
o/$(MODE)/test/libc/log/backtrace.zip.o \
|
||||
o/$(MODE)/test/libc/log/backtrace.dbg.zip.o \
|
||||
o/$(MODE)/test/libc/log/backtrace_test.o \
|
||||
o/$(MODE)/test/libc/log/log.pkg \
|
||||
$(LIBC_TESTMAIN) \
|
||||
|
@ -67,15 +67,15 @@ o/$(MODE)/test/libc/log/backtrace_test.com.dbg: \
|
|||
$(APE_NO_MODIFY_SELF)
|
||||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/log/backtrace.com.dbg: \
|
||||
o/$(MODE)/test/libc/log/backtrace.dbg: \
|
||||
$(TEST_LIBC_LOG_DEPS) \
|
||||
o/$(MODE)/test/libc/log/backtrace.o \
|
||||
$(CRT) \
|
||||
$(APE_NO_MODIFY_SELF)
|
||||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/log/backtrace.com.zip.o \
|
||||
o/$(MODE)/test/libc/log/backtrace.com.dbg.zip.o: private \
|
||||
o/$(MODE)/test/libc/log/backtrace.zip.o \
|
||||
o/$(MODE)/test/libc/log/backtrace.dbg.zip.o: private \
|
||||
ZIPOBJ_FLAGS += \
|
||||
-B
|
||||
|
||||
|
|
|
@ -41,14 +41,14 @@
|
|||
#ifdef __x86_64__
|
||||
|
||||
#if 0
|
||||
__static_yoink("backtrace.com");
|
||||
__static_yoink("backtrace.com.dbg");
|
||||
__static_yoink("backtrace");
|
||||
__static_yoink("backtrace.dbg");
|
||||
|
||||
void SetUpOnce(void) {
|
||||
testlib_enable_tmp_setup_teardown_once();
|
||||
ASSERT_NE(-1, mkdir("bin", 0755));
|
||||
testlib_extract("/zip/backtrace.com", "bin/backtrace.com", 0755);
|
||||
testlib_extract("/zip/backtrace.com.dbg", "bin/backtrace.com.dbg", 0755);
|
||||
testlib_extract("/zip/backtrace", "bin/backtrace", 0755);
|
||||
testlib_extract("/zip/backtrace.dbg", "bin/backtrace.dbg", 0755);
|
||||
}
|
||||
|
||||
static bool OutputHasSymbol(const char *output, const char *s) {
|
||||
|
@ -56,7 +56,7 @@ static bool OutputHasSymbol(const char *output, const char *s) {
|
|||
}
|
||||
|
||||
// UNFREED MEMORY
|
||||
// o/dbg/test/libc/log/backtrace_test.com
|
||||
// o/dbg/test/libc/log/backtrace_test
|
||||
// max allocated space 655,360
|
||||
// total allocated space 80
|
||||
// total free space 327,600
|
||||
|
@ -95,7 +95,7 @@ TEST(ShowCrashReports, testMemoryLeakCrash) {
|
|||
if (!pid) {
|
||||
dup2(fds[1], 1);
|
||||
dup2(fds[1], 2);
|
||||
execv("bin/backtrace.com", (char *const[]){"bin/backtrace.com", "6", 0});
|
||||
execv("bin/backtrace", (char *const[]){"bin/backtrace", "6", 0});
|
||||
_Exit(127);
|
||||
}
|
||||
close(fds[1]);
|
||||
|
@ -126,7 +126,7 @@ TEST(ShowCrashReports, testMemoryLeakCrash) {
|
|||
}
|
||||
|
||||
// error: Uncaught SIGFPE (FPE_INTDIV) on nightmare pid 11724
|
||||
// /home/jart/cosmo/o/dbg/test/libc/log/backtrace_test.com.tmp.11721
|
||||
// /home/jart/cosmo/o/dbg/test/libc/log/backtrace_test.tmp.11721
|
||||
// ENOTTY[25]
|
||||
// Linux nightmare SMP Thu, 12 Aug 2021 06:16:45 UTC
|
||||
//
|
||||
|
@ -164,9 +164,9 @@ TEST(ShowCrashReports, testMemoryLeakCrash) {
|
|||
// /* 22 frames mapped w/ 1,879,015,395 frames gapped */
|
||||
//
|
||||
// 00400000-0045b000 r-xp 00000000 08:03 4587526
|
||||
// /home/jart/cosmo/o/dbg/test/libc/log/backtrace_test.com.tmp.11721
|
||||
// /home/jart/cosmo/o/dbg/test/libc/log/backtrace_test.tmp.11721
|
||||
// 0045b000-00461000 rw-p 0005b000 08:03 4587526
|
||||
// /home/jart/cosmo/o/dbg/test/libc/log/backtrace_test.com.tmp.11721
|
||||
// /home/jart/cosmo/o/dbg/test/libc/log/backtrace_test.tmp.11721
|
||||
// 00461000-004a0000 rw-p 00000000 00:00 0
|
||||
// 80070000-80090000 rw-p 00000000 00:00 0
|
||||
// e007ffd0000-e0080000000 rw-p 00000000 00:00 0
|
||||
|
@ -176,7 +176,7 @@ TEST(ShowCrashReports, testMemoryLeakCrash) {
|
|||
// 7ffe075a8000-7ffe075ab000 r--p 00000000 00:00 0 [vvar]
|
||||
// 7ffe075ab000-7ffe075ac000 r-xp 00000000 00:00 0 [vdso]
|
||||
//
|
||||
// /home/jart/cosmo/o/dbg/test/libc/log/backtrace_test.com.tmp.11721 1
|
||||
// /home/jart/cosmo/o/dbg/test/libc/log/backtrace_test.tmp.11721 1
|
||||
TEST(ShowCrashReports, testDivideByZero) {
|
||||
size_t got;
|
||||
ssize_t rc;
|
||||
|
@ -187,7 +187,7 @@ TEST(ShowCrashReports, testDivideByZero) {
|
|||
if (!pid) {
|
||||
dup2(fds[1], 1);
|
||||
dup2(fds[1], 2);
|
||||
execv("bin/backtrace.com", (char *const[]){"bin/backtrace.com", "1", 0});
|
||||
execv("bin/backtrace", (char *const[]){"bin/backtrace", "1", 0});
|
||||
_Exit(127);
|
||||
}
|
||||
close(fds[1]);
|
||||
|
@ -312,7 +312,7 @@ TEST(ShowCrashReports, testBssOverrunCrash) {
|
|||
if (!pid) {
|
||||
dup2(fds[1], 1);
|
||||
dup2(fds[1], 2);
|
||||
execv("bin/backtrace.com", (char *const[]){"bin/backtrace.com", "2", 0});
|
||||
execv("bin/backtrace", (char *const[]){"bin/backtrace", "2", 0});
|
||||
_Exit(127);
|
||||
}
|
||||
close(fds[1]);
|
||||
|
@ -387,7 +387,7 @@ TEST(ShowCrashReports, testNpeCrash) {
|
|||
if (!pid) {
|
||||
dup2(fds[1], 1);
|
||||
dup2(fds[1], 2);
|
||||
execv("bin/backtrace.com", (char *const[]){"bin/backtrace.com", "7", 0});
|
||||
execv("bin/backtrace", (char *const[]){"bin/backtrace", "7", 0});
|
||||
_Exit(127);
|
||||
}
|
||||
close(fds[1]);
|
||||
|
@ -431,7 +431,7 @@ TEST(ShowCrashReports, testDataOverrunCrash) {
|
|||
if (!pid) {
|
||||
dup2(fds[1], 1);
|
||||
dup2(fds[1], 2);
|
||||
execv("bin/backtrace.com", (char *const[]){"bin/backtrace.com", "4", 0});
|
||||
execv("bin/backtrace", (char *const[]){"bin/backtrace", "4", 0});
|
||||
_Exit(127);
|
||||
}
|
||||
close(fds[1]);
|
||||
|
@ -479,7 +479,7 @@ TEST(ShowCrashReports, testNpeCrashAfterFinalize) {
|
|||
if (!pid) {
|
||||
dup2(fds[1], 1);
|
||||
dup2(fds[1], 2);
|
||||
execv("bin/backtrace.com", (char *const[]){"bin/backtrace.com", "8", 0});
|
||||
execv("bin/backtrace", (char *const[]){"bin/backtrace", "8", 0});
|
||||
_Exit(127);
|
||||
}
|
||||
close(fds[1]);
|
||||
|
|
|
@ -13,20 +13,20 @@ TEST_LIBC_MEM_OBJS = \
|
|||
$(TEST_LIBC_MEM_SRCS_CC:%.cc=o/$(MODE)/%.o)
|
||||
|
||||
TEST_LIBC_MEM_COMS = \
|
||||
$(TEST_LIBC_MEM_SRCS_C:%.c=o/$(MODE)/%.com) \
|
||||
$(TEST_LIBC_MEM_SRCS_CC:%.cc=o/$(MODE)/%.com)
|
||||
$(TEST_LIBC_MEM_SRCS_C:%.c=o/$(MODE)/%) \
|
||||
$(TEST_LIBC_MEM_SRCS_CC:%.cc=o/$(MODE)/%)
|
||||
|
||||
TEST_LIBC_MEM_BINS = \
|
||||
$(TEST_LIBC_MEM_COMS) \
|
||||
$(TEST_LIBC_MEM_COMS:%=%.dbg)
|
||||
|
||||
TEST_LIBC_MEM_TESTS = \
|
||||
$(TEST_LIBC_MEM_SRCS_C:%.c=o/$(MODE)/%.com.ok) \
|
||||
$(TEST_LIBC_MEM_SRCS_CC:%.cc=o/$(MODE)/%.com.ok)
|
||||
$(TEST_LIBC_MEM_SRCS_C:%.c=o/$(MODE)/%.ok) \
|
||||
$(TEST_LIBC_MEM_SRCS_CC:%.cc=o/$(MODE)/%.ok)
|
||||
|
||||
TEST_LIBC_MEM_CHECKS = \
|
||||
$(TEST_LIBC_MEM_SRCS_C:%.c=o/$(MODE)/%.com.runs) \
|
||||
$(TEST_LIBC_MEM_SRCS_CC:%.cc=o/$(MODE)/%.com.runs)
|
||||
$(TEST_LIBC_MEM_SRCS_C:%.c=o/$(MODE)/%.runs) \
|
||||
$(TEST_LIBC_MEM_SRCS_CC:%.cc=o/$(MODE)/%.runs)
|
||||
|
||||
TEST_LIBC_MEM_DIRECTDEPS = \
|
||||
LIBC_CALLS \
|
||||
|
@ -55,7 +55,7 @@ o/$(MODE)/test/libc/mem/mem.pkg: \
|
|||
$(TEST_LIBC_MEM_OBJS) \
|
||||
$(foreach x,$(TEST_LIBC_MEM_DIRECTDEPS),$($(x)_A).pkg)
|
||||
|
||||
o/$(MODE)/test/libc/mem/%.com.dbg: \
|
||||
o/$(MODE)/test/libc/mem/%.dbg: \
|
||||
$(TEST_LIBC_MEM_DEPS) \
|
||||
o/$(MODE)/test/libc/mem/%.o \
|
||||
o/$(MODE)/test/libc/mem/mem.pkg \
|
||||
|
@ -74,7 +74,7 @@ o/$(MODE)/test/libc/mem/prog/sock.o: \
|
|||
|
||||
################################################################################
|
||||
|
||||
o/$(MODE)/test/libc/mem/prog/life.com.dbg: \
|
||||
o/$(MODE)/test/libc/mem/prog/life.dbg: \
|
||||
$(LIBC_RUNTIME) \
|
||||
o/$(MODE)/test/libc/mem/prog/life.o \
|
||||
$(CRT) \
|
||||
|
@ -82,14 +82,14 @@ o/$(MODE)/test/libc/mem/prog/life.com.dbg: \
|
|||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/mem/prog/life.elf: \
|
||||
o/$(MODE)/tool/build/assimilate.com \
|
||||
o/$(MODE)/test/libc/mem/prog/life.com
|
||||
o/$(MODE)/tool/build/assimilate \
|
||||
o/$(MODE)/test/libc/mem/prog/life
|
||||
@$(COMPILE) -wACP -T$@ \
|
||||
build/bootstrap/cp.com \
|
||||
o/$(MODE)/test/libc/mem/prog/life.com \
|
||||
build/bootstrap/cp \
|
||||
o/$(MODE)/test/libc/mem/prog/life \
|
||||
o/$(MODE)/test/libc/mem/prog/life.elf
|
||||
@$(COMPILE) -wAASSIMILATE -T$@ \
|
||||
o/$(MODE)/tool/build/assimilate.com -bcef \
|
||||
o/$(MODE)/tool/build/assimilate -bcef \
|
||||
o/$(MODE)/test/libc/mem/prog/life.elf
|
||||
|
||||
o/$(MODE)/test/libc/mem/prog/life.elf.zip.o: private \
|
||||
|
@ -98,13 +98,13 @@ o/$(MODE)/test/libc/mem/prog/life.elf.zip.o: private \
|
|||
|
||||
################################################################################
|
||||
|
||||
o/$(MODE)/test/libc/mem/prog/life.com.zip.o: private \
|
||||
o/$(MODE)/test/libc/mem/prog/life.zip.o: private \
|
||||
ZIPOBJ_FLAGS += \
|
||||
-B
|
||||
|
||||
################################################################################
|
||||
|
||||
o/$(MODE)/test/libc/mem/prog/sock.com.dbg: \
|
||||
o/$(MODE)/test/libc/mem/prog/sock.dbg: \
|
||||
$(LIBC_RUNTIME) \
|
||||
$(LIBC_SOCK) \
|
||||
o/$(MODE)/test/libc/mem/prog/sock.o \
|
||||
|
@ -113,14 +113,14 @@ o/$(MODE)/test/libc/mem/prog/sock.com.dbg: \
|
|||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/mem/prog/sock.elf: \
|
||||
o/$(MODE)/tool/build/assimilate.com \
|
||||
o/$(MODE)/test/libc/mem/prog/sock.com
|
||||
o/$(MODE)/tool/build/assimilate \
|
||||
o/$(MODE)/test/libc/mem/prog/sock
|
||||
@$(COMPILE) -wACP -T$@ \
|
||||
build/bootstrap/cp.com \
|
||||
o/$(MODE)/test/libc/mem/prog/sock.com \
|
||||
build/bootstrap/cp \
|
||||
o/$(MODE)/test/libc/mem/prog/sock \
|
||||
o/$(MODE)/test/libc/mem/prog/sock.elf
|
||||
@$(COMPILE) -wAASSIMILATE -T$@ \
|
||||
o/$(MODE)/tool/build/assimilate.com -cef \
|
||||
o/$(MODE)/tool/build/assimilate -cef \
|
||||
o/$(MODE)/test/libc/mem/prog/sock.elf
|
||||
|
||||
o/$(MODE)/test/libc/mem/prog/sock.elf.zip.o: private \
|
||||
|
|
|
@ -12,17 +12,17 @@ TEST_LIBC_NEXGEN32E_OBJS = \
|
|||
$(TEST_LIBC_NEXGEN32E_SRCS:%.c=o/$(MODE)/%.o)
|
||||
|
||||
TEST_LIBC_NEXGEN32E_COMS = \
|
||||
$(TEST_LIBC_NEXGEN32E_SRCS:%.c=o/$(MODE)/%.com)
|
||||
$(TEST_LIBC_NEXGEN32E_SRCS:%.c=o/$(MODE)/%)
|
||||
|
||||
TEST_LIBC_NEXGEN32E_BINS = \
|
||||
$(TEST_LIBC_NEXGEN32E_COMS) \
|
||||
$(TEST_LIBC_NEXGEN32E_COMS:%=%.dbg)
|
||||
|
||||
TEST_LIBC_NEXGEN32E_TESTS = \
|
||||
$(TEST_LIBC_NEXGEN32E_SRCS_TEST:%.c=o/$(MODE)/%.com.ok)
|
||||
$(TEST_LIBC_NEXGEN32E_SRCS_TEST:%.c=o/$(MODE)/%.ok)
|
||||
|
||||
TEST_LIBC_NEXGEN32E_CHECKS = \
|
||||
$(TEST_LIBC_NEXGEN32E_SRCS_TEST:%.c=o/$(MODE)/%.com.runs)
|
||||
$(TEST_LIBC_NEXGEN32E_SRCS_TEST:%.c=o/$(MODE)/%.runs)
|
||||
|
||||
TEST_LIBC_NEXGEN32E_DIRECTDEPS = \
|
||||
LIBC_CALLS \
|
||||
|
@ -48,7 +48,7 @@ o/$(MODE)/test/libc/nexgen32e/nexgen32e.pkg: \
|
|||
$(TEST_LIBC_NEXGEN32E_OBJS) \
|
||||
$(foreach x,$(TEST_LIBC_NEXGEN32E_DIRECTDEPS),$($(x)_A).pkg)
|
||||
|
||||
o/$(MODE)/test/libc/nexgen32e/%.com.dbg: \
|
||||
o/$(MODE)/test/libc/nexgen32e/%.dbg: \
|
||||
$(TEST_LIBC_NEXGEN32E_DEPS) \
|
||||
o/$(MODE)/test/libc/nexgen32e/%.o \
|
||||
o/$(MODE)/test/libc/nexgen32e/nexgen32e.pkg \
|
||||
|
@ -58,10 +58,10 @@ o/$(MODE)/test/libc/nexgen32e/%.com.dbg: \
|
|||
@$(APELINK)
|
||||
|
||||
# we can't run this test on openbsd because rwx memory isn't allowed
|
||||
o/$(MODE)/test/libc/nexgen32e/stackrwx_test.com.ok: \
|
||||
o/$(MODE)/tool/build/runit.com \
|
||||
o/$(MODE)/tool/build/runitd.com \
|
||||
o/$(MODE)/test/libc/nexgen32e/stackrwx_test.com
|
||||
o/$(MODE)/test/libc/nexgen32e/stackrwx_test.ok: \
|
||||
o/$(MODE)/tool/build/runit \
|
||||
o/$(MODE)/tool/build/runitd \
|
||||
o/$(MODE)/test/libc/nexgen32e/stackrwx_test
|
||||
@$(COMPILE) -wATEST -tT$@ $^ $(filter-out openbsd,$(HOSTS))
|
||||
|
||||
$(TEST_LIBC_NEXGEN32E_OBJS): private \
|
||||
|
|
|
@ -6,90 +6,90 @@ PKGS += TEST_LIBC_PROC
|
|||
TEST_LIBC_PROC_SRCS := $(wildcard test/libc/proc/*.c)
|
||||
TEST_LIBC_PROC_SRCS_TEST = $(filter %_test.c,$(TEST_LIBC_PROC_SRCS))
|
||||
|
||||
TEST_LIBC_PROC_OBJS = \
|
||||
TEST_LIBC_PROC_OBJS = \
|
||||
$(TEST_LIBC_PROC_SRCS:%.c=o/$(MODE)/%.o)
|
||||
|
||||
TEST_LIBC_PROC_COMS = \
|
||||
$(TEST_LIBC_PROC_SRCS:%.c=o/$(MODE)/%.com)
|
||||
TEST_LIBC_PROC_COMS = \
|
||||
$(TEST_LIBC_PROC_SRCS:%.c=o/$(MODE)/%)
|
||||
|
||||
TEST_LIBC_PROC_BINS = \
|
||||
$(TEST_LIBC_PROC_COMS) \
|
||||
TEST_LIBC_PROC_BINS = \
|
||||
$(TEST_LIBC_PROC_COMS) \
|
||||
$(TEST_LIBC_PROC_COMS:%=%.dbg)
|
||||
|
||||
TEST_LIBC_PROC_TESTS = \
|
||||
$(TEST_LIBC_PROC_SRCS_TEST:%.c=o/$(MODE)/%.com.ok)
|
||||
TEST_LIBC_PROC_TESTS = \
|
||||
$(TEST_LIBC_PROC_SRCS_TEST:%.c=o/$(MODE)/%.ok)
|
||||
|
||||
TEST_LIBC_PROC_CHECKS = \
|
||||
$(TEST_LIBC_PROC_SRCS_TEST:%.c=o/$(MODE)/%.com.runs)
|
||||
TEST_LIBC_PROC_CHECKS = \
|
||||
$(TEST_LIBC_PROC_SRCS_TEST:%.c=o/$(MODE)/%.runs)
|
||||
|
||||
TEST_LIBC_PROC_DIRECTDEPS = \
|
||||
LIBC_CALLS \
|
||||
LIBC_FMT \
|
||||
LIBC_INTRIN \
|
||||
LIBC_MEM \
|
||||
LIBC_NEXGEN32E \
|
||||
LIBC_NT_KERNEL32 \
|
||||
LIBC_RUNTIME \
|
||||
LIBC_PROC \
|
||||
LIBC_STR \
|
||||
LIBC_SYSV \
|
||||
LIBC_TESTLIB \
|
||||
LIBC_THREAD \
|
||||
LIBC_X \
|
||||
THIRD_PARTY_MUSL \
|
||||
TEST_LIBC_PROC_DIRECTDEPS = \
|
||||
LIBC_CALLS \
|
||||
LIBC_FMT \
|
||||
LIBC_INTRIN \
|
||||
LIBC_MEM \
|
||||
LIBC_NEXGEN32E \
|
||||
LIBC_NT_KERNEL32 \
|
||||
LIBC_RUNTIME \
|
||||
LIBC_PROC \
|
||||
LIBC_STR \
|
||||
LIBC_SYSV \
|
||||
LIBC_TESTLIB \
|
||||
LIBC_THREAD \
|
||||
LIBC_X \
|
||||
THIRD_PARTY_MUSL \
|
||||
THIRD_PARTY_TR
|
||||
|
||||
TEST_LIBC_PROC_DEPS := \
|
||||
TEST_LIBC_PROC_DEPS := \
|
||||
$(call uniq,$(foreach x,$(TEST_LIBC_PROC_DIRECTDEPS),$($(x))))
|
||||
|
||||
o/$(MODE)/test/libc/proc/proc.pkg: \
|
||||
$(TEST_LIBC_PROC_OBJS) \
|
||||
o/$(MODE)/test/libc/proc/proc.pkg: \
|
||||
$(TEST_LIBC_PROC_OBJS) \
|
||||
$(foreach x,$(TEST_LIBC_PROC_DIRECTDEPS),$($(x)_A).pkg)
|
||||
|
||||
o/$(MODE)/test/libc/proc/%.com.dbg: \
|
||||
$(TEST_LIBC_PROC_DEPS) \
|
||||
o/$(MODE)/test/libc/proc/%.o \
|
||||
o/$(MODE)/test/libc/proc/proc.pkg \
|
||||
o/$(MODE)/tool/build/echo.com.zip.o \
|
||||
$(LIBC_TESTMAIN) \
|
||||
$(CRT) \
|
||||
o/$(MODE)/test/libc/proc/%.dbg: \
|
||||
$(TEST_LIBC_PROC_DEPS) \
|
||||
o/$(MODE)/test/libc/proc/%.o \
|
||||
o/$(MODE)/test/libc/proc/proc.pkg \
|
||||
o/$(MODE)/tool/build/echo.zip.o \
|
||||
$(LIBC_TESTMAIN) \
|
||||
$(CRT) \
|
||||
$(APE_NO_MODIFY_SELF)
|
||||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/proc/posix_spawn_test.com.runs: \
|
||||
o/$(MODE)/test/libc/proc/posix_spawn_test.runs: \
|
||||
private QUOTA += -M8192m
|
||||
|
||||
o/$(MODE)/test/libc/proc/posix_spawn_test.com.dbg: \
|
||||
$(TEST_LIBC_PROC_DEPS) \
|
||||
o/$(MODE)/test/libc/proc/posix_spawn_test.o \
|
||||
o/$(MODE)/test/libc/proc/proc.pkg \
|
||||
o/$(MODE)/tool/build/echo.com.zip.o \
|
||||
o/$(MODE)/tool/build/cocmd.com.zip.o \
|
||||
o/$(MODE)/test/libc/mem/prog/life.com.zip.o \
|
||||
o/$(MODE)/test/libc/mem/prog/life.elf.zip.o \
|
||||
o/$(MODE)/test/libc/proc/life-pe.com.zip.o \
|
||||
$(LIBC_TESTMAIN) \
|
||||
$(CRT) \
|
||||
o/$(MODE)/test/libc/proc/posix_spawn_test.dbg: \
|
||||
$(TEST_LIBC_PROC_DEPS) \
|
||||
o/$(MODE)/test/libc/proc/posix_spawn_test.o \
|
||||
o/$(MODE)/test/libc/proc/proc.pkg \
|
||||
o/$(MODE)/tool/build/echo.zip.o \
|
||||
o/$(MODE)/tool/build/cocmd.zip.o \
|
||||
o/$(MODE)/test/libc/mem/prog/life.zip.o \
|
||||
o/$(MODE)/test/libc/mem/prog/life.elf.zip.o \
|
||||
o/$(MODE)/test/libc/proc/life-pe.zip.o \
|
||||
$(LIBC_TESTMAIN) \
|
||||
$(CRT) \
|
||||
$(APE_NO_MODIFY_SELF)
|
||||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/proc/system_test.com.dbg: \
|
||||
$(TEST_LIBC_PROC_DEPS) \
|
||||
o/$(MODE)/test/libc/proc/system_test.o \
|
||||
o/$(MODE)/test/libc/proc/proc.pkg \
|
||||
o/$(MODE)/tool/build/echo.com.zip.o \
|
||||
o/$(MODE)/tool/build/cocmd.com.zip.o \
|
||||
o/$(MODE)/tool/build/false.com.zip.o \
|
||||
$(LIBC_TESTMAIN) \
|
||||
$(CRT) \
|
||||
o/$(MODE)/test/libc/proc/system_test.dbg: \
|
||||
$(TEST_LIBC_PROC_DEPS) \
|
||||
o/$(MODE)/test/libc/proc/system_test.o \
|
||||
o/$(MODE)/test/libc/proc/proc.pkg \
|
||||
o/$(MODE)/tool/build/echo.zip.o \
|
||||
o/$(MODE)/tool/build/cocmd.zip.o \
|
||||
o/$(MODE)/tool/build/false.zip.o \
|
||||
$(LIBC_TESTMAIN) \
|
||||
$(CRT) \
|
||||
$(APE_NO_MODIFY_SELF)
|
||||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/proc/execve_test.com.dbg: \
|
||||
o/$(MODE)/test/libc/proc/execve_test.dbg: \
|
||||
$(TEST_LIBC_PROC_DEPS) \
|
||||
o/$(MODE)/test/libc/proc/execve_test.o \
|
||||
o/$(MODE)/test/libc/calls/life-nomod.com.zip.o \
|
||||
o/$(MODE)/test/libc/proc/execve_test_prog1.com.zip.o \
|
||||
o/$(MODE)/test/libc/calls/life-nomod.zip.o \
|
||||
o/$(MODE)/test/libc/proc/execve_test_prog1.zip.o \
|
||||
o/$(MODE)/test/libc/mem/prog/life.elf.zip.o \
|
||||
o/$(MODE)/test/libc/mem/prog/sock.elf.zip.o \
|
||||
o/$(MODE)/test/libc/proc/proc.pkg \
|
||||
|
@ -98,26 +98,26 @@ o/$(MODE)/test/libc/proc/execve_test.com.dbg: \
|
|||
$(APE_NO_MODIFY_SELF)
|
||||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/proc/fexecve_test.com.dbg: \
|
||||
o/$(MODE)/test/libc/proc/fexecve_test.dbg: \
|
||||
$(TEST_LIBC_PROC_DEPS) \
|
||||
o/$(MODE)/test/libc/proc/fexecve_test.o \
|
||||
o/$(MODE)/test/libc/proc/fexecve_test.o \
|
||||
o/$(MODE)/test/libc/proc/proc.pkg \
|
||||
o/$(MODE)/test/libc/mem/prog/life.elf.zip.o \
|
||||
o/$(MODE)/test/libc/calls/life-nomod.com.zip.o \
|
||||
o/$(MODE)/test/libc/calls/zipread.com.zip.o \
|
||||
o/$(MODE)/test/libc/calls/life-nomod.zip.o \
|
||||
o/$(MODE)/test/libc/calls/zipread.zip.o \
|
||||
$(LIBC_TESTMAIN) \
|
||||
$(CRT) \
|
||||
$(APE_NO_MODIFY_SELF)
|
||||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/proc/execve_test_prog1.com.zip.o \
|
||||
o/$(MODE)/test/libc/proc/life-pe.com.zip.o: private \
|
||||
ZIPOBJ_FLAGS += \
|
||||
o/$(MODE)/test/libc/proc/execve_test_prog1.zip.o \
|
||||
o/$(MODE)/test/libc/proc/life-pe.zip.o: private \
|
||||
ZIPOBJ_FLAGS += \
|
||||
-B
|
||||
|
||||
$(TEST_LIBC_PROC_OBJS): test/libc/proc/BUILD.mk
|
||||
|
||||
.PHONY: o/$(MODE)/test/libc/proc
|
||||
o/$(MODE)/test/libc/proc: \
|
||||
$(TEST_LIBC_PROC_BINS) \
|
||||
o/$(MODE)/test/libc/proc: \
|
||||
$(TEST_LIBC_PROC_BINS) \
|
||||
$(TEST_LIBC_PROC_CHECKS)
|
||||
|
|
|
@ -51,8 +51,8 @@ void GenBuf(char buf[8], int x) {
|
|||
TEST(execve, testArgPassing) {
|
||||
int i;
|
||||
char ibuf[12], buf[8];
|
||||
const char *prog = "./execve_test_prog1.com";
|
||||
testlib_extract("/zip/execve_test_prog1.com", prog, 0755);
|
||||
const char *prog = "./execve_test_prog1";
|
||||
testlib_extract("/zip/execve_test_prog1", prog, 0755);
|
||||
for (i = 0; i < N; ++i) {
|
||||
FormatInt32(ibuf, i);
|
||||
GenBuf(buf, i);
|
||||
|
@ -84,12 +84,12 @@ TEST(execve, ziposAPE) {
|
|||
if (IsFreebsd()) return; // TODO: fixme on freebsd
|
||||
if (IsLinux() && !__is_linux_2_6_23()) return; // TODO: fixme on old linux
|
||||
if (!IsLinux() && !IsFreebsd()) {
|
||||
EXPECT_EQ(-1, execve("/zip/life-nomod.com", (char *const[]){0},
|
||||
(char *const[]){0}));
|
||||
EXPECT_EQ(
|
||||
-1, execve("/zip/life-nomod", (char *const[]){0}, (char *const[]){0}));
|
||||
return;
|
||||
}
|
||||
SPAWN(fork);
|
||||
execve("/zip/life-nomod.com", (char *const[]){0}, (char *const[]){0});
|
||||
execve("/zip/life-nomod", (char *const[]){0}, (char *const[]){0});
|
||||
kprintf("execve failed: %m\n");
|
||||
EXITS(42);
|
||||
}
|
||||
|
|
|
@ -102,9 +102,9 @@ TEST(fexecve, memfd_create) {
|
|||
|
||||
TEST(fexecve, APE) {
|
||||
if (!IsLinux() && !IsFreebsd()) return;
|
||||
testlib_extract("/zip/life-nomod.com", "life-nomod.com", 0555);
|
||||
testlib_extract("/zip/life-nomod", "life-nomod", 0555);
|
||||
SPAWN(fork);
|
||||
int fd = open("life-nomod.com", O_RDONLY);
|
||||
int fd = open("life-nomod", O_RDONLY);
|
||||
ASSERT_NE(-1, fd);
|
||||
fexecve(fd, (char *const[]){0}, (char *const[]){0});
|
||||
EXITS(42);
|
||||
|
@ -112,9 +112,9 @@ TEST(fexecve, APE) {
|
|||
|
||||
TEST(fexecve, APE_cloexec) {
|
||||
if (!IsLinux() && !IsFreebsd()) return;
|
||||
testlib_extract("/zip/life-nomod.com", "life-nomod.com", 0555);
|
||||
testlib_extract("/zip/life-nomod", "life-nomod", 0555);
|
||||
SPAWN(fork);
|
||||
int fd = open("life-nomod.com", O_RDONLY | O_CLOEXEC);
|
||||
int fd = open("life-nomod", O_RDONLY | O_CLOEXEC);
|
||||
ASSERT_NE(-1, fd);
|
||||
fexecve(fd, (char *const[]){0}, (char *const[]){0});
|
||||
EXITS(42);
|
||||
|
@ -132,7 +132,7 @@ TEST(fexecve, zipos) {
|
|||
|
||||
TEST(fexecve, ziposAPE) {
|
||||
if (!IsLinux() && !IsFreebsd()) return;
|
||||
int fd = open("/zip/life-nomod.com", O_RDONLY);
|
||||
int fd = open("/zip/life-nomod", O_RDONLY);
|
||||
ASSERT_NE(-1, fd);
|
||||
SPAWN(fork);
|
||||
fexecve(fd, (char *const[]){0}, (char *const[]){0});
|
||||
|
@ -143,7 +143,7 @@ TEST(fexecve, ziposAPE) {
|
|||
TEST(fexecve, ziposAPEHasZipos) {
|
||||
if (1) return; // TODO: fixme
|
||||
if (!IsLinux() && !IsFreebsd()) return;
|
||||
int fd = open("/zip/zipread.com", O_RDONLY);
|
||||
int fd = open("/zip/zipread", O_RDONLY);
|
||||
ASSERT_NE(-1, fd);
|
||||
SPAWN(fork);
|
||||
ASSERT_NE(-1, fd);
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
void SetUp(void) {
|
||||
if (getpriority(PRIO_PROCESS, getpid()) != 0) {
|
||||
kprintf("getpriority_test.com must be launched at priority zero\n");
|
||||
kprintf("getpriority_test must be launched at priority zero\n");
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -118,10 +118,10 @@ TEST(posix_spawn, self) {
|
|||
|
||||
TEST(posix_spawn, ape) {
|
||||
int ws, pid;
|
||||
char *prog = "./life.com";
|
||||
char *prog = "./life";
|
||||
char *args[] = {prog, 0};
|
||||
char *envs[] = {0};
|
||||
testlib_extract("/zip/life.com", prog, 0755);
|
||||
testlib_extract("/zip/life", prog, 0755);
|
||||
ASSERT_EQ(0, posix_spawn(&pid, prog, NULL, NULL, args, envs));
|
||||
ASSERT_NE(-1, waitpid(pid, &ws, 0));
|
||||
ASSERT_TRUE(WIFEXITED(ws));
|
||||
|
@ -145,9 +145,9 @@ TEST(posix_spawn, elf) {
|
|||
TEST(posix_spawn, pipe) {
|
||||
char buf[10];
|
||||
int p[2], pid, status;
|
||||
const char *pn = "./echo.com";
|
||||
const char *pn = "./echo";
|
||||
posix_spawn_file_actions_t fa;
|
||||
testlib_extract("/zip/echo.com", "echo.com", 0755);
|
||||
testlib_extract("/zip/echo", "echo", 0755);
|
||||
ASSERT_SYS(0, 0, pipe(p));
|
||||
ASSERT_EQ(0, posix_spawn_file_actions_init(&fa));
|
||||
ASSERT_EQ(0, posix_spawn_file_actions_addclose(&fa, p[0]));
|
||||
|
@ -165,17 +165,17 @@ TEST(posix_spawn, pipe) {
|
|||
TEST(posix_spawn, chdir) {
|
||||
int ws, pid, p[2];
|
||||
char buf[16] = {0};
|
||||
char *args[] = {"cocmd.com", "-c", "cat hello.txt", 0};
|
||||
char *args[] = {"cocmd", "-c", "cat hello.txt", 0};
|
||||
char *envs[] = {0};
|
||||
posix_spawn_file_actions_t fa;
|
||||
testlib_extract("/zip/cocmd.com", "cocmd.com", 0755);
|
||||
testlib_extract("/zip/cocmd", "cocmd", 0755);
|
||||
ASSERT_SYS(0, 0, mkdir("subdir", 0777));
|
||||
ASSERT_SYS(0, 0, xbarf("subdir/hello.txt", "hello\n", -1));
|
||||
ASSERT_SYS(0, 0, pipe2(p, O_CLOEXEC));
|
||||
ASSERT_EQ(0, posix_spawn_file_actions_init(&fa));
|
||||
ASSERT_EQ(0, posix_spawn_file_actions_adddup2(&fa, p[1], 1));
|
||||
ASSERT_EQ(0, posix_spawn_file_actions_addchdir_np(&fa, "subdir"));
|
||||
ASSERT_EQ(0, posix_spawn(&pid, "../cocmd.com", &fa, 0, args, envs));
|
||||
ASSERT_EQ(0, posix_spawn(&pid, "../cocmd", &fa, 0, args, envs));
|
||||
ASSERT_EQ(0, posix_spawn_file_actions_destroy(&fa));
|
||||
ASSERT_SYS(0, 0, close(p[1]));
|
||||
ASSERT_NE(-1, waitpid(pid, &ws, 0));
|
||||
|
@ -201,8 +201,8 @@ TEST(posix_spawn, torture) {
|
|||
posix_spawn_file_actions_t fa;
|
||||
signal(SIGUSR2, OhMyGoth);
|
||||
sigfillset(&allsig);
|
||||
if (!fileexists("echo.com")) {
|
||||
testlib_extract("/zip/echo.com", "echo.com", 0755);
|
||||
if (!fileexists("echo")) {
|
||||
testlib_extract("/zip/echo", "echo", 0755);
|
||||
}
|
||||
// XXX: NetBSD doesn't seem to let us set the scheduler to itself ;_;
|
||||
ASSERT_EQ(0, posix_spawnattr_init(&attr));
|
||||
|
@ -220,10 +220,10 @@ TEST(posix_spawn, torture) {
|
|||
for (int i = 0; i < n; ++i) {
|
||||
char *volatile zzz = malloc(13);
|
||||
volatile int fd = open("/dev/null", O_WRONLY);
|
||||
char *args[] = {"./echo.com", NULL};
|
||||
char *args[] = {"./echo", NULL};
|
||||
char *envs[] = {NULL};
|
||||
raise(SIGUSR2);
|
||||
ASSERT_EQ(0, posix_spawn(&pid, "./echo.com", &fa, &attr, args, envs));
|
||||
ASSERT_EQ(0, posix_spawn(&pid, "./echo", &fa, &attr, args, envs));
|
||||
ASSERT_FALSE(__vforked);
|
||||
ASSERT_NE(-1, waitpid(pid, &ws, 0));
|
||||
EXPECT_FALSE(WIFSIGNALED(ws));
|
||||
|
@ -246,7 +246,7 @@ void *Torturer(void *arg) {
|
|||
TEST(posix_spawn, agony) {
|
||||
int i, n = 4;
|
||||
pthread_t *t = gc(malloc(sizeof(pthread_t) * n));
|
||||
testlib_extract("/zip/echo.com", "echo.com", 0755);
|
||||
testlib_extract("/zip/echo", "echo", 0755);
|
||||
for (i = 0; i < n; ++i) {
|
||||
ASSERT_EQ(0, pthread_create(t + i, 0, Torturer, 0));
|
||||
}
|
||||
|
@ -264,11 +264,11 @@ TEST(posix_spawn, etxtbsy) {
|
|||
if (IsNetbsd()) return; // they don't appear impacted by this race condition
|
||||
if (IsOpenbsd()) return; // they don't appear impacted by this race condition
|
||||
int ws, me, pid, thief;
|
||||
char *prog = "./life.com";
|
||||
char *prog = "./life";
|
||||
char *args[] = {prog, 0};
|
||||
char *envs[] = {0};
|
||||
sigset_t ss, old;
|
||||
testlib_extract("/zip/life.com", prog, 0755);
|
||||
testlib_extract("/zip/life", prog, 0755);
|
||||
for (int i = 0; i < 2; ++i) {
|
||||
sigemptyset(&ss);
|
||||
sigaddset(&ss, SIGUSR1);
|
||||
|
@ -382,22 +382,21 @@ BENCH(posix_spawn, bench) {
|
|||
creat("tiny64", 0755);
|
||||
write(3, kTinyLinuxExit, 128);
|
||||
close(3);
|
||||
testlib_extract("/zip/life.com", "life.com", 0755);
|
||||
testlib_extract("/zip/life", "life", 0755);
|
||||
testlib_extract("/zip/life.elf", "life.elf", 0755);
|
||||
testlib_extract("/zip/life-pe.com", "life-pe.com", 0755);
|
||||
testlib_extract("/zip/life-pe", "life-pe", 0755);
|
||||
kprintf("%s %s (MODE=" MODE
|
||||
" rss=%'zu tiny64=%'zu life.com=%'zu life.elf=%'zu)\n",
|
||||
" rss=%'zu tiny64=%'zu life=%'zu life.elf=%'zu)\n",
|
||||
__describe_os(), GetHost(), GetRss(), GetSize("tiny64"),
|
||||
GetSize("life.com"), GetSize("life.elf"));
|
||||
ForkExecveWait("./life.com");
|
||||
EZBENCH2("posix_spawn life.com", donothing, PosixSpawnWait("./life.com"));
|
||||
EZBENCH2("vfork life.com", donothing, VforkExecveWait("./life.com"));
|
||||
EZBENCH2("fork life.com", donothing, ForkExecveWait("./life.com"));
|
||||
GetSize("life"), GetSize("life.elf"));
|
||||
ForkExecveWait("./life");
|
||||
EZBENCH2("posix_spawn life", donothing, PosixSpawnWait("./life"));
|
||||
EZBENCH2("vfork life", donothing, VforkExecveWait("./life"));
|
||||
EZBENCH2("fork life", donothing, ForkExecveWait("./life"));
|
||||
if (IsWindows()) {
|
||||
EZBENCH2("posix_spawn life-pe.com", donothing,
|
||||
PosixSpawnWait("./life-pe.com"));
|
||||
EZBENCH2("vfork life-pe.com", donothing, VforkExecveWait("./life-pe.com"));
|
||||
EZBENCH2("fork life-pe.com", donothing, ForkExecveWait("./life-pe.com"));
|
||||
EZBENCH2("posix_spawn life-pe", donothing, PosixSpawnWait("./life-pe"));
|
||||
EZBENCH2("vfork life-pe", donothing, VforkExecveWait("./life-pe"));
|
||||
EZBENCH2("fork life-pe", donothing, ForkExecveWait("./life-pe"));
|
||||
}
|
||||
if (IsXnu() || IsWindows() || IsMetal()) return;
|
||||
EZBENCH2("posix_spawn life.elf", donothing, PosixSpawnWait("./life.elf"));
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
#include "libc/dce.h"
|
||||
#include "libc/intrin/kprintf.h"
|
||||
#include "libc/mem/gc.h"
|
||||
#include "libc/mem/gc.h"
|
||||
#include "libc/paths.h"
|
||||
#include "libc/runtime/runtime.h"
|
||||
#include "libc/stdio/stdio.h"
|
||||
|
@ -81,14 +80,14 @@ TEST(system, exit) {
|
|||
}
|
||||
|
||||
TEST(system, testStdoutRedirect) {
|
||||
testlib_extract("/zip/echo.com", "echo.com", 0755);
|
||||
ASSERT_EQ(0, system("./echo.com hello >hello.txt"));
|
||||
testlib_extract("/zip/echo", "echo", 0755);
|
||||
ASSERT_EQ(0, system("./echo hello >hello.txt"));
|
||||
EXPECT_STREQ("hello\n", gc(xslurp("hello.txt", 0)));
|
||||
}
|
||||
|
||||
TEST(system, testStdoutRedirect_withSpacesInFilename) {
|
||||
testlib_extract("/zip/echo.com", "echo.com", 0755);
|
||||
ASSERT_EQ(0, system("./echo.com hello >\"hello there.txt\""));
|
||||
testlib_extract("/zip/echo", "echo", 0755);
|
||||
ASSERT_EQ(0, system("./echo hello >\"hello there.txt\""));
|
||||
EXPECT_STREQ("hello\n", gc(xslurp("hello there.txt", 0)));
|
||||
}
|
||||
|
||||
|
@ -109,10 +108,10 @@ TEST(system, testStderrRedirect_toStdout) {
|
|||
buf[1] = 0;
|
||||
buf[2] = 0;
|
||||
buf[3] = 0;
|
||||
testlib_extract("/zip/echo.com", "echo.com", 0755);
|
||||
testlib_extract("/zip/echo", "echo", 0755);
|
||||
ASSERT_NE(-1, dup2(1, 2));
|
||||
success = false;
|
||||
if (GETEXITSTATUS(system("./echo.com aaa 2>&1")) == 0) {
|
||||
if (GETEXITSTATUS(system("./echo aaa 2>&1")) == 0) {
|
||||
success = read(pipefd[0], buf, 4) == (4);
|
||||
}
|
||||
ASSERT_NE(-1, dup2(stderrBack, 2));
|
||||
|
@ -176,17 +175,17 @@ TEST(system, kill) {
|
|||
}
|
||||
|
||||
TEST(system, exitStatusPreservedAfterSemiColon) {
|
||||
testlib_extract("/zip/false.com", "false.com", 0755);
|
||||
testlib_extract("/zip/false", "false", 0755);
|
||||
ASSERT_EQ(1, GETEXITSTATUS(system("false;")));
|
||||
ASSERT_EQ(1, GETEXITSTATUS(system("false; ")));
|
||||
ASSERT_EQ(1, GETEXITSTATUS(system("./false.com;")));
|
||||
ASSERT_EQ(1, GETEXITSTATUS(system("./false.com;")));
|
||||
ASSERT_EQ(1, GETEXITSTATUS(system("./false;")));
|
||||
ASSERT_EQ(1, GETEXITSTATUS(system("./false;")));
|
||||
CaptureStdout();
|
||||
ASSERT_EQ(0, GETEXITSTATUS(system("false; echo $?")));
|
||||
char buf[9] = {0};
|
||||
ASSERT_EQ(2, read(pipefd[0], buf, 8));
|
||||
ASSERT_STREQ("1\n", buf);
|
||||
ASSERT_EQ(0, GETEXITSTATUS(system("./false.com; echo $?")));
|
||||
ASSERT_EQ(0, GETEXITSTATUS(system("./false; echo $?")));
|
||||
ASSERT_EQ(2, read(pipefd[0], buf, 8));
|
||||
ASSERT_STREQ("1\n", buf);
|
||||
ASSERT_EQ(0, GETEXITSTATUS(system("echo -n hi")));
|
||||
|
@ -222,17 +221,17 @@ TEST(system, allowsLoneCloseCurlyBrace) {
|
|||
ASSERT_EQ(5, read(pipefd[0], buf, 5));
|
||||
ASSERT_STREQ("aaa}\n", buf);
|
||||
bzero(buf, 6);
|
||||
testlib_extract("/zip/echo.com", "echo.com", 0755);
|
||||
ASSERT_EQ(0, GETEXITSTATUS(system("./echo.com \"aaa\"}")));
|
||||
testlib_extract("/zip/echo", "echo", 0755);
|
||||
ASSERT_EQ(0, GETEXITSTATUS(system("./echo \"aaa\"}")));
|
||||
ASSERT_EQ(5, read(pipefd[0], buf, 5));
|
||||
ASSERT_STREQ("aaa}\n", buf);
|
||||
RestoreStdout();
|
||||
}
|
||||
|
||||
TEST(system, glob) {
|
||||
testlib_extract("/zip/echo.com", "echo.com", 0755);
|
||||
ASSERT_EQ(0, system("./ec*.com aaa"));
|
||||
ASSERT_EQ(0, system("./ec?o.com aaa"));
|
||||
testlib_extract("/zip/echo", "echo", 0755);
|
||||
ASSERT_EQ(0, system("./ec* aaa"));
|
||||
ASSERT_EQ(0, system("./ec?o aaa"));
|
||||
}
|
||||
|
||||
TEST(system, env) {
|
||||
|
@ -253,8 +252,8 @@ TEST(system, env) {
|
|||
TEST(system, pipelineCanOutputToFile) {
|
||||
ASSERT_EQ(0, GETEXITSTATUS(system("echo hello | tr a-z A-Z >res")));
|
||||
ASSERT_STREQ("HELLO\n", gc(xslurp("res", 0)));
|
||||
testlib_extract("/zip/echo.com", "echo.com", 0755);
|
||||
ASSERT_EQ(0, GETEXITSTATUS(system("./echo.com hello | tr a-z A-Z >res")));
|
||||
testlib_extract("/zip/echo", "echo", 0755);
|
||||
ASSERT_EQ(0, GETEXITSTATUS(system("./echo hello | tr a-z A-Z >res")));
|
||||
ASSERT_STREQ("HELLO\n", gc(xslurp("res", 0)));
|
||||
}
|
||||
|
||||
|
@ -267,11 +266,11 @@ TEST(system, pipelineCanOutputBackToSelf) {
|
|||
ASSERT_EQ(0, GETEXITSTATUS(system("echo hello | exec tr a-z A-Z")));
|
||||
ASSERT_SYS(0, 6, read(pipefd[0], buf, 16));
|
||||
ASSERT_STREQ("HELLO\n", buf);
|
||||
testlib_extract("/zip/echo.com", "echo.com", 0755);
|
||||
ASSERT_EQ(0, GETEXITSTATUS(system("./echo.com hello | tr a-z A-Z")));
|
||||
testlib_extract("/zip/echo", "echo", 0755);
|
||||
ASSERT_EQ(0, GETEXITSTATUS(system("./echo hello | tr a-z A-Z")));
|
||||
ASSERT_SYS(0, 6, read(pipefd[0], buf, 16));
|
||||
ASSERT_STREQ("HELLO\n", buf);
|
||||
ASSERT_EQ(0, GETEXITSTATUS(system("./echo.com hello | exec tr a-z A-Z")));
|
||||
ASSERT_EQ(0, GETEXITSTATUS(system("./echo hello | exec tr a-z A-Z")));
|
||||
ASSERT_SYS(0, 6, read(pipefd[0], buf, 16));
|
||||
ASSERT_STREQ("HELLO\n", buf);
|
||||
RestoreStdout();
|
||||
|
@ -280,10 +279,10 @@ TEST(system, pipelineCanOutputBackToSelf) {
|
|||
int system2(const char *);
|
||||
|
||||
BENCH(system, bench) {
|
||||
testlib_extract("/zip/echo.com", "echo.com", 0755);
|
||||
EZBENCH2("system cmd", donothing, system("./echo.com hi >/dev/null"));
|
||||
testlib_extract("/zip/echo", "echo", 0755);
|
||||
EZBENCH2("system cmd", donothing, system("./echo hi >/dev/null"));
|
||||
EZBENCH2("systemvpe cmd", donothing,
|
||||
systemvpe("./echo.com", (char *[]){"./echo.com", "hi", 0}, 0));
|
||||
systemvpe("./echo", (char *[]){"./echo", "hi", 0}, 0));
|
||||
EZBENCH2("cocmd echo", donothing, system("echo hi >/dev/null"));
|
||||
EZBENCH2("cocmd exit", donothing, system("exit"));
|
||||
}
|
||||
|
|
|
@ -14,9 +14,9 @@ o/$(MODE)/test/libc/release/cosmopolitan.zip: \
|
|||
o/$(MODE)/ape/ape-copy-self.o \
|
||||
o/$(MODE)/ape/ape-no-modify-self.o \
|
||||
o/$(MODE)/cosmopolitan.a \
|
||||
o/$(MODE)/third_party/zip/zip.com
|
||||
o/$(MODE)/third_party/zip/zip
|
||||
@$(COMPILE) -AZIP -T$@ \
|
||||
o/$(MODE)/third_party/zip/zip.com \
|
||||
o/$(MODE)/third_party/zip/zip \
|
||||
-b$(TMPDIR) -qj $@ \
|
||||
o/cosmopolitan.h \
|
||||
o/$(MODE)/ape/ape.lds \
|
||||
|
@ -46,7 +46,7 @@ o/$(MODE)/test/libc/release/smoke.o: \
|
|||
-Wl,-z,noexecstack \
|
||||
$<
|
||||
|
||||
o/$(MODE)/test/libc/release/smoke.com.dbg: \
|
||||
o/$(MODE)/test/libc/release/smoke.dbg: \
|
||||
o/$(MODE)/test/libc/release/smoke.o \
|
||||
o/$(MODE)/ape/ape.lds \
|
||||
o/$(MODE)/libc/crt/crt.o \
|
||||
|
@ -67,7 +67,7 @@ o/$(MODE)/test/libc/release/smoke.com.dbg: \
|
|||
o/$(MODE)/cosmopolitan.a \
|
||||
-o $@
|
||||
|
||||
o/$(MODE)/test/libc/release/smoke-nms.com.dbg: \
|
||||
o/$(MODE)/test/libc/release/smoke-nms.dbg: \
|
||||
o/$(MODE)/test/libc/release/smoke.o \
|
||||
o/$(MODE)/ape/ape.lds \
|
||||
o/$(MODE)/libc/crt/crt.o \
|
||||
|
@ -88,13 +88,13 @@ o/$(MODE)/test/libc/release/smoke-nms.com.dbg: \
|
|||
o/$(MODE)/cosmopolitan.a \
|
||||
-o $@
|
||||
|
||||
o/$(MODE)/test/libc/release/smoke-chibicc.com.dbg: \
|
||||
o/$(MODE)/test/libc/release/smoke-chibicc.dbg: \
|
||||
o/$(MODE)/test/libc/release/smoke-chibicc.o \
|
||||
o/$(MODE)/ape/ape.lds \
|
||||
o/$(MODE)/libc/crt/crt.o \
|
||||
o/$(MODE)/ape/ape-no-modify-self.o \
|
||||
o/$(MODE)/cosmopolitan.a \
|
||||
o/$(MODE)/third_party/chibicc/chibicc.com
|
||||
o/$(MODE)/third_party/chibicc/chibicc
|
||||
@$(COMPILE) -ALD $(LD) \
|
||||
-static \
|
||||
-no-pie \
|
||||
|
@ -113,9 +113,9 @@ o/$(MODE)/test/libc/release/smoke-chibicc.com.dbg: \
|
|||
o/$(MODE)/test/libc/release/smoke-chibicc.o: \
|
||||
test/libc/release/smoke.c \
|
||||
o/cosmopolitan.h \
|
||||
o/$(MODE)/third_party/chibicc/chibicc.com
|
||||
o/$(MODE)/third_party/chibicc/chibicc
|
||||
@$(COMPILE) -wACHIBICC \
|
||||
o/$(MODE)/third_party/chibicc/chibicc.com \
|
||||
o/$(MODE)/third_party/chibicc/chibicc \
|
||||
$(CHIBICC_FLAGS) \
|
||||
-o $@ \
|
||||
-c \
|
||||
|
@ -131,7 +131,7 @@ o/$(MODE)/test/libc/release/smoke-chibicc.o: \
|
|||
-include o/cosmopolitan.h \
|
||||
$<
|
||||
|
||||
o/$(MODE)/test/libc/release/smokecxx.com.dbg: \
|
||||
o/$(MODE)/test/libc/release/smokecxx.dbg: \
|
||||
o/$(MODE)/test/libc/release/smokecxx.o \
|
||||
o/$(MODE)/ape/ape.lds \
|
||||
o/$(MODE)/libc/crt/crt.o \
|
||||
|
@ -171,7 +171,7 @@ o/$(MODE)/test/libc/release/smokecxx.o: \
|
|||
-include o/cosmopolitan.h \
|
||||
test/libc/release/smokecxx.cc
|
||||
|
||||
o/$(MODE)/test/libc/release/smokeansi.com.dbg: \
|
||||
o/$(MODE)/test/libc/release/smokeansi.dbg: \
|
||||
o/$(MODE)/test/libc/release/smokeansi.o \
|
||||
o/$(MODE)/ape/ape.lds \
|
||||
o/$(MODE)/libc/crt/crt.o \
|
||||
|
@ -216,27 +216,27 @@ o/$(MODE)/test/libc/release/smokeansi.o: \
|
|||
# TODO(jart): Rewrite these shell scripts as C code.
|
||||
# o/$(MODE)/test/libc/release/metal.ok: \
|
||||
# test/libc/release/metal.sh \
|
||||
# o/$(MODE)/examples/hello.com \
|
||||
# o/$(MODE)/tool/build/blinkenlights.com.dbg
|
||||
# o/$(MODE)/examples/hello \
|
||||
# o/$(MODE)/tool/build/blinkenlights.dbg
|
||||
# @$(COMPILE) -ASHTEST -tT$@ $<
|
||||
# o/$(MODE)/test/libc/release/emulate.ok: \
|
||||
# test/libc/release/emulate.sh \
|
||||
# o/$(MODE)/examples/hello.com \
|
||||
# o/$(MODE)/tool/build/blinkenlights.com.dbg
|
||||
# o/$(MODE)/examples/hello \
|
||||
# o/$(MODE)/tool/build/blinkenlights.dbg
|
||||
# @$(COMPILE) -ASHTEST -tT$@ $<
|
||||
|
||||
.PHONY: o/$(MODE)/test/libc/release
|
||||
o/$(MODE)/test/libc/release: \
|
||||
o/$(MODE)/test/libc/release/smoke.com \
|
||||
o/$(MODE)/test/libc/release/smoke.com.runs \
|
||||
o/$(MODE)/test/libc/release/smoke-nms.com \
|
||||
o/$(MODE)/test/libc/release/smoke-nms.com.runs \
|
||||
o/$(MODE)/test/libc/release/smoke-chibicc.com \
|
||||
o/$(MODE)/test/libc/release/smoke-chibicc.com.runs \
|
||||
o/$(MODE)/test/libc/release/smokecxx.com \
|
||||
o/$(MODE)/test/libc/release/smokecxx.com.runs \
|
||||
o/$(MODE)/test/libc/release/smokeansi.com \
|
||||
o/$(MODE)/test/libc/release/smokeansi.com.runs
|
||||
o/$(MODE)/test/libc/release/smoke \
|
||||
o/$(MODE)/test/libc/release/smoke.runs \
|
||||
o/$(MODE)/test/libc/release/smoke-nms \
|
||||
o/$(MODE)/test/libc/release/smoke-nms.runs \
|
||||
o/$(MODE)/test/libc/release/smoke-chibicc \
|
||||
o/$(MODE)/test/libc/release/smoke-chibicc.runs \
|
||||
o/$(MODE)/test/libc/release/smokecxx \
|
||||
o/$(MODE)/test/libc/release/smokecxx.runs \
|
||||
o/$(MODE)/test/libc/release/smokeansi \
|
||||
o/$(MODE)/test/libc/release/smokeansi.runs
|
||||
|
||||
endif
|
||||
endif
|
||||
|
|
|
@ -9,7 +9,7 @@ if [ "$MODE" = opt ] || [ "$MODE" = optlinux ]; then
|
|||
fi
|
||||
|
||||
# smoke test userspace binary emulation
|
||||
CMD="o/$MODE/tool/build/blinkenlights.com.dbg o/$MODE/examples/hello.com"
|
||||
CMD="o/$MODE/tool/build/blinkenlights.dbg o/$MODE/examples/hello"
|
||||
if OUTPUT="$($CMD)"; then
|
||||
if [ x"$OUTPUT" = x"hello world" ]; then
|
||||
exit 0
|
||||
|
|
|
@ -13,7 +13,7 @@ fi
|
|||
$MKDIR o/$MODE/test/libc/release/
|
||||
|
||||
# smoke test booting on bare metal and printing data to serial uart
|
||||
CMD="o/$MODE/tool/build/blinkenlights.com.dbg -r o/$MODE/examples/hello.com"
|
||||
CMD="o/$MODE/tool/build/blinkenlights.dbg -r o/$MODE/examples/hello"
|
||||
if OUTPUT="$($CMD)"; then
|
||||
if [ x"$OUTPUT" = x"hello world" ]; then
|
||||
exit 0
|
||||
|
|
|
@ -10,17 +10,17 @@ TEST_LIBC_RUNTIME_OBJS = \
|
|||
$(TEST_LIBC_RUNTIME_SRCS:%.c=o/$(MODE)/%.o)
|
||||
|
||||
TEST_LIBC_RUNTIME_COMS = \
|
||||
$(TEST_LIBC_RUNTIME_SRCS:%.c=o/$(MODE)/%.com)
|
||||
$(TEST_LIBC_RUNTIME_SRCS:%.c=o/$(MODE)/%)
|
||||
|
||||
TEST_LIBC_RUNTIME_BINS = \
|
||||
$(TEST_LIBC_RUNTIME_COMS) \
|
||||
$(TEST_LIBC_RUNTIME_COMS:%=%.dbg)
|
||||
|
||||
TEST_LIBC_RUNTIME_TESTS = \
|
||||
$(TEST_LIBC_RUNTIME_SRCS_TEST:%.c=o/$(MODE)/%.com.ok)
|
||||
$(TEST_LIBC_RUNTIME_SRCS_TEST:%.c=o/$(MODE)/%.ok)
|
||||
|
||||
TEST_LIBC_RUNTIME_CHECKS = \
|
||||
$(TEST_LIBC_RUNTIME_SRCS_TEST:%.c=o/$(MODE)/%.com.runs)
|
||||
$(TEST_LIBC_RUNTIME_SRCS_TEST:%.c=o/$(MODE)/%.runs)
|
||||
|
||||
TEST_LIBC_RUNTIME_DIRECTDEPS = \
|
||||
LIBC_CALLS \
|
||||
|
@ -49,7 +49,7 @@ o/$(MODE)/test/libc/runtime/runtime.pkg: \
|
|||
$(TEST_LIBC_RUNTIME_OBJS) \
|
||||
$(foreach x,$(TEST_LIBC_RUNTIME_DIRECTDEPS),$($(x)_A).pkg)
|
||||
|
||||
o/$(MODE)/test/libc/runtime/%.com.dbg: \
|
||||
o/$(MODE)/test/libc/runtime/%.dbg: \
|
||||
$(TEST_LIBC_RUNTIME_DEPS) \
|
||||
o/$(MODE)/test/libc/mem/prog/life.elf.zip.o \
|
||||
o/$(MODE)/test/libc/runtime/prog/ftraceasm.txt.zip.o \
|
||||
|
@ -61,7 +61,7 @@ o/$(MODE)/test/libc/runtime/%.com.dbg: \
|
|||
$(APE_NO_MODIFY_SELF)
|
||||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/runtime/ape_test.com.dbg: \
|
||||
o/$(MODE)/test/libc/runtime/ape_test.dbg: \
|
||||
$(TEST_LIBC_RUNTIME_DEPS) \
|
||||
o/$(MODE)/test/libc/runtime/ape_test.o \
|
||||
o/$(MODE)/test/libc/runtime/runtime.pkg \
|
||||
|
@ -74,8 +74,8 @@ $(TEST_LIBC_RUNTIME_OBJS): private \
|
|||
DEFAULT_CCFLAGS += \
|
||||
-fno-builtin
|
||||
|
||||
o/$(MODE)/test/libc/runtime/getenv_test.com.runs: \
|
||||
o/$(MODE)/test/libc/runtime/getenv_test.com
|
||||
o/$(MODE)/test/libc/runtime/getenv_test.runs: \
|
||||
o/$(MODE)/test/libc/runtime/getenv_test
|
||||
@HELLO=THERE build/runit $@ $<
|
||||
|
||||
o/$(MODE)/test/libc/runtime/itsatrap_test.o: private \
|
||||
|
|
|
@ -95,9 +95,9 @@ TEST(GetDosArgv, realWorldUsage) {
|
|||
size_t size = ARG_MAX / 2;
|
||||
char *buf = malloc(size * sizeof(char));
|
||||
char **argv = malloc(max * sizeof(char *));
|
||||
EXPECT_EQ(5, GetDosArgv(u"C:\\Users\\jtunn\\printargs.com oh yes yes yes",
|
||||
buf, size, argv, max));
|
||||
EXPECT_STREQ("C:\\Users\\jtunn\\printargs.com", argv[0]);
|
||||
EXPECT_EQ(5, GetDosArgv(u"C:\\Users\\jtunn\\printargs oh yes yes yes", buf,
|
||||
size, argv, max));
|
||||
EXPECT_STREQ("C:\\Users\\jtunn\\printargs", argv[0]);
|
||||
EXPECT_STREQ("oh", argv[1]);
|
||||
EXPECT_STREQ("yes", argv[2]);
|
||||
EXPECT_STREQ("yes", argv[3]);
|
||||
|
|
|
@ -6,85 +6,85 @@ PKGS += TEST_LIBC_SOCK
|
|||
TEST_LIBC_SOCK_SRCS := $(wildcard test/libc/sock/*.c)
|
||||
TEST_LIBC_SOCK_SRCS_TEST = $(filter %_test.c,$(TEST_LIBC_SOCK_SRCS))
|
||||
|
||||
TEST_LIBC_SOCK_OBJS = \
|
||||
TEST_LIBC_SOCK_OBJS = \
|
||||
$(TEST_LIBC_SOCK_SRCS:%.c=o/$(MODE)/%.o)
|
||||
|
||||
TEST_LIBC_SOCK_COMS = \
|
||||
$(TEST_LIBC_SOCK_SRCS:%.c=o/$(MODE)/%.com)
|
||||
TEST_LIBC_SOCK_COMS = \
|
||||
$(TEST_LIBC_SOCK_SRCS:%.c=o/$(MODE)/%)
|
||||
|
||||
TEST_LIBC_SOCK_BINS = \
|
||||
$(TEST_LIBC_SOCK_COMS) \
|
||||
TEST_LIBC_SOCK_BINS = \
|
||||
$(TEST_LIBC_SOCK_COMS) \
|
||||
$(TEST_LIBC_SOCK_COMS:%=%.dbg)
|
||||
|
||||
TEST_LIBC_SOCK_TESTS = \
|
||||
$(TEST_LIBC_SOCK_SRCS_TEST:%.c=o/$(MODE)/%.com.ok)
|
||||
TEST_LIBC_SOCK_TESTS = \
|
||||
$(TEST_LIBC_SOCK_SRCS_TEST:%.c=o/$(MODE)/%.ok)
|
||||
|
||||
TEST_LIBC_SOCK_CHECKS = \
|
||||
$(TEST_LIBC_SOCK_SRCS_TEST:%.c=o/$(MODE)/%.com.runs)
|
||||
TEST_LIBC_SOCK_CHECKS = \
|
||||
$(TEST_LIBC_SOCK_SRCS_TEST:%.c=o/$(MODE)/%.runs)
|
||||
|
||||
TEST_LIBC_SOCK_DIRECTDEPS = \
|
||||
LIBC_CALLS \
|
||||
LIBC_FMT \
|
||||
LIBC_INTRIN \
|
||||
LIBC_MEM \
|
||||
LIBC_NEXGEN32E \
|
||||
LIBC_PROC \
|
||||
LIBC_RUNTIME \
|
||||
LIBC_SOCK \
|
||||
LIBC_STDIO \
|
||||
LIBC_STR \
|
||||
LIBC_SYSV \
|
||||
LIBC_THREAD \
|
||||
LIBC_LOG \
|
||||
LIBC_SYSV_CALLS \
|
||||
LIBC_TESTLIB \
|
||||
LIBC_X \
|
||||
TEST_LIBC_SOCK_DIRECTDEPS = \
|
||||
LIBC_CALLS \
|
||||
LIBC_FMT \
|
||||
LIBC_INTRIN \
|
||||
LIBC_MEM \
|
||||
LIBC_NEXGEN32E \
|
||||
LIBC_PROC \
|
||||
LIBC_RUNTIME \
|
||||
LIBC_SOCK \
|
||||
LIBC_STDIO \
|
||||
LIBC_STR \
|
||||
LIBC_SYSV \
|
||||
LIBC_THREAD \
|
||||
LIBC_LOG \
|
||||
LIBC_SYSV_CALLS \
|
||||
LIBC_TESTLIB \
|
||||
LIBC_X \
|
||||
TOOL_DECODE_LIB
|
||||
|
||||
TEST_LIBC_SOCK_DEPS := \
|
||||
TEST_LIBC_SOCK_DEPS := \
|
||||
$(call uniq,$(foreach x,$(TEST_LIBC_SOCK_DIRECTDEPS),$($(x))))
|
||||
|
||||
o/$(MODE)/test/libc/sock/sock.pkg: \
|
||||
$(TEST_LIBC_SOCK_OBJS) \
|
||||
o/$(MODE)/test/libc/sock/sock.pkg: \
|
||||
$(TEST_LIBC_SOCK_OBJS) \
|
||||
$(foreach x,$(TEST_LIBC_SOCK_DIRECTDEPS),$($(x)_A).pkg)
|
||||
|
||||
o/$(MODE)/test/libc/sock/%.com.dbg: \
|
||||
$(TEST_LIBC_SOCK_DEPS) \
|
||||
o/$(MODE)/test/libc/sock/%.o \
|
||||
o/$(MODE)/test/libc/sock/sock.pkg \
|
||||
$(LIBC_TESTMAIN) \
|
||||
$(CRT) \
|
||||
o/$(MODE)/test/libc/sock/%.dbg: \
|
||||
$(TEST_LIBC_SOCK_DEPS) \
|
||||
o/$(MODE)/test/libc/sock/%.o \
|
||||
o/$(MODE)/test/libc/sock/sock.pkg \
|
||||
$(LIBC_TESTMAIN) \
|
||||
$(CRT) \
|
||||
$(APE_NO_MODIFY_SELF)
|
||||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/sock/unix_test.com.runs: \
|
||||
o/$(MODE)/test/libc/sock/unix_test.runs: \
|
||||
private .PLEDGE = stdio rpath wpath cpath fattr proc unix
|
||||
|
||||
o/$(MODE)/test/libc/sock/connect_test.com.runs \
|
||||
o/$(MODE)/test/libc/sock/recvfrom_test.com.runs \
|
||||
o/$(MODE)/test/libc/sock/nonblock_test.com.runs \
|
||||
o/$(MODE)/test/libc/sock/socket_test.com.runs \
|
||||
o/$(MODE)/test/libc/sock/shutdown_test.com.runs \
|
||||
o/$(MODE)/test/libc/sock/setsockopt_test.com.runs \
|
||||
o/$(MODE)/test/libc/sock/sendfile_test.com.runs \
|
||||
o/$(MODE)/test/libc/sock/poll_test.com.runs \
|
||||
o/$(MODE)/test/libc/sock/pollfd_test.com.runs: \
|
||||
o/$(MODE)/test/libc/sock/connect_test.runs \
|
||||
o/$(MODE)/test/libc/sock/recvfrom_test.runs \
|
||||
o/$(MODE)/test/libc/sock/nonblock_test.runs \
|
||||
o/$(MODE)/test/libc/sock/socket_test.runs \
|
||||
o/$(MODE)/test/libc/sock/shutdown_test.runs \
|
||||
o/$(MODE)/test/libc/sock/setsockopt_test.runs \
|
||||
o/$(MODE)/test/libc/sock/sendfile_test.runs \
|
||||
o/$(MODE)/test/libc/sock/poll_test.runs \
|
||||
o/$(MODE)/test/libc/sock/pollfd_test.runs: \
|
||||
private .PLEDGE = stdio rpath wpath cpath fattr proc inet
|
||||
|
||||
o/$(MODE)/test/libc/sock/sendrecvmsg_test.com.runs: \
|
||||
o/$(MODE)/test/libc/sock/sendrecvmsg_test.runs: \
|
||||
private .PLEDGE = stdio rpath wpath cpath fattr proc inet recvfd sendfd
|
||||
|
||||
o/$(MODE)/test/libc/sock/socket_test.com.runs: \
|
||||
o/$(MODE)/test/libc/sock/socket_test.runs: \
|
||||
private .INTERNET = 1 # todo: ipv6 filtering
|
||||
|
||||
o/$(MODE)/test/libc/sock/recvmsg_test.com.runs: \
|
||||
o/$(MODE)/test/libc/sock/recvmsg_test.runs: \
|
||||
private .INTERNET = 1 # need to bind to 0.0.0.0
|
||||
o/$(MODE)/test/libc/sock/recvmsg_test.com.runs: \
|
||||
o/$(MODE)/test/libc/sock/recvmsg_test.runs: \
|
||||
private .PLEDGE = stdio rpath wpath cpath fattr proc inet recvfd sendfd
|
||||
|
||||
$(TEST_LIBC_SOCK_OBJS): test/libc/sock/BUILD.mk
|
||||
|
||||
.PHONY: o/$(MODE)/test/libc/sock
|
||||
o/$(MODE)/test/libc/sock: \
|
||||
$(TEST_LIBC_SOCK_BINS) \
|
||||
o/$(MODE)/test/libc/sock: \
|
||||
$(TEST_LIBC_SOCK_BINS) \
|
||||
$(TEST_LIBC_SOCK_CHECKS)
|
||||
|
|
|
@ -12,17 +12,17 @@ TEST_LIBC_STDIO_OBJS = \
|
|||
$(TEST_LIBC_STDIO_SRCS:%.c=o/$(MODE)/%.o)
|
||||
|
||||
TEST_LIBC_STDIO_COMS = \
|
||||
$(TEST_LIBC_STDIO_SRCS:%.c=o/$(MODE)/%.com)
|
||||
$(TEST_LIBC_STDIO_SRCS:%.c=o/$(MODE)/%)
|
||||
|
||||
TEST_LIBC_STDIO_BINS = \
|
||||
$(TEST_LIBC_STDIO_COMS) \
|
||||
$(TEST_LIBC_STDIO_COMS:%=%.dbg)
|
||||
|
||||
TEST_LIBC_STDIO_TESTS = \
|
||||
$(TEST_LIBC_STDIO_SRCS_TEST:%.c=o/$(MODE)/%.com.ok)
|
||||
$(TEST_LIBC_STDIO_SRCS_TEST:%.c=o/$(MODE)/%.ok)
|
||||
|
||||
TEST_LIBC_STDIO_CHECKS = \
|
||||
$(TEST_LIBC_STDIO_SRCS_TEST:%.c=o/$(MODE)/%.com.runs)
|
||||
$(TEST_LIBC_STDIO_SRCS_TEST:%.c=o/$(MODE)/%.runs)
|
||||
|
||||
TEST_LIBC_STDIO_DIRECTDEPS = \
|
||||
LIBC_CALLS \
|
||||
|
@ -55,21 +55,21 @@ o/$(MODE)/test/libc/stdio/stdio.pkg: \
|
|||
$(TEST_LIBC_STDIO_OBJS) \
|
||||
$(foreach x,$(TEST_LIBC_STDIO_DIRECTDEPS),$($(x)_A).pkg)
|
||||
|
||||
o/$(MODE)/test/libc/stdio/%.com.dbg: \
|
||||
o/$(MODE)/test/libc/stdio/%.dbg: \
|
||||
$(TEST_LIBC_STDIO_DEPS) \
|
||||
o/$(MODE)/test/libc/stdio/%.o \
|
||||
o/$(MODE)/test/libc/stdio/stdio.pkg \
|
||||
o/$(MODE)/tool/build/echo.com.zip.o \
|
||||
o/$(MODE)/tool/build/echo.zip.o \
|
||||
$(LIBC_TESTMAIN) \
|
||||
$(CRT) \
|
||||
$(APE_NO_MODIFY_SELF)
|
||||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/stdio/popen_test.com.dbg: \
|
||||
o/$(MODE)/test/libc/stdio/popen_test.dbg: \
|
||||
$(TEST_LIBC_STDIO_DEPS) \
|
||||
o/$(MODE)/test/libc/stdio/popen_test.o \
|
||||
o/$(MODE)/test/libc/stdio/stdio.pkg \
|
||||
o/$(MODE)/tool/build/echo.com.zip.o \
|
||||
o/$(MODE)/tool/build/echo.zip.o \
|
||||
$(LIBC_TESTMAIN) \
|
||||
$(CRT) \
|
||||
$(APE_NO_MODIFY_SELF)
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
#include "libc/limits.h"
|
||||
#include "libc/mem/critbit0.h"
|
||||
#include "libc/mem/gc.h"
|
||||
#include "libc/mem/gc.h"
|
||||
#include "libc/mem/mem.h"
|
||||
#include "libc/runtime/runtime.h"
|
||||
#include "libc/stdio/append.h"
|
||||
|
@ -424,7 +423,7 @@ static int walk(const char *fpath, //
|
|||
|
||||
TEST(dirstream, walk) {
|
||||
ASSERT_SYS(0, 0, nftw("/zip", walk, 128, FTW_PHYS | FTW_DEPTH));
|
||||
ASSERT_STREQ("FTW_F /zip/echo.com\n"
|
||||
ASSERT_STREQ("FTW_F /zip/echo\n"
|
||||
"FTW_F /zip/libc/testlib/hyperion.txt\n"
|
||||
"FTW_F /zip/libc/testlib/moby.txt\n"
|
||||
"FTW_DP /zip/libc/testlib\n"
|
||||
|
|
|
@ -62,8 +62,8 @@ void CheckForFdLeaks(void) {
|
|||
|
||||
TEST(popen, command) {
|
||||
char foo[6];
|
||||
testlib_extract("/zip/echo.com", "echo.com", 0755);
|
||||
ASSERT_NE(NULL, (f = popen("./echo.com hello", "r")));
|
||||
testlib_extract("/zip/echo", "echo", 0755);
|
||||
ASSERT_NE(NULL, (f = popen("./echo hello", "r")));
|
||||
ASSERT_NE(NULL, fgets(foo, sizeof(foo), f));
|
||||
ASSERT_STREQ("hello", foo);
|
||||
ASSERT_EQ(0, pclose(f));
|
||||
|
@ -142,7 +142,7 @@ void *Worker(void *arg) {
|
|||
arg2 = malloc(13);
|
||||
FormatInt32(arg1, _rand64());
|
||||
FormatInt32(arg2, _rand64());
|
||||
sprintf(cmd, "echo %s; ./echo.com %s", arg1, arg2);
|
||||
sprintf(cmd, "echo %s; ./echo %s", arg1, arg2);
|
||||
strcat(arg1, "\n");
|
||||
strcat(arg2, "\n");
|
||||
ASSERT_NE(NULL, (f = popen(cmd, "r")));
|
||||
|
@ -163,7 +163,7 @@ TEST(popen, torture) {
|
|||
}
|
||||
int i, n = 4;
|
||||
pthread_t *t = gc(malloc(sizeof(pthread_t) * n));
|
||||
testlib_extract("/zip/echo.com", "echo.com", 0755);
|
||||
testlib_extract("/zip/echo", "echo", 0755);
|
||||
for (i = 0; i < n; ++i) ASSERT_EQ(0, pthread_create(t + i, 0, Worker, 0));
|
||||
for (i = 0; i < n; ++i) ASSERT_EQ(0, pthread_join(t[i], 0));
|
||||
CheckForFdLeaks();
|
||||
|
|
|
@ -101,7 +101,7 @@ TEST(zipdir, testListZip) {
|
|||
ASSERT_STREQ("..", ent->d_name);
|
||||
ASSERT_EQ(DT_DIR, ent->d_type);
|
||||
ASSERT_NE(NULL, (ent = readdir(dir)));
|
||||
ASSERT_STREQ("echo.com", ent->d_name);
|
||||
ASSERT_STREQ("echo", ent->d_name);
|
||||
ASSERT_EQ(DT_REG, ent->d_type);
|
||||
ASSERT_NE(NULL, (ent = readdir(dir)));
|
||||
ASSERT_STREQ("libc", ent->d_name);
|
||||
|
|
|
@ -10,78 +10,78 @@ TEST_LIBC_STR_SRCS = $(TEST_LIBC_STR_SRCS_C) $(TEST_LIBC_STR_SRCS_CC)
|
|||
TEST_LIBC_STR_SRCS_TEST_C = $(filter %_test.c,$(TEST_LIBC_STR_FILES))
|
||||
TEST_LIBC_STR_SRCS_TEST_CC = $(filter %_test.cc,$(TEST_LIBC_STR_FILES))
|
||||
|
||||
TEST_LIBC_STR_OBJS = \
|
||||
$(TEST_LIBC_STR_SRCS_C:%.c=o/$(MODE)/%.o) \
|
||||
TEST_LIBC_STR_OBJS = \
|
||||
$(TEST_LIBC_STR_SRCS_C:%.c=o/$(MODE)/%.o) \
|
||||
$(TEST_LIBC_STR_SRCS_CC:%.cc=o/$(MODE)/%.o)
|
||||
|
||||
TEST_LIBC_STR_COMS = \
|
||||
$(TEST_LIBC_STR_SRCS_TEST_C:%.c=o/$(MODE)/%.com) \
|
||||
$(TEST_LIBC_STR_SRCS_TEST_CC:%.cc=o/$(MODE)/%.com)
|
||||
TEST_LIBC_STR_COMS = \
|
||||
$(TEST_LIBC_STR_SRCS_TEST_C:%.c=o/$(MODE)/%) \
|
||||
$(TEST_LIBC_STR_SRCS_TEST_CC:%.cc=o/$(MODE)/%)
|
||||
|
||||
TEST_LIBC_STR_BINS = \
|
||||
$(TEST_LIBC_STR_COMS) \
|
||||
TEST_LIBC_STR_BINS = \
|
||||
$(TEST_LIBC_STR_COMS) \
|
||||
$(TEST_LIBC_STR_COMS:%=%.dbg)
|
||||
|
||||
TEST_LIBC_STR_TESTS = \
|
||||
$(TEST_LIBC_STR_SRCS_TEST_C:%.c=o/$(MODE)/%.com.ok) \
|
||||
$(TEST_LIBC_STR_SRCS_TEST_CC:%.cc=o/$(MODE)/%.com.ok)
|
||||
TEST_LIBC_STR_TESTS = \
|
||||
$(TEST_LIBC_STR_SRCS_TEST_C:%.c=o/$(MODE)/%.ok) \
|
||||
$(TEST_LIBC_STR_SRCS_TEST_CC:%.cc=o/$(MODE)/%.ok)
|
||||
|
||||
TEST_LIBC_STR_CHECKS = \
|
||||
$(TEST_LIBC_STR_SRCS_TEST_C:%.c=o/$(MODE)/%.com.runs) \
|
||||
$(TEST_LIBC_STR_SRCS_TEST_CC:%.cc=o/$(MODE)/%.com.runs)
|
||||
TEST_LIBC_STR_CHECKS = \
|
||||
$(TEST_LIBC_STR_SRCS_TEST_C:%.c=o/$(MODE)/%.runs) \
|
||||
$(TEST_LIBC_STR_SRCS_TEST_CC:%.cc=o/$(MODE)/%.runs)
|
||||
|
||||
TEST_LIBC_STR_DIRECTDEPS = \
|
||||
LIBC_CALLS \
|
||||
LIBC_FMT \
|
||||
LIBC_INTRIN \
|
||||
LIBC_LOG \
|
||||
LIBC_TINYMATH \
|
||||
LIBC_MEM \
|
||||
LIBC_NEXGEN32E \
|
||||
LIBC_RUNTIME \
|
||||
LIBC_STDIO \
|
||||
LIBC_STR \
|
||||
LIBC_SYSV \
|
||||
LIBC_SYSV_CALLS \
|
||||
LIBC_TESTLIB \
|
||||
LIBC_X \
|
||||
THIRD_PARTY_COMPILER_RT \
|
||||
THIRD_PARTY_MBEDTLS \
|
||||
THIRD_PARTY_REGEX \
|
||||
THIRD_PARTY_ZLIB \
|
||||
THIRD_PARTY_LIBCXX \
|
||||
THIRD_PARTY_SMALLZ4 \
|
||||
TEST_LIBC_STR_DIRECTDEPS = \
|
||||
LIBC_CALLS \
|
||||
LIBC_FMT \
|
||||
LIBC_INTRIN \
|
||||
LIBC_LOG \
|
||||
LIBC_TINYMATH \
|
||||
LIBC_MEM \
|
||||
LIBC_NEXGEN32E \
|
||||
LIBC_RUNTIME \
|
||||
LIBC_STDIO \
|
||||
LIBC_STR \
|
||||
LIBC_SYSV \
|
||||
LIBC_SYSV_CALLS \
|
||||
LIBC_TESTLIB \
|
||||
LIBC_X \
|
||||
THIRD_PARTY_COMPILER_RT \
|
||||
THIRD_PARTY_MBEDTLS \
|
||||
THIRD_PARTY_REGEX \
|
||||
THIRD_PARTY_ZLIB \
|
||||
THIRD_PARTY_LIBCXX \
|
||||
THIRD_PARTY_SMALLZ4 \
|
||||
THIRD_PARTY_VQSORT
|
||||
|
||||
TEST_LIBC_STR_DEPS := \
|
||||
TEST_LIBC_STR_DEPS := \
|
||||
$(call uniq,$(foreach x,$(TEST_LIBC_STR_DIRECTDEPS),$($(x))))
|
||||
|
||||
o/$(MODE)/test/libc/str/str.pkg: \
|
||||
$(TEST_LIBC_STR_OBJS) \
|
||||
o/$(MODE)/test/libc/str/str.pkg: \
|
||||
$(TEST_LIBC_STR_OBJS) \
|
||||
$(foreach x,$(TEST_LIBC_STR_DIRECTDEPS),$($(x)_A).pkg)
|
||||
|
||||
o/$(MODE)/test/libc/str/tpenc_test.o: private \
|
||||
CFLAGS += \
|
||||
o/$(MODE)/test/libc/str/tpenc_test.o: private \
|
||||
CFLAGS += \
|
||||
$(TRADITIONAL)
|
||||
|
||||
o/$(MODE)/test/libc/str/%.com.dbg: \
|
||||
$(TEST_LIBC_STR_DEPS) \
|
||||
o/$(MODE)/test/libc/str/%.o \
|
||||
o/$(MODE)/test/libc/str/str.pkg \
|
||||
$(LIBC_TESTMAIN) \
|
||||
$(CRT) \
|
||||
o/$(MODE)/test/libc/str/%.dbg: \
|
||||
$(TEST_LIBC_STR_DEPS) \
|
||||
o/$(MODE)/test/libc/str/%.o \
|
||||
o/$(MODE)/test/libc/str/str.pkg \
|
||||
$(LIBC_TESTMAIN) \
|
||||
$(CRT) \
|
||||
$(APE_NO_MODIFY_SELF)
|
||||
@$(APELINK)
|
||||
|
||||
$(TEST_LIBC_STR_OBJS): private \
|
||||
DEFAULT_CCFLAGS += \
|
||||
$(TEST_LIBC_STR_OBJS): private \
|
||||
DEFAULT_CCFLAGS += \
|
||||
-fno-builtin
|
||||
|
||||
o/$(MODE)/test/libc/str/memmove_test.o: private \
|
||||
CFLAGS += \
|
||||
o/$(MODE)/test/libc/str/memmove_test.o: private \
|
||||
CFLAGS += \
|
||||
-O2 -D_FORTIFY_SOURCE=2
|
||||
|
||||
.PHONY: o/$(MODE)/test/libc/str
|
||||
o/$(MODE)/test/libc/str: \
|
||||
$(TEST_LIBC_STR_BINS) \
|
||||
o/$(MODE)/test/libc/str: \
|
||||
$(TEST_LIBC_STR_BINS) \
|
||||
$(TEST_LIBC_STR_CHECKS)
|
||||
|
|
|
@ -38,7 +38,7 @@ TEST(regex, testDns) {
|
|||
regex_t rx;
|
||||
EXPECT_EQ(REG_OK, regcomp(&rx, "^[-._0-9A-Za-z]*$", REG_EXTENDED));
|
||||
EXPECT_EQ(REG_OK, regexec(&rx, "", 0, NULL, 0));
|
||||
EXPECT_EQ(REG_OK, regexec(&rx, "foo.com", 0, NULL, 0));
|
||||
EXPECT_EQ(REG_OK, regexec(&rx, "foo", 0, NULL, 0));
|
||||
EXPECT_EQ(REG_NOMATCH, regexec(&rx, "bar@example", 0, NULL, 0));
|
||||
regfree(&rx);
|
||||
}
|
||||
|
@ -96,16 +96,16 @@ TEST(regex, testUnicodeCharacterClass) {
|
|||
void A(void) {
|
||||
regex_t rx;
|
||||
regcomp(&rx, "^[-._0-9A-Za-z]*$", REG_EXTENDED);
|
||||
regexec(&rx, "foo.com", 0, NULL, 0);
|
||||
regexec(&rx, "foo", 0, NULL, 0);
|
||||
regfree(&rx);
|
||||
}
|
||||
void B(regex_t *rx) {
|
||||
regexec(rx, "foo.com", 0, NULL, 0);
|
||||
regexec(rx, "foo", 0, NULL, 0);
|
||||
}
|
||||
void C(void) {
|
||||
regex_t rx;
|
||||
regcomp(&rx, "^[-._0-9A-Za-z]*$", 0);
|
||||
regexec(&rx, "foo.com", 0, NULL, 0);
|
||||
regexec(&rx, "foo", 0, NULL, 0);
|
||||
regfree(&rx);
|
||||
}
|
||||
void D(regex_t *rx, regmatch_t *m) {
|
||||
|
|
|
@ -16,17 +16,17 @@ TEST_LIBC_THREAD_OBJS = \
|
|||
$(TEST_LIBC_THREAD_SRCS_CC:%.cc=o/$(MODE)/%.o)
|
||||
|
||||
TEST_LIBC_THREAD_COMS = \
|
||||
$(TEST_LIBC_THREAD_OBJS:%.o=%.com)
|
||||
$(TEST_LIBC_THREAD_OBJS:%.o=%)
|
||||
|
||||
TEST_LIBC_THREAD_BINS = \
|
||||
$(TEST_LIBC_THREAD_COMS) \
|
||||
$(TEST_LIBC_THREAD_COMS:%=%.dbg)
|
||||
|
||||
TEST_LIBC_THREAD_TESTS = \
|
||||
$(TEST_LIBC_THREAD_OBJS:%.o=%.com.ok)
|
||||
$(TEST_LIBC_THREAD_OBJS:%.o=%.ok)
|
||||
|
||||
TEST_LIBC_THREAD_CHECKS = \
|
||||
$(TEST_LIBC_THREAD_OBJS:%.o=%.com.runs)
|
||||
$(TEST_LIBC_THREAD_OBJS:%.o=%.runs)
|
||||
|
||||
TEST_LIBC_THREAD_DIRECTDEPS = \
|
||||
LIBC_CALLS \
|
||||
|
@ -58,7 +58,7 @@ o/$(MODE)/test/libc/thread/thread.pkg: \
|
|||
$(TEST_LIBC_THREAD_OBJS) \
|
||||
$(foreach x,$(TEST_LIBC_THREAD_DIRECTDEPS),$($(x)_A).pkg)
|
||||
|
||||
o/$(MODE)/test/libc/thread/%.com.dbg: \
|
||||
o/$(MODE)/test/libc/thread/%.dbg: \
|
||||
$(TEST_LIBC_THREAD_DEPS) \
|
||||
o/$(MODE)/test/libc/thread/%.o \
|
||||
o/$(MODE)/test/libc/thread/thread.pkg \
|
||||
|
@ -67,7 +67,7 @@ o/$(MODE)/test/libc/thread/%.com.dbg: \
|
|||
$(APE_NO_MODIFY_SELF)
|
||||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/thread/pthread_kill_test.com.runs: \
|
||||
o/$(MODE)/test/libc/thread/pthread_kill_test.runs: \
|
||||
private .PLEDGE = stdio rpath wpath cpath fattr proc inet
|
||||
|
||||
.PHONY: o/$(MODE)/test/libc/thread
|
||||
|
|
|
@ -11,11 +11,11 @@ TEST_LIBC_TIME_OBJS = \
|
|||
$(TEST_LIBC_TIME_SRCS:%.c=o/$(MODE)/%.o)
|
||||
|
||||
TEST_LIBC_TIME_COMS = \
|
||||
$(TEST_LIBC_TIME_SRCS:%.c=o/$(MODE)/%.com)
|
||||
$(TEST_LIBC_TIME_SRCS:%.c=o/$(MODE)/%)
|
||||
|
||||
TEST_LIBC_TIME_TESTS = $(TEST_LIBC_TIME_SRCS_TEST:%.c=o/$(MODE)/%.com.ok)
|
||||
TEST_LIBC_TIME_TESTS = $(TEST_LIBC_TIME_SRCS_TEST:%.c=o/$(MODE)/%.ok)
|
||||
TEST_LIBC_TIME_CHECKS = \
|
||||
$(TEST_LIBC_TIME_SRCS_TEST:%.c=o/$(MODE)/%.com.runs)
|
||||
$(TEST_LIBC_TIME_SRCS_TEST:%.c=o/$(MODE)/%.runs)
|
||||
|
||||
TEST_LIBC_TIME_DIRECTDEPS = \
|
||||
LIBC_CALLS \
|
||||
|
@ -36,7 +36,7 @@ o/$(MODE)/test/libc/time/time.pkg: \
|
|||
$(TEST_LIBC_TIME_OBJS) \
|
||||
$(foreach x,$(TEST_LIBC_TIME_DIRECTDEPS),$($(x)_A).pkg)
|
||||
|
||||
o/$(MODE)/test/libc/time/%.com.dbg: \
|
||||
o/$(MODE)/test/libc/time/%.dbg: \
|
||||
$(TEST_LIBC_TIME_DEPS) \
|
||||
o/$(MODE)/test/libc/time/%.o \
|
||||
o/$(MODE)/test/libc/time/time.pkg \
|
||||
|
|
|
@ -10,17 +10,17 @@ TEST_LIBC_TINYMATH_OBJS = \
|
|||
$(TEST_LIBC_TINYMATH_SRCS:%.c=o/$(MODE)/%.o)
|
||||
|
||||
TEST_LIBC_TINYMATH_COMS = \
|
||||
$(TEST_LIBC_TINYMATH_SRCS:%.c=o/$(MODE)/%.com)
|
||||
$(TEST_LIBC_TINYMATH_SRCS:%.c=o/$(MODE)/%)
|
||||
|
||||
TEST_LIBC_TINYMATH_BINS = \
|
||||
$(TEST_LIBC_TINYMATH_COMS) \
|
||||
$(TEST_LIBC_TINYMATH_COMS:%=%.dbg)
|
||||
|
||||
TEST_LIBC_TINYMATH_TESTS = \
|
||||
$(TEST_LIBC_TINYMATH_SRCS_TEST:%.c=o/$(MODE)/%.com.ok)
|
||||
$(TEST_LIBC_TINYMATH_SRCS_TEST:%.c=o/$(MODE)/%.ok)
|
||||
|
||||
TEST_LIBC_TINYMATH_CHECKS = \
|
||||
$(TEST_LIBC_TINYMATH_SRCS_TEST:%.c=o/$(MODE)/%.com.runs)
|
||||
$(TEST_LIBC_TINYMATH_SRCS_TEST:%.c=o/$(MODE)/%.runs)
|
||||
|
||||
TEST_LIBC_TINYMATH_DIRECTDEPS = \
|
||||
LIBC_CALLS \
|
||||
|
@ -47,7 +47,7 @@ o/$(MODE)/test/libc/tinymath/tinymath.pkg: \
|
|||
$(TEST_LIBC_TINYMATH_OBJS) \
|
||||
$(foreach x,$(TEST_LIBC_TINYMATH_DIRECTDEPS),$($(x)_A).pkg)
|
||||
|
||||
o/$(MODE)/test/libc/tinymath/%.com.dbg: \
|
||||
o/$(MODE)/test/libc/tinymath/%.dbg: \
|
||||
$(TEST_LIBC_TINYMATH_DEPS) \
|
||||
o/$(MODE)/test/libc/tinymath/%.o \
|
||||
o/$(MODE)/test/libc/tinymath/tinymath.pkg \
|
||||
|
|
|
@ -10,17 +10,17 @@ TEST_LIBC_X_OBJS = \
|
|||
$(TEST_LIBC_X_SRCS:%.c=o/$(MODE)/%.o)
|
||||
|
||||
TEST_LIBC_X_COMS = \
|
||||
$(TEST_LIBC_X_SRCS:%.c=o/$(MODE)/%.com)
|
||||
$(TEST_LIBC_X_SRCS:%.c=o/$(MODE)/%)
|
||||
|
||||
TEST_LIBC_X_BINS = \
|
||||
$(TEST_LIBC_X_COMS) \
|
||||
$(TEST_LIBC_X_COMS:%=%.dbg)
|
||||
|
||||
TEST_LIBC_X_TESTS = \
|
||||
$(TEST_LIBC_X_SRCS_TEST:%.c=o/$(MODE)/%.com.ok)
|
||||
$(TEST_LIBC_X_SRCS_TEST:%.c=o/$(MODE)/%.ok)
|
||||
|
||||
TEST_LIBC_X_CHECKS = \
|
||||
$(TEST_LIBC_X_SRCS_TEST:%.c=o/$(MODE)/%.com.runs)
|
||||
$(TEST_LIBC_X_SRCS_TEST:%.c=o/$(MODE)/%.runs)
|
||||
|
||||
TEST_LIBC_X_DIRECTDEPS = \
|
||||
LIBC_CALLS \
|
||||
|
@ -45,7 +45,7 @@ o/$(MODE)/test/libc/x/x.pkg: \
|
|||
$(TEST_LIBC_X_OBJS) \
|
||||
$(foreach x,$(TEST_LIBC_X_DIRECTDEPS),$($(x)_A).pkg)
|
||||
|
||||
o/$(MODE)/test/libc/x/%.com.dbg: \
|
||||
o/$(MODE)/test/libc/x/%.dbg: \
|
||||
$(TEST_LIBC_X_DEPS) \
|
||||
o/$(MODE)/test/libc/x/%.o \
|
||||
o/$(MODE)/test/libc/x/x.pkg \
|
||||
|
|
|
@ -56,17 +56,17 @@ TEST_LIBC_XED_OBJS = \
|
|||
$(TEST_LIBC_XED_SRCS:%.c=o/$(MODE)/%.o)
|
||||
|
||||
TEST_LIBC_XED_COMS = \
|
||||
$(TEST_LIBC_XED_SRCS:%.c=o/$(MODE)/%.com)
|
||||
$(TEST_LIBC_XED_SRCS:%.c=o/$(MODE)/%)
|
||||
|
||||
TEST_LIBC_XED_BINS = \
|
||||
$(TEST_LIBC_XED_COMS) \
|
||||
$(TEST_LIBC_XED_COMS:%=%.dbg)
|
||||
|
||||
TEST_LIBC_XED_TESTS = \
|
||||
$(TEST_LIBC_XED_SRCS:%.c=o/$(MODE)/%.com.ok)
|
||||
$(TEST_LIBC_XED_SRCS:%.c=o/$(MODE)/%.ok)
|
||||
|
||||
TEST_LIBC_XED_CHECKS = \
|
||||
$(TEST_LIBC_XED_SRCS:%.c=o/$(MODE)/%.com.runs)
|
||||
$(TEST_LIBC_XED_SRCS:%.c=o/$(MODE)/%.runs)
|
||||
|
||||
TEST_LIBC_XED_DIRECTDEPS = \
|
||||
LIBC_INTRIN \
|
||||
|
@ -85,7 +85,7 @@ o/$(MODE)/test/libc/xed/xed.pkg: \
|
|||
$(TEST_LIBC_XED_OBJS) \
|
||||
$(foreach x,$(TEST_LIBC_XED_DIRECTDEPS),$($(x)_A).pkg)
|
||||
|
||||
o/$(MODE)/test/libc/xed/%.com.dbg: \
|
||||
o/$(MODE)/test/libc/xed/%.dbg: \
|
||||
$(TEST_LIBC_XED_DEPS) \
|
||||
o/$(MODE)/test/libc/xed/%.o \
|
||||
o/$(MODE)/test/libc/xed/xed.pkg \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue