Fix non-portable std::regex test and test more cases
authorJonathan Wakely <jwakely@redhat.com>
Sun, 31 Jul 2016 18:46:30 +0000 (19:46 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Sun, 31 Jul 2016 18:46:30 +0000 (19:46 +0100)
* testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
test to not rely on GNU extension (escaped normal characters in POSIX
BRE). Enable tests for other strings which are now supported.

From-SVN: r238926

libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc

index 9c3af44ee81fda169470d20fb4a5f0c81bef2c98..a878d1e24655d94e01a33d333278e9a21507776e 100644 (file)
@@ -1,5 +1,9 @@
 2016-07-31  Jonathan Wakely  <jwakely@redhat.com>
 
+       * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
+       test to not rely on GNU extension (escaped normal characters in POSIX
+       BRE). Enable tests for other strings which are now supported.
+
        * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
        c++11 instead of setting -std=gnu++14.
 
index 5625653d7f95b66ad5a1c481a3fda8b5fde50346..758f216b0a9642040c486bd243dd80fa843d9cda 100644 (file)
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++11" }
 
 // 2012-08-20  Benjamin Kosnik <bkoz@redhat.com>
 //
@@ -31,17 +30,27 @@ test01()
 
   // raw string literals
 
-  //string_type sre0(R"(\d{3}-\d{3}-\d{4})"); // expected fail
+  string_type sre0(R"(\d{3}-\d{3}-\d{4})");
 
-  string_type sre1(R"( this\n  and new : forms\n  )");
+  string_type sre1(R"( this
+  and new : forms
+  )");
 
   string_type sre2(R"([:num:]{3}-[:num:]{3}-[:num:]{4})");
 
   // 1
-  regex_type re(R"( this\n  and new : forms\n  )", std::regex::basic);
+  regex_type re0(R"(\d{3}-\d{3}-\d{4})", std::regex::ECMAScript);
+
+  regex_type re1(R"( this
+  and new : forms
+  )", std::regex::basic);
+
+  regex_type re2(R"([:num:]{3}-[:num:]{3}-[:num:]{4})", std::regex::basic);
 
   // 2
+  regex_sanity_check(sre0, std::regex::ECMAScript);
   regex_sanity_check(sre1);
+  regex_sanity_check(sre2);
 }
 
 int main()