[libc-commits] [libc] [libc] Use anonymous namespace for test helper code (PR #157203)

Roland McGrath via libc-commits libc-commits at lists.llvm.org
Fri Sep 5 16:51:09 PDT 2025


https://github.com/frobtech created https://github.com/llvm/llvm-project/pull/157203

Tests can be at top-level or inside an anonymous namespace,
doesn't matter.  But putting their helper code inside anonymous
namespaces both makes the code compatible with compiling using
-Wmissing-declarations and might let the compiler optimize the
test good a bit better.


>From 70afe838c336eb0e89a2c9c0e8439302b210a7ae Mon Sep 17 00:00:00 2001
From: Roland McGrath <mcgrathr at google.com>
Date: Fri, 5 Sep 2025 16:49:05 -0700
Subject: [PATCH] [libc] Use anonymous namespace for test helper code

Tests can be at top-level or inside an anonymous namespace,
doesn't matter.  But putting their helper code inside anonymous
namespaces both makes the code compatible with compiling using
-Wmissing-declarations and might let the compiler optimize the
test good a bit better.
---
 libc/test/src/setjmp/setjmp_test.cpp            |  4 ++++
 libc/test/src/stdio/printf_core/writer_test.cpp |  7 +++++--
 libc/test/src/stdlib/quick_sort_test.cpp        |  4 ++++
 libc/test/src/string/memchr_test.cpp            | 10 ++++++++--
 libc/test/src/string/memrchr_test.cpp           | 10 ++++++++--
 5 files changed, 29 insertions(+), 6 deletions(-)

diff --git a/libc/test/src/setjmp/setjmp_test.cpp b/libc/test/src/setjmp/setjmp_test.cpp
index 27113cd6e0631..d13bb8d55d46a 100644
--- a/libc/test/src/setjmp/setjmp_test.cpp
+++ b/libc/test/src/setjmp/setjmp_test.cpp
@@ -10,6 +10,8 @@
 #include "src/setjmp/setjmp_impl.h"
 #include "test/UnitTest/Test.h"
 
+namespace {
+
 constexpr int MAX_LOOP = 123;
 int longjmp_called = 0;
 
@@ -45,3 +47,5 @@ TEST(LlvmLibcSetJmpTest, SetAndJumpBackValOne) {
   ASSERT_EQ(longjmp_called, 1);
   ASSERT_EQ(val, 1);
 }
+
+} // namespace
diff --git a/libc/test/src/stdio/printf_core/writer_test.cpp b/libc/test/src/stdio/printf_core/writer_test.cpp
index 8611caa2dfa58..d036341be7981 100644
--- a/libc/test/src/stdio/printf_core/writer_test.cpp
+++ b/libc/test/src/stdio/printf_core/writer_test.cpp
@@ -6,13 +6,14 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "src/__support/CPP/string_view.h"
 #include "src/stdio/printf_core/writer.h"
 
+#include "src/__support/CPP/string_view.h"
 #include "src/string/memory_utils/inline_memcpy.h"
-
 #include "test/UnitTest/Test.h"
 
+namespace {
+
 using LIBC_NAMESPACE::cpp::string_view;
 using LIBC_NAMESPACE::printf_core::WriteBuffer;
 using LIBC_NAMESPACE::printf_core::WriteMode;
@@ -314,3 +315,5 @@ TEST(LlvmLibcPrintfWriterTest, NullStringWithZeroMaxLengthWithCallback) {
   ASSERT_EQ(writer.get_chars_written(), 12);
   ASSERT_STREQ("aaaDEF111456", str);
 }
+
+} // namespace
diff --git a/libc/test/src/stdlib/quick_sort_test.cpp b/libc/test/src/stdlib/quick_sort_test.cpp
index 2832c855370bc..6d132428743b6 100644
--- a/libc/test/src/stdlib/quick_sort_test.cpp
+++ b/libc/test/src/stdlib/quick_sort_test.cpp
@@ -9,6 +9,8 @@
 #include "SortingTest.h"
 #include "src/stdlib/qsort_util.h"
 
+namespace {
+
 void quick_sort(void *array, size_t array_size, size_t elem_size,
                 int (*compare)(const void *, const void *)) {
   constexpr bool USE_QUICKSORT = true;
@@ -23,3 +25,5 @@ void quick_sort(void *array, size_t array_size, size_t elem_size,
 }
 
 LIST_SORTING_TESTS(Qsort, quick_sort);
+
+} // namespace
diff --git a/libc/test/src/string/memchr_test.cpp b/libc/test/src/string/memchr_test.cpp
index 4a7c88bfe6e1a..ede841118fe03 100644
--- a/libc/test/src/string/memchr_test.cpp
+++ b/libc/test/src/string/memchr_test.cpp
@@ -6,11 +6,15 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "hdr/signal_macros.h"
 #include "src/string/memchr.h"
-#include "test/UnitTest/Test.h"
+
 #include <stddef.h>
 
+#include "hdr/signal_macros.h"
+#include "test/UnitTest/Test.h"
+
+namespace {
+
 // A helper function that calls memchr and abstracts away the explicit cast for
 // readability purposes.
 const char *call_memchr(const void *src, int c, size_t size) {
@@ -130,3 +134,5 @@ TEST(LlvmLibcMemChrTest, CrashOnNullPtr) {
 }
 
 #endif // defined(LIBC_ADD_NULL_CHECKS)
+
+} // namespace
diff --git a/libc/test/src/string/memrchr_test.cpp b/libc/test/src/string/memrchr_test.cpp
index 140395b3046f6..e92dd3ad9c919 100644
--- a/libc/test/src/string/memrchr_test.cpp
+++ b/libc/test/src/string/memrchr_test.cpp
@@ -6,11 +6,15 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "hdr/signal_macros.h"
 #include "src/string/memrchr.h"
-#include "test/UnitTest/Test.h"
+
 #include <stddef.h>
 
+#include "hdr/signal_macros.h"
+#include "test/UnitTest/Test.h"
+
+namespace {
+
 // A helper function that calls memrchr and abstracts away the explicit cast for
 // readability purposes.
 const char *call_memrchr(const void *src, int c, size_t size) {
@@ -122,3 +126,5 @@ TEST(LlvmLibcMemRChrTest, CrashOnNullPtr) {
 }
 
 #endif // defined(LIBC_ADD_NULL_CHECKS)
+
+} // namespace



More information about the libc-commits mailing list