From patchwork Fri Jun 25 22:50:52 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kees Cook X-Patchwork-Id: 57039 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id BDC8FB6F11 for ; Sat, 26 Jun 2010 09:38:00 +1000 (EST) Received: (qmail 14228 invoked by alias); 25 Jun 2010 23:37:59 -0000 Received: (qmail 14212 invoked by uid 22791); 25 Jun 2010 23:37:57 -0000 X-SWARE-Spam-Status: No, hits=-2.1 required=5.0 tests=AWL, BAYES_00, SPF_HELO_PASS, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from smtp.outflux.net (HELO smtp.outflux.net) (198.145.64.163) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 25 Jun 2010 23:37:48 +0000 Received: from www.outflux.net (serenity-end.outflux.net [10.2.0.2]) by vinyl.outflux.net (8.14.3/8.14.3/Debian-9.1ubuntu1) with ESMTP id o5PNbk6u016004 for ; Fri, 25 Jun 2010 16:37:46 -0700 Resent-From: Kees Cook Resent-Date: Fri, 25 Jun 2010 16:37:46 -0700 Resent-Message-ID: <20100625233746.GF4175@outflux.net> Resent-To: gcc-patches@gcc.gnu.org Date: Fri, 25 Jun 2010 15:50:52 -0700 From: Kees Cook To: gcc-patches@gcc.gnu.org Subject: [PATCH v2] libstdc++-v3: add more verifications to testsuite Message-ID: <20100625225152.GE4175@outflux.net> MIME-Version: 1.0 Content-Disposition: inline X-MIMEDefang-Filter: outflux$Revision: 1.316 $ X-HELO: www.outflux.net Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Hello, Here is a patch that adds additional tests to the libstdc++-v3 test suite. Ubuntu builds packages with -D_FORTIFY_SOURCE=2, so running the suite shows a few minor warnings. This cleans them up by providing additional sanity checks around freopen, fgets, and fwrite, as already done in other places in the testsuite. v2: - Adjusted to not use "!= NULL", as recommended by Paolo Carlini. Thanks, -Kees 2010-06-25 Kees Cook * testsuite/27_io/ios_base/sync_with_stdio/1.cc: verify freopen. * testsuite/27_io/objects/wchar_t/9520.cc: Likewise. * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise. * testsuite/27_io/objects/wchar_t/12048-2.cc: Likewise. * testsuite/27_io/objects/wchar_t/12048-4.cc: Likewise. * testsuite/27_io/objects/wchar_t/11.cc: Likewise. * testsuite/27_io/objects/wchar_t/12048-1.cc: Likewise. * testsuite/27_io/objects/wchar_t/12048-3.cc: Likewise. * testsuite/27_io/objects/wchar_t/10.cc: Likewise. * testsuite/27_io/objects/wchar_t/12048-5.cc: Likewise. * testsuite/27_io/objects/char/9661-1.cc: Likewise. * testsuite/27_io/objects/char/12048-2.cc: Likewise. * testsuite/27_io/objects/char/12048-4.cc: Likewise. * testsuite/27_io/objects/char/9.cc: Likewise. * testsuite/27_io/objects/char/12048-1.cc: Likewise. * testsuite/27_io/objects/char/12048-3.cc: Likewise. * testsuite/27_io/objects/char/12048-5.cc: Likewise. * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: Likewise. * testsuite/27_io/basic_filebuf/setbuf/char/12875-2.cc: verify fgets. * testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-2.cc: verify fwrite. * testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc: Likewise. * testsuite/ext/stdio_sync_filebuf/char/1.cc: Likewise. Index: libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/1.cc =================================================================== --- libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/1.cc (revision 161298) +++ libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/1.cc (working copy) @@ -41,7 +41,7 @@ void test01() { std::ios_base::sync_with_stdio(); - std::freopen("ios_base_members_static-1.txt", "w", stderr); + VERIFY( std::freopen("ios_base_members_static-1.txt", "w", stderr) ); for (int i = 0; i < 2; i++) { Index: libstdc++-v3/testsuite/27_io/objects/wchar_t/9520.cc =================================================================== --- libstdc++-v3/testsuite/27_io/objects/wchar_t/9520.cc (revision 161298) +++ libstdc++-v3/testsuite/27_io/objects/wchar_t/9520.cc (working copy) @@ -38,7 +38,7 @@ void test01() locale loc (locale("de_DE.ISO-8859-15@euro")); locale::global(loc); // Set locale for stdin - freopen(name, "r", stdin); + VERIFY( freopen(name, "r", stdin) ); wcin.imbue(loc); Index: libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-1.cc =================================================================== --- libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-1.cc (revision 161298) +++ libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-1.cc (working copy) @@ -67,7 +67,7 @@ bool test01() exit(0); } - freopen(name, "r", stdin); + VERIFY( freopen(name, "r", stdin) ); s1.wait(); wint_t c1 = fgetwc(stdin); Index: libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-2.cc =================================================================== --- libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-2.cc (revision 161298) +++ libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-2.cc (working copy) @@ -23,7 +23,7 @@ void test01() { - std::freopen("cin_unget-1.txt", "r", stdin); + VERIFY( std::freopen("cin_unget-1.txt", "r", stdin) ); wchar_t c1; std::wint_t c2; Index: libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-4.cc =================================================================== --- libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-4.cc (revision 161298) +++ libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-4.cc (working copy) @@ -23,7 +23,7 @@ void test01() { - std::freopen("cin_unget-1.txt", "r", stdin); + VERIFY( std::freopen("cin_unget-1.txt", "r", stdin) ); wchar_t buf[2]; VERIFY( std::wcin.rdbuf()->sgetn(buf, 2) == 2 ); Index: libstdc++-v3/testsuite/27_io/objects/wchar_t/11.cc =================================================================== --- libstdc++-v3/testsuite/27_io/objects/wchar_t/11.cc (revision 161298) +++ libstdc++-v3/testsuite/27_io/objects/wchar_t/11.cc (working copy) @@ -90,7 +90,7 @@ void test11() }; size_t i_size = wcslen(i_lit); - freopen(name, "w", stdout); + VERIFY( freopen(name, "w", stdout) ); wcout.write(i_lit, i_size); wcout.flush(); Index: libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-1.cc =================================================================== --- libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-1.cc (revision 161298) +++ libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-1.cc (working copy) @@ -26,7 +26,7 @@ void test01() { - std::freopen("cin_unget-1.txt", "r", stdin); + VERIFY( std::freopen("cin_unget-1.txt", "r", stdin) ); wchar_t c1; wchar_t c2; Index: libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-3.cc =================================================================== --- libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-3.cc (revision 161298) +++ libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-3.cc (working copy) @@ -27,7 +27,7 @@ void test01() { - std::freopen("cin_unget-1.txt", "r", stdin); + VERIFY( std::freopen("cin_unget-1.txt", "r", stdin) ); wchar_t buf[2]; VERIFY( std::wcin.rdbuf()->sgetn(buf, 2) == 2 ); Index: libstdc++-v3/testsuite/27_io/objects/wchar_t/10.cc =================================================================== --- libstdc++-v3/testsuite/27_io/objects/wchar_t/10.cc (revision 161298) +++ libstdc++-v3/testsuite/27_io/objects/wchar_t/10.cc (working copy) @@ -95,7 +95,7 @@ void test10() VERIFY( n == e_size ); fclose(file); - freopen(name, "r", stdin); + VERIFY( freopen(name, "r", stdin) ); wchar_t* wbuf = new wchar_t[i_size + 10]; wcin.read(wbuf, i_size + 10); Index: libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-5.cc =================================================================== --- libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-5.cc (revision 161298) +++ libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-5.cc (working copy) @@ -29,7 +29,7 @@ void test01() { - std::freopen("cin_unget-1.txt", "r", stdin); + VERIFY( std::freopen("cin_unget-1.txt", "r", stdin) ); wchar_t c1; std::wint_t c2; Index: libstdc++-v3/testsuite/27_io/objects/char/9661-1.cc =================================================================== --- libstdc++-v3/testsuite/27_io/objects/char/9661-1.cc (revision 161298) +++ libstdc++-v3/testsuite/27_io/objects/char/9661-1.cc (working copy) @@ -68,7 +68,7 @@ bool test01() exit(0); } - freopen(name, "r", stdin); + VERIFY( freopen(name, "r", stdin) ); s1.wait(); int c1 = fgetc(stdin); Index: libstdc++-v3/testsuite/27_io/objects/char/12048-2.cc =================================================================== --- libstdc++-v3/testsuite/27_io/objects/char/12048-2.cc (revision 161298) +++ libstdc++-v3/testsuite/27_io/objects/char/12048-2.cc (working copy) @@ -24,7 +24,7 @@ void test01() { - std::freopen("cin_unget-1.txt", "r", stdin); + VERIFY( std::freopen("cin_unget-1.txt", "r", stdin) ); char c1; int c2; Index: libstdc++-v3/testsuite/27_io/objects/char/12048-4.cc =================================================================== --- libstdc++-v3/testsuite/27_io/objects/char/12048-4.cc (revision 161298) +++ libstdc++-v3/testsuite/27_io/objects/char/12048-4.cc (working copy) @@ -24,7 +24,7 @@ void test01() { - std::freopen("cin_unget-1.txt", "r", stdin); + VERIFY( std::freopen("cin_unget-1.txt", "r", stdin) ); char buf[2]; VERIFY( std::cin.rdbuf()->sgetn(buf, 2) == 2 ); Index: libstdc++-v3/testsuite/27_io/objects/char/9.cc =================================================================== --- libstdc++-v3/testsuite/27_io/objects/char/9.cc (revision 161298) +++ libstdc++-v3/testsuite/27_io/objects/char/9.cc (working copy) @@ -34,7 +34,7 @@ void test09() fputs("abc\n", fout); fclose(fout); - freopen(name, "r", stdin); + VERIFY( freopen(name, "r", stdin) ); // basic_streambuf::showmanyc returns 0. VERIFY( 0 == std::cin.rdbuf()->in_avail() ); Index: libstdc++-v3/testsuite/27_io/objects/char/12048-1.cc =================================================================== --- libstdc++-v3/testsuite/27_io/objects/char/12048-1.cc (revision 161298) +++ libstdc++-v3/testsuite/27_io/objects/char/12048-1.cc (working copy) @@ -28,7 +28,7 @@ void test01() { - std::freopen("cin_unget-1.txt", "r", stdin); + VERIFY( std::freopen("cin_unget-1.txt", "r", stdin) ); char c1; char c2; Index: libstdc++-v3/testsuite/27_io/objects/char/12048-3.cc =================================================================== --- libstdc++-v3/testsuite/27_io/objects/char/12048-3.cc (revision 161298) +++ libstdc++-v3/testsuite/27_io/objects/char/12048-3.cc (working copy) @@ -25,7 +25,7 @@ void test01() { - std::freopen("cin_unget-1.txt", "r", stdin); + VERIFY( std::freopen("cin_unget-1.txt", "r", stdin) ); char buf[2]; VERIFY( std::cin.rdbuf()->sgetn(buf, 2) == 2 ); Index: libstdc++-v3/testsuite/27_io/objects/char/12048-5.cc =================================================================== --- libstdc++-v3/testsuite/27_io/objects/char/12048-5.cc (revision 161298) +++ libstdc++-v3/testsuite/27_io/objects/char/12048-5.cc (working copy) @@ -33,7 +33,7 @@ void test01() { - std::freopen("cin_unget-1.txt", "r", stdin); + VERIFY( std::freopen("cin_unget-1.txt", "r", stdin) ); char c1; int c2; Index: libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/12875-2.cc =================================================================== --- libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/12875-2.cc (revision 161298) +++ libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/12875-2.cc (working copy) @@ -44,7 +44,7 @@ void test02() FILE* in = fopen(name, "r"); char str[256]; - fgets(str, 256, in); + VERIFY( fgets(str, 256, in) ); VERIFY( !strcmp(str, "Hello, world") ); fclose(in); } Index: libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-2.cc =================================================================== --- libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-2.cc (revision 161298) +++ libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-2.cc (working copy) @@ -161,7 +161,7 @@ void test02() const char* name = "tmp_11544-2"; FILE* f = fopen(name, "w"); - fwrite("aaaab", 1, 5, f); + VERIFY( fwrite("aaaab", 1, 5, f) == 5 ); fclose(f); wifstream in; Index: libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc =================================================================== --- libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc (revision 161298) +++ libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc (working copy) @@ -33,7 +33,7 @@ void test01() const char* name = "stdiobuf-1.txt"; FILE* fout = fopen(name, "w"); - fwrite(c_lit, 1, size, fout); + VERIFY( fwrite(c_lit, 1, size, fout) == size ); fclose(fout); FILE* fin = fopen(name, "r"); Index: libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc =================================================================== --- libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc (revision 161298) +++ libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc (working copy) @@ -64,7 +64,7 @@ void test01() fputs(str, file); fclose(file); - freopen(name, "r", stdin); + VERIFY( freopen(name, "r", stdin) ); streamsize n = wcin.rdbuf()->in_avail(); while (n--) Index: libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/1.cc =================================================================== --- libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/1.cc (revision 161298) +++ libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/1.cc (working copy) @@ -33,7 +33,7 @@ void test01() const char* name = "stdiobuf-1.txt"; FILE* fout = fopen(name, "w"); - fwrite(c_lit, 1, size, fout); + VERIFY( fwrite(c_lit, 1, size, fout) == size ); fclose(fout); FILE* fin = fopen(name, "r");