pw_string: Reenable insert, erase tests
This CL re-enables tests for insert and erase that were disabled while
debugging CQ failures in pwrev/148333.
These tests push the qemu_gcc version of string_test over the same flash
size threshold that the qemu_clang version crossed some months ago. In
particular, the qemu_gcc_debug version no longer fits into lm3s6965evb's
flash size of 255 KiB. The qemu_clang workaround of only building the
"size_optimized" version of string_test for that target has been applied
to qemu_gcc as well.
Bug: b/244604080
Change-Id: Ia525c87e28475ff568e5015870279edbdc3a12a5
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/149434
Commit-Queue: Aaron Green <aarongreen@google.com>
Reviewed-by: Prabhu Karthikeyan Rajasekaran <prabhukr@google.com>
Presubmit-Verified: CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com>
diff --git a/BUILD.gn b/BUILD.gn
index a2717b7..cec945a 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -236,18 +236,23 @@
}
}
-_build_pigweed_default_at_all_optimization_levels("qemu_gcc") {
- toolchain_prefix =
- "$dir_pigweed/targets/lm3s6965evb_qemu:lm3s6965evb_qemu_gcc_"
-}
-
# TODO(b/244604080): Inline string tests are too big to fit in the QEMU firmware
# except under a size-optimized build. For now, only build size-optimized.
#
+# _build_pigweed_default_at_all_optimization_levels("qemu_gcc") {
+# toolchain_prefix =
+# "$dir_pigweed/targets/lm3s6965evb_qemu:lm3s6965evb_qemu_gcc_"
+# }
# _build_pigweed_default_at_all_optimization_levels("qemu_clang") {
# toolchain_prefix =
# "$dir_pigweed/targets/lm3s6965evb_qemu:lm3s6965evb_qemu_clang_"
# }
+group("qemu_gcc_size_optimized") {
+ deps = [ ":pigweed_default($dir_pigweed/targets/lm3s6965evb_qemu:lm3s6965evb_qemu_gcc_size_optimized)" ]
+}
+group("qemu_gcc") {
+ deps = [ ":qemu_gcc_size_optimized" ]
+}
group("qemu_clang_size_optimized") {
deps = [ ":pigweed_default($dir_pigweed/targets/lm3s6965evb_qemu:lm3s6965evb_qemu_clang_size_optimized)" ]
}
diff --git a/pw_presubmit/py/pw_presubmit/pigweed_presubmit.py b/pw_presubmit/py/pw_presubmit/pigweed_presubmit.py
index 35ca437..1452865 100755
--- a/pw_presubmit/py/pw_presubmit/pigweed_presubmit.py
+++ b/pw_presubmit/py/pw_presubmit/pigweed_presubmit.py
@@ -165,12 +165,11 @@
# QEMU doesn't run on Windows.
if sys.platform != 'win32':
- build_targets.extend(_at_all_optimization_levels('qemu_gcc'))
-
- # TODO(b/244604080): For the pw::InlineString tests, qemu_clang_debug
- # and qemu_clang_speed_optimized produce a binary too large for the
+ # TODO(b/244604080): For the pw::InlineString tests, qemu_*_debug
+ # and qemu_*_speed_optimized produce a binary too large for the
# QEMU target's 256KB flash. Restore debug and speed optimized
# builds when this is fixed.
+ build_targets.append('qemu_gcc_size_optimized')
build_targets.append('qemu_clang_size_optimized')
# TODO(b/240982565): SocketStream currently requires Linux.
diff --git a/pw_string/string_test.cc b/pw_string/string_test.cc
index ad962fd..dc9bf45 100644
--- a/pw_string/string_test.cc
+++ b/pw_string/string_test.cc
@@ -1238,289 +1238,285 @@
TEST_STRING(InlineString<8>("!!"), str.clear(); str.assign("?"), "?");
}
-// // insert
+// insert
-// TEST(InlineString, Insert_CharactersAtIndex) {
-// TEST_STRING(InlineString<1>(), str.insert(0, 0, 'b'), "");
-// TEST_STRING(InlineString<1>("a"), str.insert(0, 0, 'b'), "a");
-// TEST_STRING(InlineString<10>("a"), str.insert(0, 2, 'b'), "bba");
-// TEST_STRING(InlineString<10>("a"), str.insert(1, 2, 'b'), "abb");
-// TEST_STRING(InlineString<10>(), str.insert(0, 10, 'b'), "bbbbbbbbbb");
-// }
-// #if PW_NC_TEST(Insert_CharactersAtIndex_DoesNotFit)
-// PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
-// [[maybe_unused]] constexpr auto fail = [] {
-// InlineString<3> str({0, 1});
-// return str.insert(1, 2, '?');
-// }();
-// #endif // PW_NC_TEST
+TEST(InlineString, Insert_CharactersAtIndex) {
+ TEST_STRING(InlineString<1>(), str.insert(0, 0, 'b'), "");
+ TEST_STRING(InlineString<1>("a"), str.insert(0, 0, 'b'), "a");
+ TEST_STRING(InlineString<10>("a"), str.insert(0, 2, 'b'), "bba");
+ TEST_STRING(InlineString<10>("a"), str.insert(1, 2, 'b'), "abb");
+ TEST_STRING(InlineString<10>(), str.insert(0, 10, 'b'), "bbbbbbbbbb");
+}
+#if PW_NC_TEST(Insert_CharactersAtIndex_DoesNotFit)
+PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
+[[maybe_unused]] constexpr auto fail = [] {
+ InlineString<3> str({0, 1});
+ return str.insert(1, 2, '?');
+}();
+#endif // PW_NC_TEST
-// TEST(InlineString, Insert_PointerSizeAtIndex) {
-// TEST_STRING(InlineString<1>(), str.insert(0, "", 0), "");
-// TEST_STRING(InlineString<1>("a"), str.insert(0, "b", 0), "a");
-// TEST_STRING(InlineString<10>("a"), str.insert(0, "bb", 2), "bba");
-// TEST_STRING(InlineString<10>("a"), str.insert(1, "bb", 2), "abb");
-// TEST_STRING(
-// InlineString<10>(), str.insert(0, "bbbbbbbbbb", 10), "bbbbbbbbbb");
-// }
-// #if PW_NC_TEST(Insert_PointerSizeAtIndex_DoesNotFit)
-// PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
-// [[maybe_unused]] constexpr auto fail = [] {
-// InlineString<3> str({0, 1});
-// return str.insert(1, "23", 2);
-// }();
-// #endif // PW_NC_TEST
+TEST(InlineString, Insert_PointerSizeAtIndex) {
+ TEST_STRING(InlineString<1>(), str.insert(0, "", 0), "");
+ TEST_STRING(InlineString<1>("a"), str.insert(0, "b", 0), "a");
+ TEST_STRING(InlineString<10>("a"), str.insert(0, "bb", 2), "bba");
+ TEST_STRING(InlineString<10>("a"), str.insert(1, "bb", 2), "abb");
+ TEST_STRING(
+ InlineString<10>(), str.insert(0, "bbbbbbbbbb", 10), "bbbbbbbbbb");
+}
+#if PW_NC_TEST(Insert_PointerSizeAtIndex_DoesNotFit)
+PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
+[[maybe_unused]] constexpr auto fail = [] {
+ InlineString<3> str({0, 1});
+ return str.insert(1, "23", 2);
+}();
+#endif // PW_NC_TEST
-// TEST(InlineString, Insert_ArrayAtIndex) {
-// TEST_STRING(InlineString<1>(), fixed_str.insert(0, ""), "");
-// TEST_STRING(InlineString<2>(), fixed_str.insert(0, "a"), "a");
-// TEST_STRING(InlineString<6>(), fixed_str.insert(0, "12345"), "12345");
+TEST(InlineString, Insert_ArrayAtIndex) {
+ TEST_STRING(InlineString<1>(), fixed_str.insert(0, ""), "");
+ TEST_STRING(InlineString<2>(), fixed_str.insert(0, "a"), "a");
+ TEST_STRING(InlineString<6>(), fixed_str.insert(0, "12345"), "12345");
-// TEST_STRING(InlineString<1>({'a'}), fixed_str.insert(1, ""), "a");
-// TEST_STRING(InlineString<2>("a"), fixed_str.insert(1, "a"), "aa");
-// TEST_STRING(InlineString<6>("a"), fixed_str.insert(1, "12345"), "a12345");
-// }
-// #if PW_NC_TEST(Insert_ArrayAtIndex_DoesNotFit)
-// PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
-// [[maybe_unused]] constexpr auto fail = [] {
-// InlineString<4> str({0, 1});
-// return str.insert(1, "123");
-// }();
-// #endif // PW_NC_TEST
+ TEST_STRING(InlineString<1>({'a'}), fixed_str.insert(1, ""), "a");
+ TEST_STRING(InlineString<2>("a"), fixed_str.insert(1, "a"), "aa");
+ TEST_STRING(InlineString<6>("a"), fixed_str.insert(1, "12345"), "a12345");
+}
+#if PW_NC_TEST(Insert_ArrayAtIndex_DoesNotFit)
+PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
+[[maybe_unused]] constexpr auto fail = [] {
+ InlineString<4> str({0, 1});
+ return str.insert(1, "123");
+}();
+#endif // PW_NC_TEST
-// TEST(InlineString, Insert_PointerAtIndex) {
-// TEST_STRING(InlineString<0>(), str.insert(0, kPointer0), "");
-// TEST_STRING(InlineString<10>(), str.insert(0, kPointer10), "9876543210");
-// TEST_STRING(
-// InlineString<10>("abc"), str.insert(1, kPointer10 + 5), "a43210bc");
-// TEST_STRING(
-// InlineString<13>("abc"), str.insert(3, kPointer10), "abc9876543210");
-// }
-// #if PW_NC_TEST(Insert_PointerAtIndex_DoesNotFit)
-// PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
-// [[maybe_unused]] constexpr auto fail = [] {
-// InlineString<3> str({0, 1});
-// return str.insert(1, kPointer10 + 8);
-// }();
-// #endif // PW_NC_TEST
+TEST(InlineString, Insert_PointerAtIndex) {
+ TEST_STRING(InlineString<0>(), str.insert(0, kPointer0), "");
+ TEST_STRING(InlineString<10>(), str.insert(0, kPointer10), "9876543210");
+ TEST_STRING(
+ InlineString<10>("abc"), str.insert(1, kPointer10 + 5), "a43210bc");
+ TEST_STRING(
+ InlineString<13>("abc"), str.insert(3, kPointer10), "abc9876543210");
+}
+#if PW_NC_TEST(Insert_PointerAtIndex_DoesNotFit)
+PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
+[[maybe_unused]] constexpr auto fail = [] {
+ InlineString<3> str({0, 1});
+ return str.insert(1, kPointer10 + 8);
+}();
+#endif // PW_NC_TEST
-// TEST(InlineString, Insert_BasicStringAtIndex) {
-// TEST_STRING(InlineString<0>(), str.insert(0, kEmptyCapacity0), "");
-// TEST_STRING(InlineString<10>(), str.insert(0, kEmptyCapacity10), "");
-// TEST_STRING(InlineString<10>(), str.insert(0, kSize5Capacity10), "12345");
-// TEST_STRING(
-// InlineString<10>(), str.insert(0, kSize10Capacity10), "1234567890");
+TEST(InlineString, Insert_BasicStringAtIndex) {
+ TEST_STRING(InlineString<0>(), str.insert(0, kEmptyCapacity0), "");
+ TEST_STRING(InlineString<10>(), str.insert(0, kEmptyCapacity10), "");
+ TEST_STRING(InlineString<10>(), str.insert(0, kSize5Capacity10), "12345");
+ TEST_STRING(
+ InlineString<10>(), str.insert(0, kSize10Capacity10), "1234567890");
-// TEST_STRING(InlineString<1>({'a'}), str.insert(0, kEmptyCapacity0), "a");
-// TEST_STRING(InlineString<11>("a"), str.insert(1, kEmptyCapacity10), "a");
-// TEST_STRING(
-// InlineString<12>("aa"), str.insert(1, kSize5Capacity10), "a12345a");
-// TEST_STRING(
-// InlineString<12>("aa"), str.insert(2, kSize10Capacity10),
-// "aa1234567890");
-// }
+ TEST_STRING(InlineString<1>({'a'}), str.insert(0, kEmptyCapacity0), "a");
+ TEST_STRING(InlineString<11>("a"), str.insert(1, kEmptyCapacity10), "a");
+ TEST_STRING(
+ InlineString<12>("aa"), str.insert(1, kSize5Capacity10), "a12345a");
+ TEST_STRING(
+ InlineString<12>("aa"), str.insert(2, kSize10Capacity10), "aa1234567890");
+}
-// #if PW_NC_TEST(Insert_BasicStringAtIndex_DoesNotFit)
-// PW_NC_EXPECT("PW_ASSERT\(new_index <= max_size\(\)\)");
-// [[maybe_unused]] constexpr auto fail = [] {
-// InlineString<3> str({0, 1});
-// return str.insert(1, kSize5Capacity10);
-// }();
-// #endif // PW_NC_TEST
+#if PW_NC_TEST(Insert_BasicStringAtIndex_DoesNotFit)
+PW_NC_EXPECT("PW_ASSERT\(new_index <= max_size\(\)\)");
+[[maybe_unused]] constexpr auto fail = [] {
+ InlineString<3> str({0, 1});
+ return str.insert(1, kSize5Capacity10);
+}();
+#endif // PW_NC_TEST
-// TEST(InlineString, Insert_BasicStringSubstrAtIndex) {
-// TEST_STRING(
-// InlineString<1>({'a'}), str.insert(0, kEmptyCapacity0, 0, 0), "a");
-// TEST_STRING(
-// InlineString<11>("a"), str.insert(1, kSize10Capacity10, 10, 0), "a");
-// TEST_STRING(InlineString<12>("aa"),
-// str.insert(1, kSize10Capacity10, 3, 5),
-// "a45678a");
-// TEST_STRING(InlineString<12>("aa"),
-// str.insert(2, kSize10Capacity10, 0, 10),
-// "aa1234567890");
-// }
-// #if PW_NC_TEST(Insert_BasicStringSubstrAtIndex_DoesNotFit)
-// PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
-// [[maybe_unused]] constexpr auto fail = [] {
-// InlineString<3> str({0, 1});
-// return str.insert(1, kSize5Capacity10, 1, 2);
-// }();
-// #endif // PW_NC_TEST
+TEST(InlineString, Insert_BasicStringSubstrAtIndex) {
+ TEST_STRING(
+ InlineString<1>({'a'}), str.insert(0, kEmptyCapacity0, 0, 0), "a");
+ TEST_STRING(
+ InlineString<11>("a"), str.insert(1, kSize10Capacity10, 10, 0), "a");
+ TEST_STRING(InlineString<12>("aa"),
+ str.insert(1, kSize10Capacity10, 3, 5),
+ "a45678a");
+ TEST_STRING(InlineString<12>("aa"),
+ str.insert(2, kSize10Capacity10, 0, 10),
+ "aa1234567890");
+}
+#if PW_NC_TEST(Insert_BasicStringSubstrAtIndex_DoesNotFit)
+PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
+[[maybe_unused]] constexpr auto fail = [] {
+ InlineString<3> str({0, 1});
+ return str.insert(1, kSize5Capacity10, 1, 2);
+}();
+#endif // PW_NC_TEST
-// TEST(InlineString, Insert_CharactersAtPosition) {
-// TEST_STRING(InlineString<1>(), str.insert(str.begin(), 0, 'b'), "");
-// TEST_STRING(InlineString<1>("a"), str.insert(str.begin(), 0, 'b'), "a");
-// TEST_STRING(InlineString<10>("a"), str.insert(str.begin(), 2, 'b'), "bba");
-// TEST_STRING(
-// InlineString<10>("a"), str.insert(str.begin() + 1, 2, 'b'), "abb");
-// TEST_STRING(InlineString<10>(), str.insert(str.end(), 10, 'b'),
-// "bbbbbbbbbb");
-// }
+TEST(InlineString, Insert_CharactersAtPosition) {
+ TEST_STRING(InlineString<1>(), str.insert(str.begin(), 0, 'b'), "");
+ TEST_STRING(InlineString<1>("a"), str.insert(str.begin(), 0, 'b'), "a");
+ TEST_STRING(InlineString<10>("a"), str.insert(str.begin(), 2, 'b'), "bba");
+ TEST_STRING(
+ InlineString<10>("a"), str.insert(str.begin() + 1, 2, 'b'), "abb");
+ TEST_STRING(InlineString<10>(), str.insert(str.end(), 10, 'b'), "bbbbbbbbbb");
+}
-// #if PW_NC_TEST(Insert_CharactersAtPosition_DoesNotFit)
-// PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
-// [[maybe_unused]] constexpr auto fail = [] {
-// InlineString<3> str({0, 1});
-// return str.insert(str.begin() + 1, 2, '?');
-// }();
-// #endif // PW_NC_TEST
+#if PW_NC_TEST(Insert_CharactersAtPosition_DoesNotFit)
+PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
+[[maybe_unused]] constexpr auto fail = [] {
+ InlineString<3> str({0, 1});
+ return str.insert(str.begin() + 1, 2, '?');
+}();
+#endif // PW_NC_TEST
-// TEST(InlineString, Insert_CharacterAtPosition) {
-// TEST_STRING(InlineString<1>(), str.insert(str.begin(), 'b'), "b");
-// TEST_STRING(InlineString<10>("aa"), str.insert(str.begin(), 'b'), "baa");
-// TEST_STRING(InlineString<10>("aa"), str.insert(str.begin() + 1, 'b'),
-// "aba"); TEST_STRING(InlineString<10>("aa"), str.insert(str.begin() + 2,
-// 'b'), "aab"); TEST_STRING(InlineString<10>("aa"), str.insert(str.end(),
-// 'b'), "aab");
-// }
-// #if PW_NC_TEST(Insert_CharacterAtPosition_DoesNotFit)
-// PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
-// [[maybe_unused]] constexpr auto fail = [] {
-// InlineString<2> str({0, 1});
-// return str.insert(str.begin() + 1, '?');
-// }();
-// #endif // PW_NC_TEST
+TEST(InlineString, Insert_CharacterAtPosition) {
+ TEST_STRING(InlineString<1>(), str.insert(str.begin(), 'b'), "b");
+ TEST_STRING(InlineString<10>("aa"), str.insert(str.begin(), 'b'), "baa");
+ TEST_STRING(InlineString<10>("aa"), str.insert(str.begin() + 1, 'b'), "aba");
+ TEST_STRING(InlineString<10>("aa"), str.insert(str.begin() + 2, 'b'), "aab");
+ TEST_STRING(InlineString<10>("aa"), str.insert(str.end(), 'b'), "aab");
+}
+#if PW_NC_TEST(Insert_CharacterAtPosition_DoesNotFit)
+PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
+[[maybe_unused]] constexpr auto fail = [] {
+ InlineString<2> str({0, 1});
+ return str.insert(str.begin() + 1, '?');
+}();
+#endif // PW_NC_TEST
-// TEST(InlineString, Insert_IteratorsAtPosition) {
-// TEST_STRING(InlineString<0>(),
-// str.insert(str.begin(), kEvenNumbers0, kEvenNumbers0),
-// "");
-// TEST_STRING(InlineString<10>(),
-// str.insert(str.end(), kEvenNumbers0, kEvenNumbers0),
-// "");
-// TEST_STRING(InlineString<10>(),
-// str.insert(str.end(), kEvenNumbers0, kEvenNumbers0),
-// "");
-// TEST_STRING(InlineString<10>(),
-// str.insert(str.begin(), kEvenNumbers0, kEvenNumbers8),
-// "\0\2\4\6");
-// TEST_STRING(InlineString<10>(),
-// str.insert(str.end(), kEvenNumbers0, kEvenNumbers8),
-// "\0\2\4\6");
-// TEST_STRING(InlineString<10>("aa"),
-// str.insert(str.begin(), kEvenNumbers0, kEvenNumbers8),
-// "\0\2\4\6aa");
-// TEST_STRING(InlineString<10>("aa"),
-// str.insert(str.begin() + 1, kEvenNumbers0, kEvenNumbers8),
-// "a\0\2\4\6a");
-// TEST_STRING(InlineString<10>("aa"),
-// str.insert(str.begin() + 2, kEvenNumbers0, kEvenNumbers8),
-// "aa\0\2\4\6");
-// TEST_STRING(InlineString<10>("aa"),
-// str.insert(str.end(), kEvenNumbers0, kEvenNumbers8),
-// "aa\0\2\4\6");
-// }
-// #if PW_NC_TEST(Insert_IteratorsAtPosition_DoesNotFit)
-// PW_NC_EXPECT("PW_ASSERT\(count < max_size\(\)\)");
-// [[maybe_unused]] constexpr auto fail = [] {
-// InlineString<3> str({0, 1});
-// return str.insert(str.begin() + 1, kEvenNumbers0, kEvenNumbers8);
-// }();
-// #endif // PW_NC_TEST
+TEST(InlineString, Insert_IteratorsAtPosition) {
+ TEST_STRING(InlineString<0>(),
+ str.insert(str.begin(), kEvenNumbers0, kEvenNumbers0),
+ "");
+ TEST_STRING(InlineString<10>(),
+ str.insert(str.end(), kEvenNumbers0, kEvenNumbers0),
+ "");
+ TEST_STRING(InlineString<10>(),
+ str.insert(str.end(), kEvenNumbers0, kEvenNumbers0),
+ "");
+ TEST_STRING(InlineString<10>(),
+ str.insert(str.begin(), kEvenNumbers0, kEvenNumbers8),
+ "\0\2\4\6");
+ TEST_STRING(InlineString<10>(),
+ str.insert(str.end(), kEvenNumbers0, kEvenNumbers8),
+ "\0\2\4\6");
+ TEST_STRING(InlineString<10>("aa"),
+ str.insert(str.begin(), kEvenNumbers0, kEvenNumbers8),
+ "\0\2\4\6aa");
+ TEST_STRING(InlineString<10>("aa"),
+ str.insert(str.begin() + 1, kEvenNumbers0, kEvenNumbers8),
+ "a\0\2\4\6a");
+ TEST_STRING(InlineString<10>("aa"),
+ str.insert(str.begin() + 2, kEvenNumbers0, kEvenNumbers8),
+ "aa\0\2\4\6");
+ TEST_STRING(InlineString<10>("aa"),
+ str.insert(str.end(), kEvenNumbers0, kEvenNumbers8),
+ "aa\0\2\4\6");
+}
+#if PW_NC_TEST(Insert_IteratorsAtPosition_DoesNotFit)
+PW_NC_EXPECT("PW_ASSERT\(count < max_size\(\)\)");
+[[maybe_unused]] constexpr auto fail = [] {
+ InlineString<3> str({0, 1});
+ return str.insert(str.begin() + 1, kEvenNumbers0, kEvenNumbers8);
+}();
+#endif // PW_NC_TEST
-// TEST(InlineString, Insert_InitializerListAtPosition) {
-// TEST_STRING(InlineString<0>(), str.insert(str.begin(), {}), "");
-// TEST_STRING(InlineString<10>(), str.insert(str.end(), {1, 2, 3}),
-// "\1\2\3"); TEST_STRING(
-// InlineString<10>("abc"), str.insert(str.begin(), {1, 2, 3}),
-// "\1\2\3abc");
-// TEST_STRING(InlineString<10>("abc"),
-// str.insert(str.begin() + 1, {1, 2, 3}),
-// "a\1\2\3bc");
-// TEST_STRING(InlineString<10>("abc"),
-// str.insert(str.begin() + 3, {1, 2, 3}),
-// "abc\1\2\3");
-// TEST_STRING(
-// InlineString<5>("abc"), str.insert(str.end(), {'4', '5'}), "abc45");
-// }
-// #if PW_NC_TEST(Insert_InitializerListAtPosition_DoesNotFit)
-// PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
-// [[maybe_unused]] constexpr auto fail = [] {
-// InlineString<3> str({0, 1, 2});
-// return str.insert(str.begin() + 1, {3});
-// }();
-// #endif // PW_NC_TEST
+TEST(InlineString, Insert_InitializerListAtPosition) {
+ TEST_STRING(InlineString<0>(), str.insert(str.begin(), {}), "");
+ TEST_STRING(InlineString<10>(), str.insert(str.end(), {1, 2, 3}), "\1\2\3");
+ TEST_STRING(
+ InlineString<10>("abc"), str.insert(str.begin(), {1, 2, 3}), "\1\2\3abc");
+ TEST_STRING(InlineString<10>("abc"),
+ str.insert(str.begin() + 1, {1, 2, 3}),
+ "a\1\2\3bc");
+ TEST_STRING(InlineString<10>("abc"),
+ str.insert(str.begin() + 3, {1, 2, 3}),
+ "abc\1\2\3");
+ TEST_STRING(
+ InlineString<5>("abc"), str.insert(str.end(), {'4', '5'}), "abc45");
+}
+#if PW_NC_TEST(Insert_InitializerListAtPosition_DoesNotFit)
+PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
+[[maybe_unused]] constexpr auto fail = [] {
+ InlineString<3> str({0, 1, 2});
+ return str.insert(str.begin() + 1, {3});
+}();
+#endif // PW_NC_TEST
-// #if PW_CXX_STANDARD_IS_SUPPORTED(17)
-// TEST(InlineString, Insert_StringViewAtIndex) {
-// TEST_STRING(InlineString<0>(), str.insert(0, ""sv), "");
-// TEST_STRING(InlineString<10>("a"), str.insert(0, ""sv), "a");
-// TEST_STRING(InlineString<10>("abc"), str.insert(0, "123"sv), "123abc");
-// TEST_STRING(InlineString<10>("abc"), str.insert(1, "123"sv), "a123bc");
-// TEST_STRING(InlineString<5>("abc"), str.insert(3, "45"sv), "abc45");
-// }
-// #if PW_NC_TEST(Insert_StringViewAtIndex_DoesNotFit)
-// PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
-// [[maybe_unused]] constexpr auto fail = [] {
-// InlineString<3> str({0, 1, 2});
-// return str.insert(1, "3"sv);
-// }();
-// #endif // PW_NC_TEST
+#if PW_CXX_STANDARD_IS_SUPPORTED(17)
+TEST(InlineString, Insert_StringViewAtIndex) {
+ TEST_STRING(InlineString<0>(), str.insert(0, ""sv), "");
+ TEST_STRING(InlineString<10>("a"), str.insert(0, ""sv), "a");
+ TEST_STRING(InlineString<10>("abc"), str.insert(0, "123"sv), "123abc");
+ TEST_STRING(InlineString<10>("abc"), str.insert(1, "123"sv), "a123bc");
+ TEST_STRING(InlineString<5>("abc"), str.insert(3, "45"sv), "abc45");
+}
+#if PW_NC_TEST(Insert_StringViewAtIndex_DoesNotFit)
+PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
+[[maybe_unused]] constexpr auto fail = [] {
+ InlineString<3> str({0, 1, 2});
+ return str.insert(1, "3"sv);
+}();
+#endif // PW_NC_TEST
-// TEST(InlineString, Insert_StringViewSubstrAtIndex) {
-// TEST_STRING(InlineString<0>(), str.insert(0, ""sv, 0), "");
-// TEST_STRING(InlineString<0>(), str.insert(0, ""sv, 0, 0), "");
-// TEST_RUNTIME_STRING(
-// InlineString<5>("aa"), str.insert(0, "123"sv, 0), "123aa");
-// TEST_RUNTIME_STRING(
-// InlineString<10>("aa"), str.insert(1, "123"sv, 1, 0), "aa");
-// TEST_RUNTIME_STRING(
-// InlineString<10>("aa"), str.insert(1, "123"sv, 1, 1), "a2a");
-// TEST_RUNTIME_STRING(
-// InlineString<10>("aa"), str.insert(1, "123"sv, 1, 99), "a23a");
-// TEST_RUNTIME_STRING(
-// InlineString<10>("aa"), str.insert(2, "123"sv, 1, 99), "aa23");
-// TEST_RUNTIME_STRING(
-// InlineString<10>("aa"), str.insert(2, "123"sv, 3, 99), "aa");
-// }
-// #if PW_NC_TEST(Insert_StringViewSubstrAtIndex_DoesNotFit)
-// PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
-// [[maybe_unused]] constexpr auto fail = [] {
-// InlineString<3> str({0, 1, 2});
-// return str.insert(1, "34"sv, 1);
-// }();
-// #endif // PW_NC_TEST
-// #endif // PW_CXX_STANDARD_IS_SUPPORTED(17)
+TEST(InlineString, Insert_StringViewSubstrAtIndex) {
+ TEST_STRING(InlineString<0>(), str.insert(0, ""sv, 0), "");
+ TEST_STRING(InlineString<0>(), str.insert(0, ""sv, 0, 0), "");
+ TEST_RUNTIME_STRING(
+ InlineString<5>("aa"), str.insert(0, "123"sv, 0), "123aa");
+ TEST_RUNTIME_STRING(
+ InlineString<10>("aa"), str.insert(1, "123"sv, 1, 0), "aa");
+ TEST_RUNTIME_STRING(
+ InlineString<10>("aa"), str.insert(1, "123"sv, 1, 1), "a2a");
+ TEST_RUNTIME_STRING(
+ InlineString<10>("aa"), str.insert(1, "123"sv, 1, 99), "a23a");
+ TEST_RUNTIME_STRING(
+ InlineString<10>("aa"), str.insert(2, "123"sv, 1, 99), "aa23");
+ TEST_RUNTIME_STRING(
+ InlineString<10>("aa"), str.insert(2, "123"sv, 3, 99), "aa");
+}
+#if PW_NC_TEST(Insert_StringViewSubstrAtIndex_DoesNotFit)
+PW_NC_EXPECT("PW_ASSERT\(size\(\) - index <= max_size\(\) - new_index\)");
+[[maybe_unused]] constexpr auto fail = [] {
+ InlineString<3> str({0, 1, 2});
+ return str.insert(1, "34"sv, 1);
+}();
+#endif // PW_NC_TEST
+#endif // PW_CXX_STANDARD_IS_SUPPORTED(17)
-// // erase.
+// erase.
-// TEST(InlineString, Erase_CharactersAtIndex) {
-// TEST_STRING(InlineString<0>(), str.erase(), "");
-// TEST_STRING(InlineString<10>("abc"), str.erase(), "");
-// TEST_STRING(InlineString<10>("abc"), str.erase(0), "");
-// TEST_STRING(InlineString<10>("abc"), str.erase(1), "a");
-// TEST_STRING(InlineString<10>("abc"), str.erase(1, 1), "ac");
-// TEST_STRING(InlineString<10>("abc"), str.erase(1, 10), "a");
-// TEST_STRING(InlineString<10>("abc"), str.erase(3, 10), "abc");
-// }
-// #if PW_NC_TEST(Erase_IndexOutOfRange)
-// PW_NC_EXPECT("PW_ASSERT\(index <= size\(\)\)");
-// [[maybe_unused]] constexpr auto fail = [] {
-// InlineString<3> str("abc");
-// return str.erase(4, 2);
-// }();
-// #endif // PW_NC_TEST
+TEST(InlineString, Erase_CharactersAtIndex) {
+ TEST_STRING(InlineString<0>(), str.erase(), "");
+ TEST_STRING(InlineString<10>("abc"), str.erase(), "");
+ TEST_STRING(InlineString<10>("abc"), str.erase(0), "");
+ TEST_STRING(InlineString<10>("abc"), str.erase(1), "a");
+ TEST_STRING(InlineString<10>("abc"), str.erase(1, 1), "ac");
+ TEST_STRING(InlineString<10>("abc"), str.erase(1, 10), "a");
+ TEST_STRING(InlineString<10>("abc"), str.erase(3, 10), "abc");
+}
+#if PW_NC_TEST(Erase_IndexOutOfRange)
+PW_NC_EXPECT("PW_ASSERT\(index <= size\(\)\)");
+[[maybe_unused]] constexpr auto fail = [] {
+ InlineString<3> str("abc");
+ return str.erase(4, 2);
+}();
+#endif // PW_NC_TEST
-// TEST(InlineString, Erase_CharacterAtPosition) {
-// TEST_STRING(InlineString<3>(), str.erase(str.begin()), "");
-// TEST_STRING(InlineString<3>(), str.erase(str.end()), "");
-// TEST_STRING(InlineString<3>("abc"), str.erase(str.begin()), "bc");
-// TEST_STRING(InlineString<3>("abc"), str.erase(str.begin() + 1), "ac");
-// TEST_STRING(InlineString<3>("abc"), str.erase(str.begin() + 2), "ab");
-// TEST_STRING(InlineString<3>("abc"), str.erase(str.end()), "abc");
-// }
+TEST(InlineString, Erase_CharacterAtPosition) {
+ TEST_STRING(InlineString<3>(), str.erase(str.begin()), "");
+ TEST_STRING(InlineString<3>(), str.erase(str.end()), "");
+ TEST_STRING(InlineString<3>("abc"), str.erase(str.begin()), "bc");
+ TEST_STRING(InlineString<3>("abc"), str.erase(str.begin() + 1), "ac");
+ TEST_STRING(InlineString<3>("abc"), str.erase(str.begin() + 2), "ab");
+ TEST_STRING(InlineString<3>("abc"), str.erase(str.end()), "abc");
+}
-// TEST(InlineString, Erase_CharactersInRange) {
-// TEST_STRING(
-// InlineString<3>("abc"), str.erase(str.begin(), str.begin()), "abc");
-// TEST_STRING(InlineString<3>("abc"), str.erase(str.end(), str.end()),
-// "abc"); TEST_STRING(InlineString<3>("abc"), str.erase(str.begin(),
-// str.end()), ""); TEST_STRING(
-// InlineString<3>("abc"), str.erase(str.begin(), str.begin() + 1), "bc");
-// TEST_STRING(
-// InlineString<3>("abc"), str.erase(str.begin() + 1, str.end()), "a");
-// }
+TEST(InlineString, Erase_CharactersInRange) {
+ TEST_STRING(
+ InlineString<3>("abc"), str.erase(str.begin(), str.begin()), "abc");
+ TEST_STRING(InlineString<3>("abc"), str.erase(str.end(), str.end()), "abc");
+ TEST_STRING(InlineString<3>("abc"), str.erase(str.begin(), str.end()), "");
+ TEST_STRING(
+ InlineString<3>("abc"), str.erase(str.begin(), str.begin() + 1), "bc");
+ TEST_STRING(
+ InlineString<3>("abc"), str.erase(str.begin() + 1, str.end()), "a");
+}
TEST(InlineString, PushBack) {
TEST_STRING(InlineString<1>(), str.push_back('#'), "#");