<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/fbca791c0fd0c55d429df26e1452170f295043bf">https://github.com/macports/macports-legacy-support/commit/fbca791c0fd0c55d429df26e1452170f295043bf</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit fbca791c0fd0c55d429df26e1452170f295043bf
</span>Author: Fred Wright <fw@fwright.net>
AuthorDate: Wed Jan 15 10:26:54 2025 -0800

<span style='display:block; white-space:pre;color:#404040;'>    Add fstatx_np() tests with NULL fsec.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Since the NULL fsec case doesn't have the 10.4 Rosetta bug, it should
</span><span style='display:block; white-space:pre;color:#404040;'>    be tested separately.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Also fixes misplaced fclose() in previous fstatx_np() tests.
</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 on all platforms, including with Rosetta.
</span>---
 test/test_stat.c | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/test/test_stat.c b/test/test_stat.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 9fd49e2..68242d3 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/test/test_stat.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/test/test_stat.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -470,6 +470,16 @@ main(int argc, char *argv[])
</span>   assert(S_ISLNK(get_mode(0)) && "lstatx_np expected symlink");
   check_copy(0, 1);
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+  if (verbose) printf("  testing 'fstatx_np with NULL fsec'\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  /* Use fopen() to steer clear of open()/close() variant issues. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  assert((fp = fopen(source_link, "r")) != NULL && "open of source failed");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  stat_init(0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  stat_err = fstatx_np(fileno(fp), &stat_buf.s.s, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  if (check_err("fstatx_np")) return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  assert(S_ISREG(get_mode(0)) && "fstat expected regular file");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  check_copy(0, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  (void) fclose(fp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>   if (arch_ok()) {
     if (verbose) printf("  testing 'fstatx_np'\n");
     /* Use fopen() to steer clear of open()/close() variant issues. */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -479,6 +489,7 @@ main(int argc, char *argv[])
</span>     if (check_err("fstatx_np")) return 1;
     assert(S_ISREG(get_mode(0)) && "fstat expected regular file");
     check_copy(0, 0);
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    (void) fclose(fp);
</span>   } else {
     if (verbose) printf("  avoiding 'fstatx_np' due to Rosetta bug\n");
   }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -506,6 +517,16 @@ main(int argc, char *argv[])
</span>   assert(S_ISLNK(get_mode(1)) && "lstatx64_np expected symlink");
   check_copy(1, 1);
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+  if (verbose) printf("  testing 'fstatx64_np with NULL fsec'\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  /* Use fopen() to steer clear of open()/close() variant issues. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  assert((fp = fopen(source_link, "r")) != NULL && "open of source failed");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  stat_init(1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  stat_err = fstatx64_np(fileno(fp), &stat_buf.s64.s, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  if (check_err("fstatx64_np")) return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  assert(S_ISREG(get_mode(1)) && "fstatx64_np expected regular file");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  check_copy(1, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  (void) fclose(fp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>   if (arch_ok()) {
     if (verbose) printf("  testing 'fstatx64_np'\n");
     /* Use fopen() to steer clear of open()/close() variant issues. */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -515,12 +536,11 @@ main(int argc, char *argv[])
</span>     if (check_err("fstatx64_np")) return 1;
     assert(S_ISREG(get_mode(1)) && "fstatx64_np expected regular file");
     check_copy(1, 0);
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    (void) fclose(fp);
</span>   } else {
     if (verbose) printf("  avoiding 'fstatx64_np' due to Rosetta bug\n");
   }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-  (void) fclose(fp);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> #endif /* __MPLS_HAVE_STAT64 */
 
   filesec_free(fsec);
</pre><pre style='margin:0'>

</pre>