git: 5e6befdaca51 - main - atf: Switch from std::auto_ptr<> to std::unique_ptr<>

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Wed, 16 Apr 2025 14:12:02 UTC
The branch main has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=5e6befdaca5194a8fb91b48d5f678942f22fa8f1

commit 5e6befdaca5194a8fb91b48d5f678942f22fa8f1
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2025-04-16 14:10:35 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2025-04-16 14:10:35 +0000

    atf: Switch from std::auto_ptr<> to std::unique_ptr<>
    
    This mirrors upstream commit f053ab687f6e27aa264f599ecbfc5ef27ad4e2d3.
    
    Reviewed by:    emaste
    Differential Revision:  https://reviews.freebsd.org/D49789
---
 contrib/atf/atf-c++/check.cpp               |  4 ++--
 contrib/atf/atf-c++/check.hpp               |  4 ++--
 contrib/atf/atf-c++/check_test.cpp          | 22 +++++++++++-----------
 contrib/atf/atf-c++/detail/process_test.cpp |  8 ++++----
 contrib/atf/atf-sh/atf-check.cpp            |  8 ++++----
 lib/atf/Makefile.inc                        |  3 ---
 lib/atf/libatf-c++/Makefile                 |  3 ---
 libexec/atf/atf-check/Makefile              |  4 ----
 libexec/atf/atf-sh/Makefile                 |  3 ---
 share/mk/atf.test.mk                        |  2 --
 10 files changed, 23 insertions(+), 38 deletions(-)

diff --git a/contrib/atf/atf-c++/check.cpp b/contrib/atf/atf-c++/check.cpp
index e4d7db4d49a6..5d8580023a15 100644
--- a/contrib/atf/atf-c++/check.cpp
+++ b/contrib/atf/atf-c++/check.cpp
@@ -141,7 +141,7 @@ impl::build_cxx_o(const std::string& sfile, const std::string& ofile,
     return success;
 }
 
-std::auto_ptr< impl::check_result >
+std::unique_ptr< impl::check_result >
 impl::exec(const atf::process::argv_array& argva)
 {
     atf_check_result_t result;
@@ -150,5 +150,5 @@ impl::exec(const atf::process::argv_array& argva)
     if (atf_is_error(err))
         throw_atf_error(err);
 
-    return std::auto_ptr< impl::check_result >(new impl::check_result(&result));
+    return std::unique_ptr< impl::check_result >(new impl::check_result(&result));
 }
diff --git a/contrib/atf/atf-c++/check.hpp b/contrib/atf/atf-c++/check.hpp
index 0144dedb2841..4d7f079d1ac1 100644
--- a/contrib/atf/atf-c++/check.hpp
+++ b/contrib/atf/atf-c++/check.hpp
@@ -71,7 +71,7 @@ class check_result {
     check_result(const atf_check_result_t* result);
 
     friend check_result test_constructor(const char* const*);
-    friend std::auto_ptr< check_result > exec(const atf::process::argv_array&);
+    friend std::unique_ptr< check_result > exec(const atf::process::argv_array&);
 
 public:
     //!
@@ -120,7 +120,7 @@ bool build_cpp(const std::string&, const std::string&,
                const atf::process::argv_array&);
 bool build_cxx_o(const std::string&, const std::string&,
                  const atf::process::argv_array&);
-std::auto_ptr< check_result > exec(const atf::process::argv_array&);
+std::unique_ptr< check_result > exec(const atf::process::argv_array&);
 
 // Useful for testing only.
 check_result test_constructor(void);
diff --git a/contrib/atf/atf-c++/check_test.cpp b/contrib/atf/atf-c++/check_test.cpp
index 7baf3fa19692..ecb5a9380e8f 100644
--- a/contrib/atf/atf-c++/check_test.cpp
+++ b/contrib/atf/atf-c++/check_test.cpp
@@ -52,7 +52,7 @@ extern "C" {
 // ------------------------------------------------------------------------
 
 static
-std::auto_ptr< atf::check::check_result >
+std::unique_ptr< atf::check::check_result >
 do_exec(const atf::tests::tc* tc, const char* helper_name)
 {
     std::vector< std::string > argv;
@@ -65,7 +65,7 @@ do_exec(const atf::tests::tc* tc, const char* helper_name)
 }
 
 static
-std::auto_ptr< atf::check::check_result >
+std::unique_ptr< atf::check::check_result >
 do_exec(const atf::tests::tc* tc, const char* helper_name, const char *carg2)
 {
     std::vector< std::string > argv;
@@ -248,11 +248,11 @@ ATF_TEST_CASE_HEAD(exec_cleanup)
 }
 ATF_TEST_CASE_BODY(exec_cleanup)
 {
-    std::auto_ptr< atf::fs::path > out;
-    std::auto_ptr< atf::fs::path > err;
+    std::unique_ptr< atf::fs::path > out;
+    std::unique_ptr< atf::fs::path > err;
 
     {
-        std::auto_ptr< atf::check::check_result > r =
+        std::unique_ptr< atf::check::check_result > r =
             do_exec(this, "exit-success");
         out.reset(new atf::fs::path(r->stdout_path()));
         err.reset(new atf::fs::path(r->stderr_path()));
@@ -272,7 +272,7 @@ ATF_TEST_CASE_HEAD(exec_exitstatus)
 ATF_TEST_CASE_BODY(exec_exitstatus)
 {
     {
-        std::auto_ptr< atf::check::check_result > r =
+        std::unique_ptr< atf::check::check_result > r =
             do_exec(this, "exit-success");
         ATF_REQUIRE(r->exited());
         ATF_REQUIRE(!r->signaled());
@@ -280,7 +280,7 @@ ATF_TEST_CASE_BODY(exec_exitstatus)
     }
 
     {
-        std::auto_ptr< atf::check::check_result > r =
+        std::unique_ptr< atf::check::check_result > r =
             do_exec(this, "exit-failure");
         ATF_REQUIRE(r->exited());
         ATF_REQUIRE(!r->signaled());
@@ -288,7 +288,7 @@ ATF_TEST_CASE_BODY(exec_exitstatus)
     }
 
     {
-        std::auto_ptr< atf::check::check_result > r =
+        std::unique_ptr< atf::check::check_result > r =
             do_exec(this, "exit-signal");
         ATF_REQUIRE(!r->exited());
         ATF_REQUIRE(r->signaled());
@@ -321,12 +321,12 @@ ATF_TEST_CASE_HEAD(exec_stdout_stderr)
 }
 ATF_TEST_CASE_BODY(exec_stdout_stderr)
 {
-    std::auto_ptr< atf::check::check_result > r1 =
+    std::unique_ptr< atf::check::check_result > r1 =
         do_exec(this, "stdout-stderr", "result1");
     ATF_REQUIRE(r1->exited());
     ATF_REQUIRE_EQ(r1->exitcode(), EXIT_SUCCESS);
 
-    std::auto_ptr< atf::check::check_result > r2 =
+    std::unique_ptr< atf::check::check_result > r2 =
         do_exec(this, "stdout-stderr", "result2");
     ATF_REQUIRE(r2->exited());
     ATF_REQUIRE_EQ(r2->exitcode(), EXIT_SUCCESS);
@@ -372,7 +372,7 @@ ATF_TEST_CASE_BODY(exec_unknown)
     argv.push_back("/foo/bar/non-existent");
 
     atf::process::argv_array argva(argv);
-    std::auto_ptr< atf::check::check_result > r = atf::check::exec(argva);
+    std::unique_ptr< atf::check::check_result > r = atf::check::exec(argva);
     ATF_REQUIRE(r->exited());
     ATF_REQUIRE_EQ(r->exitcode(), 127);
 }
diff --git a/contrib/atf/atf-c++/detail/process_test.cpp b/contrib/atf/atf-c++/detail/process_test.cpp
index 0686d2a1911c..97f9a08e2504 100644
--- a/contrib/atf/atf-c++/detail/process_test.cpp
+++ b/contrib/atf/atf-c++/detail/process_test.cpp
@@ -196,8 +196,8 @@ ATF_TEST_CASE_BODY(argv_array_assign)
     const char* const carray1[] = { "arg1", NULL };
     const char* const carray2[] = { "arg1", "arg2", NULL };
 
-    std::auto_ptr< argv_array > argv1(new argv_array(carray1));
-    std::auto_ptr< argv_array > argv2(new argv_array(carray2));
+    std::unique_ptr< argv_array > argv1(new argv_array(carray1));
+    std::unique_ptr< argv_array > argv2(new argv_array(carray2));
 
     *argv2 = *argv1;
     ATF_REQUIRE_EQ(argv2->size(), argv1->size());
@@ -226,8 +226,8 @@ ATF_TEST_CASE_BODY(argv_array_copy)
 
     const char* const carray[] = { "arg0", NULL };
 
-    std::auto_ptr< argv_array > argv1(new argv_array(carray));
-    std::auto_ptr< argv_array > argv2(new argv_array(*argv1));
+    std::unique_ptr< argv_array > argv1(new argv_array(carray));
+    std::unique_ptr< argv_array > argv2(new argv_array(*argv1));
 
     ATF_REQUIRE_EQ(argv2->size(), argv1->size());
     ATF_REQUIRE(std::strcmp((*argv2)[0], (*argv1)[0]) == 0);
diff --git a/contrib/atf/atf-sh/atf-check.cpp b/contrib/atf/atf-sh/atf-check.cpp
index 4cb1e33a005a..911e004432f3 100644
--- a/contrib/atf/atf-sh/atf-check.cpp
+++ b/contrib/atf/atf-sh/atf-check.cpp
@@ -108,7 +108,7 @@ struct output_check {
 };
 
 class temp_file : public std::ostream {
-    std::auto_ptr< atf::fs::path > m_path;
+    std::unique_ptr< atf::fs::path > m_path;
     int m_fd;
 
 public:
@@ -414,7 +414,7 @@ flatten_argv(char* const* argv)
 }
 
 static
-std::auto_ptr< atf::check::check_result >
+std::unique_ptr< atf::check::check_result >
 execute(const char* const* argv)
 {
     // TODO: This should go to stderr... but fixing it now may be hard as test
@@ -430,7 +430,7 @@ execute(const char* const* argv)
 }
 
 static
-std::auto_ptr< atf::check::check_result >
+std::unique_ptr< atf::check::check_result >
 execute_with_shell(char* const* argv)
 {
     const std::string cmd = flatten_argv(argv);
@@ -916,7 +916,7 @@ atf_check::main(void)
         m_stderr_checks.push_back(output_check(oc_empty, false, ""));
 
     do {
-        std::auto_ptr< atf::check::check_result > r =
+        std::unique_ptr< atf::check::check_result > r =
             m_xflag ? execute_with_shell(m_argv) : execute(m_argv);
 
         if ((run_status_checks(m_status_checks, *r) == false) ||
diff --git a/lib/atf/Makefile.inc b/lib/atf/Makefile.inc
index c776c2f8f84e..f8f329842eb4 100644
--- a/lib/atf/Makefile.inc
+++ b/lib/atf/Makefile.inc
@@ -27,6 +27,3 @@
 CFLAGS+=	-DHAVE_CONFIG_H
 
 WARNS?=		3
-
-# Permit use of auto_ptr for compilers defaulting to C++17 or later
-CXXSTD=		c++11
diff --git a/lib/atf/libatf-c++/Makefile b/lib/atf/libatf-c++/Makefile
index 221a16657c2a..985a79b7dc03 100644
--- a/lib/atf/libatf-c++/Makefile
+++ b/lib/atf/libatf-c++/Makefile
@@ -48,9 +48,6 @@ CFLAGS+=	-I.
 
 CFLAGS+=	-DHAVE_CONFIG_H
 
-# Silence warnings about usage of deprecated std::auto_ptr
-CXXWARNFLAGS+=	-Wno-deprecated-declarations
-
 SRCS=		application.cpp \
 		build.cpp \
 		check.cpp \
diff --git a/libexec/atf/atf-check/Makefile b/libexec/atf/atf-check/Makefile
index e1ccdce95ec8..87d7a7cfdada 100644
--- a/libexec/atf/atf-check/Makefile
+++ b/libexec/atf/atf-check/Makefile
@@ -38,10 +38,6 @@ MAN=		atf-check.1
 CFLAGS+=	-I${ATF}
 CFLAGS+=	-DATF_SHELL='"/bin/sh"'
 
-# Silence warnings about usage of deprecated std::auto_ptr
-CXXWARNFLAGS+=	-Wno-deprecated-declarations
-CXXSTD=		c++11
-
 LIBADD=		atf_cxx
 
 HAS_TESTS=
diff --git a/libexec/atf/atf-sh/Makefile b/libexec/atf/atf-sh/Makefile
index 3c06afa446c4..ba949fd3072e 100644
--- a/libexec/atf/atf-sh/Makefile
+++ b/libexec/atf/atf-sh/Makefile
@@ -65,9 +65,6 @@ CFLAGS+=	-DATF_PKGDATADIR='"${SHAREDIR}/atf"'
 CFLAGS+=	-DATF_SHELL='"/bin/sh"'
 CFLAGS+=	-I${ATF}
 
-# Silence warnings about usage of deprecated std::auto_ptr
-CXXWARNFLAGS+=	-Wno-deprecated-declarations
-
 LIBADD=		atf_cxx
 
 FILESGROUPS=	SUBR
diff --git a/share/mk/atf.test.mk b/share/mk/atf.test.mk
index f7696641ffb0..16dc836f5141 100644
--- a/share/mk/atf.test.mk
+++ b/share/mk/atf.test.mk
@@ -55,8 +55,6 @@ LDADD.${_T}+= ${LIBATF_CXX} ${LIBATF_C}
 .endif
 TEST_INTERFACE.${_T}= atf
 .endfor
-# Silence warnings about usage of deprecated std::auto_ptr
-CXXWARNFLAGS+=	-Wno-deprecated-declarations
 .endif
 
 .if !empty(ATF_TESTS_SH)