aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHoward Hinnant <hhinnant@apple.com>2006-03-12 10:34:36 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2006-03-12 10:34:36 +0000
commit189cd5056db36dc477e1673f75f2eccf3be4056b (patch)
treea26d322b0d0b77604198fbfe41d3ae4fc5ae3f6d
parent163659ade16ce76819d692335f5a058f87e6a035 (diff)
downloadgcc-189cd5056db36dc477e1673f75f2eccf3be4056b.zip
gcc-189cd5056db36dc477e1673f75f2eccf3be4056b.tar.gz
gcc-189cd5056db36dc477e1673f75f2eccf3be4056b.tar.bz2
10097.cc: Fix race condition.
2006-03-12 Howard Hinnant <hhinnant@apple.com> * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Fix race condition. * testsuite/27_io/objects/char/9661-1.cc: Likewise. * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise. From-SVN: r111978
-rw-r--r--libstdc++-v3/ChangeLog7
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/10097.cc13
-rw-r--r--libstdc++-v3/testsuite/27_io/objects/char/9661-1.cc14
-rw-r--r--libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-1.cc14
4 files changed, 31 insertions, 17 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 218b225..d29909a 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,10 @@
+2006-03-12 Howard Hinnant <hhinnant@apple.com>
+
+ * testsuite/27_io/basic_filebuf/underflow/char/10097.cc:
+ Fix race condition.
+ * testsuite/27_io/objects/char/9661-1.cc: Likewise.
+ * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
+
2006-03-10 Paolo Carlini <pcarlini@suse.de>
* include/tr1/cmath: Add atan2 and pow bits; add using declarations.
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/10097.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/10097.cc
index 33c7230..345a664 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/10097.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/10097.cc
@@ -3,7 +3,8 @@
// 2001-05-21 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -61,7 +62,7 @@ void test16()
VERIFY( false );
}
- semaphore s1;
+ semaphore s1, s2;
int fval = fork();
if (fval == -1)
{
@@ -72,11 +73,12 @@ void test16()
{
filebuf fbout;
fbout.open(name, ios_base::in|ios_base::out);
- VERIFY ( fbout.is_open() );
+ VERIFY( fbout.is_open() );
fbout.sputn("0123456789", 10);
fbout.pubsync();
- s1.wait ();
+ s1.wait();
fbout.close();
+ s2.signal();
exit(0);
}
@@ -97,7 +99,8 @@ void test16()
}
fb.close();
- s1.signal ();
+ s1.signal();
+ s2.wait();
}
int main()
diff --git a/libstdc++-v3/testsuite/27_io/objects/char/9661-1.cc b/libstdc++-v3/testsuite/27_io/objects/char/9661-1.cc
index b6b8b3b..6497f62 100644
--- a/libstdc++-v3/testsuite/27_io/objects/char/9661-1.cc
+++ b/libstdc++-v3/testsuite/27_io/objects/char/9661-1.cc
@@ -3,7 +3,7 @@
// 2003-04-30 Petur Runolfsson <peturr02@ru.is>
-// Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -57,14 +57,15 @@ void test01()
VERIFY (file != NULL);
fputs("Whatever\n", file);
fflush(file);
- s1.signal ();
- s2.wait ();
+ s1.signal();
+ s2.wait();
fclose(file);
+ s1.signal();
exit(0);
}
-
+
freopen(name, "r", stdin);
- s1.wait ();
+ s1.wait();
int c1 = fgetc(stdin);
VERIFY( c1 != EOF );
@@ -82,7 +83,8 @@ void test01()
int c5 = cin.rdbuf()->sgetc();
VERIFY( c5 != EOF );
VERIFY( c5 == c4 );
- s2.signal ();
+ s2.signal();
+ s1.wait();
}
int main()
diff --git a/libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-1.cc b/libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-1.cc
index 130af01..5b3c231 100644
--- a/libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-1.cc
+++ b/libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-1.cc
@@ -3,7 +3,7 @@
// 2003-04-30 Petur Runolfsson <peturr02@ru.is>
-// Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -56,14 +56,15 @@ void test01()
FILE* file = fopen(name, "w");
fputs("Whatever\n", file);
fflush(file);
- s1.signal ();
- s2.wait ();
+ s1.signal();
+ s2.wait();
fclose(file);
+ s1.signal();
exit(0);
}
-
+
freopen(name, "r", stdin);
- s1.wait ();
+ s1.wait();
wint_t c1 = fgetwc(stdin);
VERIFY( c1 != WEOF );
@@ -81,7 +82,8 @@ void test01()
wint_t c5 = wcin.rdbuf()->sgetc();
VERIFY( c5 != WEOF );
VERIFY( c5 == c4 );
- s2.signal ();
+ s2.signal();
+ s1.wait();
}
int main()