From d4b920d2e78eb08893f79c325ca194931fb6ca44 Mon Sep 17 00:00:00 2001 From: X1aomu Date: Wed, 10 Apr 2024 00:38:54 +0800 Subject: [PATCH] test: add tests and some notes --- tests/test_expected/base_tests.cpp | 33 ++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/tests/test_expected/base_tests.cpp b/tests/test_expected/base_tests.cpp index d817c19..139b0d7 100644 --- a/tests/test_expected/base_tests.cpp +++ b/tests/test_expected/base_tests.cpp @@ -166,12 +166,37 @@ TEST_CASE("swap", "[swap]") CHECK(e2.value() == 1'337); } -TEST_CASE("brace constructed value", "[brace_constructed_value]") +TEST_CASE("copy-list-initialization", "[copy-initialization]") { -#if !defined(__GNUC__) // GCC bug - expected e {{}}; - CHECK(e); + { + expected e = {}; + CHECK(e); + } +} + +TEST_CASE("brace constructed value", "[brace-constructed-value]") +{ + { // non-void + expected e {{}}; + CHECK(e); + } + { // std::string +#if !defined(__GNUC__) + // This case doesn't work and needs clarification: + // * an implementation bug + // + a GCC bug? + // + a language bug? + // + a MSVC bug? + // see CWG-1228(NAD), CWG-2735(DR), CWG-2856(DR) + // see https://github.com/cplusplus/CWG/issues/486 + // see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59389 + // see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60027 + // see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109247 + // see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113300 + expected e {{}}; + CHECK(e); #endif + } } TEST_CASE("LWG-3836", "[LWG-3836]")