From f71a854f74fe69c5d8cbb1915e6acd660fcb79d7 Mon Sep 17 00:00:00 2001 From: NAKAMURA Takumi Date: Wed, 13 Nov 2024 22:55:31 +0900 Subject: [PATCH 1/2] Reformat --- llvm/unittests/Support/YAMLIOTest.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/llvm/unittests/Support/YAMLIOTest.cpp b/llvm/unittests/Support/YAMLIOTest.cpp index e10fe099a30ad..2d76b1509840f 100644 --- a/llvm/unittests/Support/YAMLIOTest.cpp +++ b/llvm/unittests/Support/YAMLIOTest.cpp @@ -3368,15 +3368,14 @@ struct FixedArray { namespace llvm { namespace yaml { - template <> - struct MappingTraits { - static void mapping(IO &io, FixedArray& st) { - MutableArrayRef array = st.values; - io.mapRequired("Values", array); - } - }; -} -} +template <> struct MappingTraits { + static void mapping(IO &io, FixedArray &st) { + MutableArrayRef array = st.values; + io.mapRequired("Values", array); + } +}; +} // namespace yaml +} // namespace llvm TEST(YAMLIO, FixedSizeArray) { FixedArray faval; @@ -3423,5 +3422,4 @@ TEST(YAMLIO, FixedSizeArrayMismatch) { // Error for too many elements. EXPECT_TRUE(!!yin.error()); } - } From 9bb3a411692a7a09c06191e18923d75d544dc93e Mon Sep 17 00:00:00 2001 From: NAKAMURA Takumi Date: Wed, 13 Nov 2024 22:55:41 +0900 Subject: [PATCH 2/2] YAMLTraits.h: std::array --- llvm/include/llvm/Support/YAMLTraits.h | 5 +++++ llvm/unittests/Support/YAMLIOTest.cpp | 29 +++++++++++++++++++++----- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/llvm/include/llvm/Support/YAMLTraits.h b/llvm/include/llvm/Support/YAMLTraits.h index 1d04783753d5c..45d82f3ebefa9 100644 --- a/llvm/include/llvm/Support/YAMLTraits.h +++ b/llvm/include/llvm/Support/YAMLTraits.h @@ -2006,6 +2006,11 @@ struct SequenceTraits< std::enable_if_t::flow>::value>> : SequenceTraitsImpl, SequenceElementTraits::flow> {}; template +struct SequenceTraits< + std::array, + std::enable_if_t::flow>::value>> + : SequenceTraitsImpl, SequenceElementTraits::flow> {}; +template struct SequenceTraits< SmallVector, std::enable_if_t::flow>::value>> diff --git a/llvm/unittests/Support/YAMLIOTest.cpp b/llvm/unittests/Support/YAMLIOTest.cpp index 2d76b1509840f..a7d1b338719f3 100644 --- a/llvm/unittests/Support/YAMLIOTest.cpp +++ b/llvm/unittests/Support/YAMLIOTest.cpp @@ -3366,6 +3366,15 @@ struct FixedArray { int values[4]; }; +struct StdArray { + StdArray() { + // Initialize to int max as a sentinel value. + for (auto &v : values) + v = std::numeric_limits::max(); + } + std::array values; +}; + namespace llvm { namespace yaml { template <> struct MappingTraits { @@ -3374,11 +3383,21 @@ template <> struct MappingTraits { io.mapRequired("Values", array); } }; +template <> struct MappingTraits { + static void mapping(IO &io, StdArray &st) { + io.mapRequired("Values", st.values); + } +}; } // namespace yaml } // namespace llvm -TEST(YAMLIO, FixedSizeArray) { - FixedArray faval; +using TestTypes = ::testing::Types; + +template class YAMLIO : public testing::Test {}; +TYPED_TEST_SUITE(YAMLIO, TestTypes, ); + +TYPED_TEST(YAMLIO, FixedSizeArray) { + TypeParam faval; Input yin("---\nValues: [ 1, 2, 3, 4 ]\n...\n"); yin >> faval; @@ -3400,9 +3419,9 @@ TEST(YAMLIO, FixedSizeArray) { ASSERT_EQ(serialized, expected); } -TEST(YAMLIO, FixedSizeArrayMismatch) { +TYPED_TEST(YAMLIO, FixedSizeArrayMismatch) { { - FixedArray faval; + TypeParam faval; Input yin("---\nValues: [ 1, 2, 3 ]\n...\n"); yin >> faval; @@ -3415,7 +3434,7 @@ TEST(YAMLIO, FixedSizeArrayMismatch) { } { - FixedArray faval; + TypeParam faval; Input yin("---\nValues: [ 1, 2, 3, 4, 5 ]\n...\n"); yin >> faval;