diff mbox

[libstdc++,Testsuite] isctype test fails for newlib.

Message ID 54D0A5B1.2000806@arm.com
State New
Headers show

Commit Message

Matthew Wahab Feb. 3, 2015, 10:40 a.m. UTC
On 03/02/15 10:27, Paolo Carlini wrote:
> Nit: the path should be * testsuite/28_regex/... and likewise for the
> other testcase, because it starts where is the corresponding ChangeLog.

Fixed changelog:

libstdc++-v3/
2015-02-02  Matthew Wahab  <matthew.wahab@arm.com>

	PR libstdc++/64467
	* testsuite/28_regex/traits/char/isctype.cc (test01): Add newlib
	special case for '\n'.
	* testsuite/28_regex/traits/wchar_t/isctype.cc (test01): Likewise.


Ok to commit?
Matthew

Comments

Paolo Carlini Feb. 3, 2015, 11:16 a.m. UTC | #1
Hi,

On 02/03/2015 11:40 AM, Matthew Wahab wrote:
> Ok to commit?
Ok thanks.

Paolo.
Jonathan Wakely Feb. 7, 2015, 12:11 a.m. UTC | #2
Any idea why HP still sees the tests fail? See comment 8 at
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64467#c8
Matthew Wahab Feb. 9, 2015, 11:25 a.m. UTC | #3
On 07/02/15 00:11, Jonathan Wakely wrote:
> Any idea why HP still sees the tests fail? See comment 8 at
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64467#c8

It looks like he's found the problem: that _NEWLIB_ is a recent addition 
that isn't in the version he's using. I'll try replacing _NEWLIB_ with 
_NEWLIB_VERSION_ as suggested.

Matthew
Hans-Peter Nilsson Feb. 9, 2015, 1:18 p.m. UTC | #4
On Mon, 9 Feb 2015, Matthew Wahab wrote:
> On 07/02/15 00:11, Jonathan Wakely wrote:
> > Any idea why HP still sees the tests fail? See comment 8 at
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64467#c8
>
> It looks like he's found the problem: that _NEWLIB_ is a recent addition that
> isn't in the version he's using. I'll try replacing _NEWLIB_ with
> _NEWLIB_VERSION_ as suggested.

(Careful with that macro spelling, if nothing else.)

Better to use existing mechanisms and stop playing with
target-related macros.  Add this at the top (see other
placements of dg-options) and replace "#if defined (__NEWLIB__)"
with "#ifdef NEWLINE_IN_CLASS_BLANK":

// { dg-options "-DNEWLINE_IN_CLASS_BLANK" { target newlib } }

brgds, H-P
Matthew Wahab Feb. 10, 2015, 8:51 a.m. UTC | #5
On 09/02/15 23:17, Hans-Peter Nilsson wrote:
> On Mon, 9 Feb 2015, Matthew Wahab wrote:
>> Attached a patch to replace the test for macro __NEWLIB__ with a test for
>> macro NEWLINE_IN_CLASS_BLANK, defined by
>>   { dg-additional-options "-DNEWLINE_IN_CLASS_BLANK" { target newlib } }
>>
>> Tested with check-target-libstdc++-v3, with the modified tests, for
>> arm-none-eabi and aarch64-none-linux-gnu.
>>
>> Does this look ok to commit?
>
> Not valid for approval, but that's what I meant!
> Modulo the typo forgetting to
> s/__NEWLIB__/NEWLINE_IN_CLASS_BLANK/ in the ifdef in
> wchar_t/isctype.cc of course.

I'll redo the patch.
Matthew

>> libstdc++-v3/testsuite/
>> 2015-02-09  Matthew Wahab  <matthew.wahab@arm.com>
>>
>> 	* 28_regex/traits/char/isctype.cc (test01): Replace test
>> 	for __NEWLIB__ macro with a dejagnu set macro.
>> 	* 28_regex/traits/wchar_t/isctype.cc (test01): Likewise.
diff mbox

Patch

diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc b/libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc
index a7b1396..7c47045 100644
--- a/libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc
+++ b/libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc
@@ -53,7 +53,13 @@  test01()
   VERIFY(!t.isctype('_', t.lookup_classname(range(digit))));
   VERIFY( t.isctype(' ', t.lookup_classname(range(blank))));
   VERIFY( t.isctype('\t', t.lookup_classname(range(blank))));
+#if defined (__NEWLIB__)
+  /* newlib includes '\n' in class 'blank'.
+     See https://gcc.gnu.org/ml/gcc-patches/2015-02/msg00059.html.  */
+  VERIFY( t.isctype('\n', t.lookup_classname(range(blank))));
+#else
   VERIFY(!t.isctype('\n', t.lookup_classname(range(blank))));
+#endif
   VERIFY( t.isctype('t', t.lookup_classname(range(upper), true)));
   VERIFY( t.isctype('T', t.lookup_classname(range(lower), true)));
 #undef range
diff --git a/libstdc++-v3/testsuite/28_regex/traits/wchar_t/isctype.cc b/libstdc++-v3/testsuite/28_regex/traits/wchar_t/isctype.cc
index e450f6d..1b3d69a 100644
--- a/libstdc++-v3/testsuite/28_regex/traits/wchar_t/isctype.cc
+++ b/libstdc++-v3/testsuite/28_regex/traits/wchar_t/isctype.cc
@@ -50,7 +50,13 @@  test01()
   VERIFY(!t.isctype(L'_', t.lookup_classname(range(digit))));
   VERIFY( t.isctype(L' ', t.lookup_classname(range(blank))));
   VERIFY( t.isctype(L'\t', t.lookup_classname(range(blank))));
+#if defined (__NEWLIB__)
+  /* newlib includes '\n' in class 'blank'.
+     See https://gcc.gnu.org/ml/gcc-patches/2015-02/msg00059.html.  */
+  VERIFY( t.isctype(L'\n', t.lookup_classname(range(blank))));
+#else
   VERIFY(!t.isctype(L'\n', t.lookup_classname(range(blank))));
+#endif
   VERIFY( t.isctype(L't', t.lookup_classname(range(upper), true)));
   VERIFY( t.isctype(L'T', t.lookup_classname(range(lower), true)));
 #undef range