aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2017-12-14 11:47:42 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2017-12-14 11:47:42 +0000
commitf297ebafdcdf5d5a8c3ef74c9906de67998e5aa7 (patch)
tree6b670ac9d2498c8604464ed56520e446b5e7f56a /libstdc++-v3
parent4d39941ea9e6fe059084be9f5dea7e29e055db91 (diff)
downloadgcc-f297ebafdcdf5d5a8c3ef74c9906de67998e5aa7.zip
gcc-f297ebafdcdf5d5a8c3ef74c9906de67998e5aa7.tar.gz
gcc-f297ebafdcdf5d5a8c3ef74c9906de67998e5aa7.tar.bz2
Test whitespace handling in std::complex extraction
* testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc: Add tests using noskipws. From-SVN: r255632
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc28
2 files changed, 31 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index b20a277..e035302 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,8 @@
2017-12-14 Jonathan Wakely <jwakely@redhat.com>
+ * testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc:
+ Add tests using noskipws.
+
* testsuite/26_numerics/complex/dr2714.cc: Move to ...
* testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc:
... Here. Remove duplicate header and dg-options. Check first invalid
diff --git a/libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc b/libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc
index 17fb8a2..952c52f 100644
--- a/libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc
+++ b/libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc
@@ -145,10 +145,38 @@ test03()
in.clear();
}
+void
+test04()
+{
+ // Test noskipws handling
+ std::istringstream in;
+ const char* bad_inputs[] = {
+ " 1", " (2)", "( 2)", "(2 )", "(2 ,3)", "(2,3 )", 0
+ };
+ const std::complex<double> c0(-1, -1);
+ std::complex<double> c;
+ for (int i = 0; bad_inputs[i]; ++i)
+ {
+ c = c0;
+ in.clear();
+ in.str(bad_inputs[i]);
+ in >> std::noskipws >> c;
+ VERIFY( in.fail() );
+ VERIFY( c == c0 );
+
+ in.clear();
+ in.str(bad_inputs[i]);
+ in >> std::skipws >> c;
+ VERIFY( !in.fail() );
+ VERIFY( c != c0 );
+ }
+}
+
int
main()
{
test01();
test02();
test03();
+ test04();
}