<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/3e2a29b5a41f652c3e26a6d8a9eb10ec4670f904">https://github.com/macports/macports-legacy-support/commit/3e2a29b5a41f652c3e26a6d8a9eb10ec4670f904</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 3e2a29b5a41f652c3e26a6d8a9eb10ec4670f904
</span>Author: Fred Wright <fw@fwright.net>
AuthorDate: Thu Jun 6 15:47:34 2024 -0700
<span style='display:block; white-space:pre;color:#404040;'> Tighten test_stpncpy_chk.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Instead of disabling the tests in the no-check case, it now explicitly
</span><span style='display:block; white-space:pre;color:#404040;'> tests for non-failure of the failure tests in that case, as well as
</span><span style='display:block; white-space:pre;color:#404040;'> unconditionally checking for non-failure of the non-failure case, but
</span><span style='display:block; white-space:pre;color:#404040;'> only in the "static" case, since the "auto" check seems to happen even
</span><span style='display:block; white-space:pre;color:#404040;'> when the checks are nominally disabled.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> This doesn't apply to the disabled runtime check tests.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Also adds a check for the explicitly disabled case.
</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 normally in all cases.
</span><span style='display:block; white-space:pre;color:#404040;'> Now fails when tweaked to treat an enabled case as a disabled case.
</span>---
Makefile | 1 +
test/test_stpncpy_chk.c | 8 ++++++--
test/test_stpncpy_chk_force0.c | 7 +++++++
3 files changed, 14 insertions(+), 2 deletions(-)
<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 a8900c7..1a53bdc 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;'>@@ -322,6 +322,7 @@ $(TESTRUNS): $(TESTRUNPREFIX)%: $(TESTNAMEPREFIX)%
</span>
# The "forced" tests include the unforced source
$(TESTNAMEPREFIX)stpncpy_chk_forced.o: $(TESTNAMEPREFIX)stpncpy_chk.c
<span style='display:block; white-space:pre;background:#e0ffe0;'>+$(TESTNAMEPREFIX)stpncpy_chk_force0.o: $(TESTNAMEPREFIX)stpncpy_chk.c
</span> $(TESTNAMEPREFIX)stpncpy_chk_force1.o: $(TESTNAMEPREFIX)stpncpy_chk.c
$(MANTESTRUNS): $(MANRUNPREFIX)%: $(MANTESTPREFIX)%
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/test/test_stpncpy_chk.c b/test/test_stpncpy_chk.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 5fcd315..2c6cdae 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/test/test_stpncpy_chk.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/test/test_stpncpy_chk.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -193,11 +193,15 @@ main(int argc, char *argv[])
</span> /* Forking with unflushed buffers may produce duplicate output. */
fflush(NULL);
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ assert(run_test_func(&test_good_stpncpy_static) == 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ assert(run_test_func(&test_good_stpncpy_auto) == 0);
</span> if (have_compile_time_checks) {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- assert(run_test_func(&test_good_stpncpy_static) == 0);
</span> assert(run_test_func(&test_bad_stpncpy_static) != 0);
<span style='display:block; white-space:pre;background:#ffe0e0;'>- assert(run_test_func(&test_good_stpncpy_auto) == 0);
</span> assert(run_test_func(&test_bad_stpncpy_auto) != 0);
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ assert(run_test_func(&test_bad_stpncpy_static) == 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Apparently the "auto" check happens even when nominally disabled. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* assert(run_test_func(&test_bad_stpncpy_auto) == 0); */
</span> }
if (have_runtime_checks) {
assert(run_test_func(&test_good_stpncpy_runtime) == 0);
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/test/test_stpncpy_chk_force0.c b/test/test_stpncpy_chk_force0.c
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..e7a7f56
</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_stpncpy_chk_force0.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Version of test_stpncpy_chk with enable forced to 0 (to disable checks).
</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 _FORTIFY_SOURCE 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include "test_stpncpy_chk.c"
</span></pre><pre style='margin:0'>
</pre>