From 0e2d67846759afba12f84beb874ddd2d48f7dacd Mon Sep 17 00:00:00 2001 From: Alex Hornby Date: Sun, 1 Oct 2023 16:46:02 +0000 Subject: [PATCH] fix macOS build Summary: macOS build was failing with: * missing header includes, added them macOS test run was failing with: * libcpp exception text has changed from "with" to "due to" which was breaking ExceptionTest.cpp, update the expectation to cover both. * FileUtilDetail.cpp was only enabling custom temp dir on linux, breaking FileUtilTest.cpp. Enable custom temp dir for non-windows (i.e. mac and other unix) to fix it. Test Plan: CI. Before, build error on vector ``` CMakeFiles/tdigest_benchmark.dir/folly/stats/test/TDigestBenchmark.cpp.o -MF CMakeFiles/tdigest_benchmark.dir/folly/stats/test/TDigestBenchmark.cpp.o.d -o CMakeFiles/tdigest_benchmark.dir/folly/stats/test/TDigestBenchmark.cpp.o -c /Users/runner/work/folly/folly/folly/stats/test/TDigestBenchmark.cpp In file included from /Users/runner/work/folly/folly/folly/stats/test/TDigestBenchmark.cpp:17: /Users/runner/work/folly/folly/folly/stats/DigestBuilder.h:59:25: error: implicit instantiation of undefined template 'std::vector' std::vector buffer; ``` then build error on array ``` CMakeFiles/constexpr_math_test.dir/folly/test/ConstexprMathTest.cpp.o -c /Users/runner/work/folly/folly/folly/test/ConstexprMathTest.cpp /Users/runner/work/folly/folly/folly/test/ConstexprMathTest.cpp:38:29: error: implicit instantiation of undefined template 'std::array' std::array res{}; ``` then test failues After, works --- folly/detail/FileUtilDetail.cpp | 6 +++--- folly/lang/test/ExceptionTest.cpp | 2 +- folly/stats/DigestBuilder.h | 1 + folly/test/ConstexprMathTest.cpp | 1 + 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/folly/detail/FileUtilDetail.cpp b/folly/detail/FileUtilDetail.cpp index 84113a05c1f..7a220c90635 100644 --- a/folly/detail/FileUtilDetail.cpp +++ b/folly/detail/FileUtilDetail.cpp @@ -44,13 +44,13 @@ std::string getTemporaryFilePathStringWithoutTempDirectory( std::string getTemporaryFilePathStringWithTemporaryDirectory( const std::string& temporaryDirectory) { -#if defined(__linux__) && !FOLLY_MOBILE +#if !defined(_WIN32) && !FOLLY_MOBILE return (temporaryDirectory.back() == '/') ? (temporaryDirectory + std::string{"tempForAtomicWrite.XXXXXX"}) : (temporaryDirectory + std::string{"/tempForAtomicWrite.XXXXXX"}); #else - // The implementation currently, does not support any platform other than - // linux for temporary directory based atomic file writes. + // The implementation currently does not support win32 or mobile + // for temporary directory based atomic file writes. static_cast(temporaryDirectory); assert(false); diff --git a/folly/lang/test/ExceptionTest.cpp b/folly/lang/test/ExceptionTest.cpp index 91d65411167..dc1c6114f0c 100644 --- a/folly/lang/test/ExceptionTest.cpp +++ b/folly/lang/test/ExceptionTest.cpp @@ -68,7 +68,7 @@ template static std::string message_for_terminate_with(std::string const& what) { auto const name = folly::pretty_name(); std::string const p0 = "terminate called after throwing an instance of"; - std::string const p1 = "terminating with uncaught exception of type"; + std::string const p1 = "terminating (due to|with) uncaught exception of type"; // clang-format off return folly::kIsGlibcxx ? p0 + " '" + name + "'\\s+what\\(\\):\\s+" + what : diff --git a/folly/stats/DigestBuilder.h b/folly/stats/DigestBuilder.h index facad37a6a3..c6ef03a2279 100644 --- a/folly/stats/DigestBuilder.h +++ b/folly/stats/DigestBuilder.h @@ -17,6 +17,7 @@ #pragma once #include +#include #include #include diff --git a/folly/test/ConstexprMathTest.cpp b/folly/test/ConstexprMathTest.cpp index 8a94d6e229e..afe40caac8f 100644 --- a/folly/test/ConstexprMathTest.cpp +++ b/folly/test/ConstexprMathTest.cpp @@ -16,6 +16,7 @@ #include +#include #include #include #include