<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-legacy-support.
</pre>
<p><a href="https://github.com/macports/macports-legacy-support/commit/24b18f8022a8bdeda604cbe90028d8be3bdac445">https://github.com/macports/macports-legacy-support/commit/24b18f8022a8bdeda604cbe90028d8be3bdac445</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 24b18f8022a8bdeda604cbe90028d8be3bdac445
</span>Author: Fred Wright <fw@fwright.net>
AuthorDate: Mon Mar 3 17:32:17 2025 -0800
<span style='display:block; white-space:pre;color:#404040;'> Add additional packet test variants.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> TESTED:
</span><span style='display:block; white-space:pre;color:#404040;'> Passes tests, with references to expected variants.
</span>---
Makefile | 12 ++++++++++++
manual_tests/libtest_packet_nofix_nocancel.c | 8 ++++++++
manual_tests/libtest_packet_nofix_nonposix.c | 27 +++++++++++++++++++++++++++
test/test_packet.c | 23 +++++++++++++++++++++++
test/test_packet_nocancel.c | 6 ++++++
test/test_packet_nonposix.c | 25 +++++++++++++++++++++++++
6 files changed, 101 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/Makefile b/Makefile
</span><span style='display:block; white-space:pre;color:#808080;'>index 92e1eb0..e898ca4 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/Makefile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/Makefile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -190,6 +190,9 @@ STPNCHKRUNS := $(patsubst \
</span> STRNCHKSRCS_C := $(wildcard $(TESTNAMEPREFIX)strncpy_chk*.c)
STRNCHKRUNS := $(patsubst \
$(TESTNAMEPREFIX)%.c,$(TESTRUNPREFIX)%,$(STRNCHKSRCS_C))
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PACKETSRCS_C := $(wildcard $(TESTNAMEPREFIX)packet*.c)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PACKETRUNS := $(patsubst \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(TESTNAMEPREFIX)%.c,$(TESTRUNPREFIX)%,$(PACKETSRCS_C))
</span>
# Tests that are only run manually
MANTESTDIR = manual_tests
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -409,9 +412,15 @@ $(TESTNAMEPREFIX)stat_ino32.o: $(TESTNAMEPREFIX)stat.c
</span> $(TESTNAMEPREFIX)stat_ino64.o: $(TESTNAMEPREFIX)stat.c
$(TESTNAMEPREFIX)stat_ino64_darwin.o: $(TESTNAMEPREFIX)stat.c
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# The packet_* tests include the packet source
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(TESTNAMEPREFIX)packet_nocancel.o: $(TESTNAMEPREFIX)packet.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(TESTNAMEPREFIX)packet_nonposix.o: $(TESTNAMEPREFIX)packet.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # The manual packet tests include the packet source
$(MANTESTPREFIX)libtest_packet_cont.o: $(TESTNAMEPREFIX)packet.c
$(MANTESTPREFIX)libtest_packet_nofix.o: $(TESTNAMEPREFIX)packet.c
<span style='display:block; white-space:pre;background:#e0ffe0;'>+$(MANTESTPREFIX)libtest_packet_nofix_nocancel.o: $(TESTNAMEPREFIX)packet.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(MANTESTPREFIX)libtest_packet_nofix_nonposix.o: $(TESTNAMEPREFIX)packet.c
</span>
# Provide a target for all "darwin_c" tests
$(XTESTRUNPREFIX)darwin_c_all: $(DARWINRUNS)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -434,6 +443,9 @@ $(TESTRUNPREFIX)stpncpy_chk_all: $(STPNCHKRUNS)
</span> # Provide a target for all "strncpy_chk" tests
$(TESTRUNPREFIX)strncpy_chk_all: $(STRNCHKRUNS)
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Provide a target for all non-manual "packet" tests
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(TESTRUNPREFIX)packet_all: $(PACKETRUNS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> $(MANTESTRUNS): $(MANRUNPREFIX)%: $(MANTESTPREFIX)% | $(TEST_TEMP)
$< $(TEST_ARGS)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/manual_tests/libtest_packet_nofix_nocancel.c b/manual_tests/libtest_packet_nofix_nocancel.c
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..7f77394
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/manual_tests/libtest_packet_nofix_nocancel.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Version of no-fix test_packet with NOCANCEL variant.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define _MACPORTS_LEGACY_DISABLE_CMSG_FIXES 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define __DARWIN_NON_CANCELABLE 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include "../test/test_packet.c"
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/manual_tests/libtest_packet_nofix_nonposix.c b/manual_tests/libtest_packet_nofix_nonposix.c
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..0390e35
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/manual_tests/libtest_packet_nofix_nonposix.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,27 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Version of test_packet with non-POSIX semantics (32-bit only).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Attempting a 64-bit build with _NONSTD_SOURCE results in an error.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if defined(__LP64__) && __LP64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <libgen.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <stdio.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+main(int argc, char *argv[])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (void) argc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ printf("%s is inapplicable.\n", basename(argv[0]));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#else /* 32-bit */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define _MACPORTS_LEGACY_DISABLE_CMSG_FIXES 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define _NONSTD_SOURCE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include "../test/test_packet.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif /* 32-bit */
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/test/test_packet.c b/test/test_packet.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 7f8d148..a74c627 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/test/test_packet.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/test/test_packet.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -38,6 +38,29 @@
</span>
#include <mach/mach_time.h>
<span style='display:block; white-space:pre;background:#e0ffe0;'>+/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * If we're building for 10.4 with a later SDK, and testing an alternate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * variant of recvmsg(), we may reference that variant of various other
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * functions. This is only currently handled for recvmsg(), so we arrange
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * to bypass the variant suffixes for the other functions that we use in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * this test. We do this by defining a local version of each function,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * using the __asm() mechanism to point it to the basic version of the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * function, and then defining a macro to substitute it for the local use.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1050
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int __connect(int, const struct sockaddr *, socklen_t) __asm("_connect");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define connect __connect
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ssize_t __send(int, const void *, size_t, int) __asm("_send");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define send __send
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int __close(int) __asm("_close");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define close __close
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif /* 10.4 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> #define SYSCTL_OSVER_CLASS CTL_KERN
#define SYSCTL_OSVER_ITEM KERN_OSRELEASE
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/test/test_packet_nocancel.c b/test/test_packet_nocancel.c
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..dc025b4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/test/test_packet_nocancel.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Version of test_packet with NOCANCEL variant.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define __DARWIN_NON_CANCELABLE 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include "test_packet.c"
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/test/test_packet_nonposix.c b/test/test_packet_nonposix.c
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..e0f9aa0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/test/test_packet_nonposix.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,25 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Version of test_packet with non-POSIX semantics (32-bit only).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Attempting a 64-bit build with _NONSTD_SOURCE results in an error.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if defined(__LP64__) && __LP64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <libgen.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <stdio.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+main(int argc, char *argv[])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (void) argc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ printf("%s is inapplicable.\n", basename(argv[0]));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#else /* 32-bit */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define _NONSTD_SOURCE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include "test_packet.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif /* 32-bit */
</span></pre><pre style='margin:0'>
</pre>