aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2021-11-30 16:07:21 +0000
committerJonathan Wakely <jwakely@redhat.com>2021-11-30 23:10:04 +0000
commitbe30fc4ce085ef786f104c6a407ccd44e554cd54 (patch)
treef58975af9d412e48c8c7c08dfa89669557e9ad32
parent675afa21244d58640876da3287d303e376a3b59a (diff)
downloadgcc-be30fc4ce085ef786f104c6a407ccd44e554cd54.zip
gcc-be30fc4ce085ef786f104c6a407ccd44e554cd54.tar.gz
gcc-be30fc4ce085ef786f104c6a407ccd44e554cd54.tar.bz2
libstdc++: Fix tests that fail with fully-dynamic-string
Fix some tests that assume that a moved-from string is empty, or that default constructing a string doesn't allocate. libstdc++-v3/ChangeLog: * testsuite/21_strings/basic_string/cons/char/moveable.cc: Allow moved-from string to be non-empty. * testsuite/21_strings/basic_string/cons/char/moveable2.cc: Likewise. * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: Likewise. * testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc: Likewise. * testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc: Likewise. * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc: Likewise. * testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc: Construct empty string before setting oom flag. * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc: Likewise.
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable.cc4
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc4
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc4
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc4
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc4
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc4
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc2
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc2
8 files changed, 20 insertions, 8 deletions
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable.cc b/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable.cc
index 5de2a5f..3ba39ec 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable.cc
@@ -35,7 +35,9 @@ void test01()
std::string c(std::move(b));
VERIFY( c.size() == 1 && c[0] == '1' );
- VERIFY( b.size() == 0 );
+#if ! _GLIBCXX_FULLY_DYNAMIC_STRING
+ VERIFY( b.size() == 0 ); // not guaranteed by the standard
+#endif
}
int main()
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc b/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc
index fe91c5a..5804ccb 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc
@@ -44,7 +44,9 @@ void test01()
tstring c(std::move(b));
VERIFY( c.size() == 1 && c[0] == '1' );
- VERIFY( b.size() == 0 );
+#if ! _GLIBCXX_FULLY_DYNAMIC_STRING
+ VERIFY( b.size() == 0 ); // not guaranteed by the standard
+#endif
}
int main()
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc b/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc
index 1caedcc..59d1d77 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc
@@ -42,7 +42,9 @@ void test01()
tstring c(std::move(b));
VERIFY( c.size() == 1 && c[0] == '1' );
- VERIFY( b.size() == 0 );
+#if ! _GLIBCXX_FULLY_DYNAMIC_STRING
+ VERIFY( b.size() == 0 ); // not guaranteed by the standard
+#endif
}
int main()
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc b/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc
index d05afb7..67e25de 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc
@@ -35,7 +35,9 @@ void test01()
std::wstring c(std::move(b));
VERIFY( c.size() == 1 && c[0] == L'1' );
- VERIFY( b.size() == 0 );
+#if ! _GLIBCXX_FULLY_DYNAMIC_STRING
+ VERIFY( b.size() == 0 ); // not guaranteed by the standard
+#endif
}
int main()
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc b/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc
index e301984..c72eb9b 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc
@@ -44,7 +44,9 @@ void test01()
twstring c(std::move(b));
VERIFY( c.size() == 1 && c[0] == L'1' );
- VERIFY( b.size() == 0 );
+#if ! _GLIBCXX_FULLY_DYNAMIC_STRING
+ VERIFY( b.size() == 0 ); // not guaranteed by the standard
+#endif
}
int main()
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc b/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc
index d3e4744..6a2bc27 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc
@@ -42,7 +42,9 @@ void test01()
tstring c(std::move(b));
VERIFY( c.size() == 1 && c[0] == L'1' );
- VERIFY( b.size() == 0 );
+#if ! _GLIBCXX_FULLY_DYNAMIC_STRING
+ VERIFY( b.size() == 0 ); // not guaranteed by the standard
+#endif
}
int main()
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc b/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc
index 87d8c2f4..6a3ed55 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc
@@ -71,8 +71,8 @@ int main()
string s = "PR libstdc++/87749 a string that is longer than a short string";
const auto ptr = s.c_str();
- oom = true;
string ss;
+ oom = true;
ss = std::move(s); // allocators are equal, should not allocate new storage
VERIFY( ss.c_str() == ptr );
}
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc b/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc
index 4d744f8..536ca61 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc
@@ -72,8 +72,8 @@ int main()
string s = L"PR libstdc++/87749 a string that is longer than a short string";
const auto ptr = s.c_str();
- oom = true;
string ss;
+ oom = true;
ss = std::move(s); // allocators are equal, should not allocate new storage
VERIFY( ss.c_str() == ptr );
}