From: Benjamin Kosnik Date: Sat, 26 Jan 2002 01:55:09 +0000 (+0000) Subject: fstream.tcc (filebuf::close()): Fix close for input streams. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e67051746fe23e90166655680af3bfe0b0e3f48f;p=gcc.git fstream.tcc (filebuf::close()): Fix close for input streams. 2002-01-25 Benjamin Kosnik * include/bits/fstream.tcc (filebuf::close()): Fix close for input streams. (filebuf::_M_really_overflow): Match indeterminate and sync calls. * testsuite/27_io/filebuf.cc: Compile only. * testsuite/27_io/filebuf_members.cc: Move tests to here. * testsuite/27_io/filebuf_virtuals.cc: And here. Revert sungetc, sync changes for expected values. * testsuite/27_io/filebuf-*: Move to... * testsuite/27_io/filebuf_virtuals-*: ...here. * testsuite/27_io/istream.cc: Compile only, activate. * testsuite/27_io/ostream.cc: Same. * testsuite/27_io/iostream.cc: New. * testsuite/27_io/iostream_members.cc: New. From-SVN: r49236 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index b300a62845b..47e43bdbf47 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,19 @@ +2002-01-25 Benjamin Kosnik + + * include/bits/fstream.tcc (filebuf::close()): Fix close for input + streams. + (filebuf::_M_really_overflow): Match indeterminate and sync calls. + * testsuite/27_io/filebuf.cc: Compile only. + * testsuite/27_io/filebuf_members.cc: Move tests to here. + * testsuite/27_io/filebuf_virtuals.cc: And here. + Revert sungetc, sync changes for expected values. + * testsuite/27_io/filebuf-*: Move to... + * testsuite/27_io/filebuf_virtuals-*: ...here. + * testsuite/27_io/istream.cc: Compile only, activate. + * testsuite/27_io/ostream.cc: Same. + * testsuite/27_io/iostream.cc: New. + * testsuite/27_io/iostream_members.cc: New. + 2002-01-25 David Billinghurst * testsuite/thread/pthread1.cc: Enable on cygwin. diff --git a/libstdc++-v3/include/bits/fstream.tcc b/libstdc++-v3/include/bits/fstream.tcc index 1e29e5d17c8..420516bb501 100644 --- a/libstdc++-v3/include/bits/fstream.tcc +++ b/libstdc++-v3/include/bits/fstream.tcc @@ -1,6 +1,7 @@ // File based streams -*- C++ -*- -// Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 +// 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 @@ -181,31 +182,31 @@ namespace std __filebuf_type *__ret = NULL; if (this->is_open()) { + const int_type __eof = traits_type::eof(); bool __testput = _M_out_cur && _M_out_beg < _M_out_end; - if (__testput - && _M_really_overflow(traits_type::eof()) != traits_type::eof()) - { - // NB: Do this here so that re-opened filebufs will be cool... - _M_mode = ios_base::openmode(0); - _M_destroy_internal_buffer(); - - _M_pback_destroy(); - if (_M_pback) - { - delete [] _M_pback; - _M_pback = NULL; - } + if (__testput && _M_really_overflow(__eof) == __eof) + return __ret; + // NB: Do this here so that re-opened filebufs will be cool... + _M_mode = ios_base::openmode(0); + _M_destroy_internal_buffer(); + + _M_pback_destroy(); + if (_M_pback) + { + delete [] _M_pback; + _M_pback = NULL; + } + #if 0 // XXX not done if (_M_last_overflowed) { _M_output_unshift(); - _M_really_overflow(traits_type::eof()); + _M_really_overflow(__eof); } #endif - __ret = this; - } + __ret = this; } // Can actually allocate this file as part of an open and never @@ -429,11 +430,11 @@ namespace std // NB: Need this so that external byte sequence reflects // internal buffer. - if (__len == __plen) - _M_set_indeterminate(); - - if (!_M_file->sync()) - __ret = traits_type::not_eof(__c); + if (__len == __plen && !_M_file->sync()) + { + _M_set_indeterminate(); + __ret = traits_type::not_eof(__c); + } #else // Part one: Allocate temporary conversion buffer on // stack. Convert internal buffer plus __c (ie, @@ -609,3 +610,8 @@ namespace std #endif // _CPP_BITS_FSTREAM_TCC + + + + + diff --git a/libstdc++-v3/testsuite/27_io/filebuf-1.tst b/libstdc++-v3/testsuite/27_io/filebuf-1.tst deleted file mode 100644 index cb3c57f7dfd..00000000000 --- a/libstdc++-v3/testsuite/27_io/filebuf-1.tst +++ /dev/null @@ -1,158 +0,0 @@ -// 990117 bkoz -// test functionality of basic_filebuf for char_type == char -// this is a data file for 27filebuf.cc - -// Copyright (C) 1997-1999 Cygnus Solutions -// -// 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 -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 2, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING. If not, write to the Free -// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -// USA. - -/mnt/cdrom/sarah_vaughan/sarah_vaughan.allofme -/mnt/cdrom/sarah_vaughan/sarah_vaughan.speaklow - -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_01_the_way_i_feel -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_02_seduction_kidnap -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_03_just_a_ny_poem -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_04_butterflies_i_remem -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_05_luxury_poem -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_06_my_house -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_07_the_women_gather -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_08_the_life_i_led -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_09_when_i_die -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_10_revolutionary_dreams -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_11_winter_poem -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_12_a_certain_peace_i_nap -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_13_poem_for_a_lady_whose - -/mnt/cdrom/marley-songs_of_freedom/disk_1/ -/mnt/cdrom/marley-songs_of_freedom/disk_2/ -/mnt/cdrom/marley-songs_of_freedom/disk_4/ - -/mnt/cdrom/marley-songs_of_freedom/disk_1/back out -/mnt/cdrom/marley-songs_of_freedom/disk_1/bend down low -/mnt/cdrom/marley-songs_of_freedom/disk_1/bus dem shut (pyaka) -/mnt/cdrom/marley-songs_of_freedom/disk_1/caution -/mnt/cdrom/marley-songs_of_freedom/disk_1/do it twice -/mnt/cdrom/marley-songs_of_freedom/disk_1/don't rock the boat -/mnt/cdrom/marley-songs_of_freedom/disk_1/duppy conqueror -/mnt/cdrom/marley-songs_of_freedom/disk_1/hammer -/mnt/cdrom/marley-songs_of_freedom/disk_1/hypocrites -/mnt/cdrom/marley-songs_of_freedom/disk_1/i'm still waiting -/mnt/cdrom/marley-songs_of_freedom/disk_1/judge not -/mnt/cdrom/marley-songs_of_freedom/disk_1/mellow mood -/mnt/cdrom/marley-songs_of_freedom/disk_1/mr brown -/mnt/cdrom/marley-songs_of_freedom/disk_1/nice time -/mnt/cdrom/marley-songs_of_freedom/disk_1/one cup of coffee -/mnt/cdrom/marley-songs_of_freedom/disk_1/one love_people get ready -/mnt/cdrom/marley-songs_of_freedom/disk_1/put it on -/mnt/cdrom/marley-songs_of_freedom/disk_1/simmer down -/mnt/cdrom/marley-songs_of_freedom/disk_1/small axe -/mnt/cdrom/marley-songs_of_freedom/disk_1/soul rebel -/mnt/cdrom/marley-songs_of_freedom/disk_1/soul shake down party -/mnt/cdrom/marley-songs_of_freedom/disk_1/stir it up (original) -/mnt/cdrom/marley-songs_of_freedom/disk_1/sun is shining -/mnt/cdrom/marley-songs_of_freedom/disk_1/thank you lord (original) -/mnt/cdrom/marley-songs_of_freedom/disk_2/acoustic medley -/mnt/cdrom/marley-songs_of_freedom/disk_2/burnin' and lootin' -/mnt/cdrom/marley-songs_of_freedom/disk_2/concrete jungle -/mnt/cdrom/marley-songs_of_freedom/disk_2/craven choke puppy -/mnt/cdrom/marley-songs_of_freedom/disk_2/get up stand up -/mnt/cdrom/marley-songs_of_freedom/disk_2/guava jelly -/mnt/cdrom/marley-songs_of_freedom/disk_2/high tide or low tide -/mnt/cdrom/marley-songs_of_freedom/disk_2/i shot the sheriff -/mnt/cdrom/marley-songs_of_freedom/disk_2/i'm hurting inside -/mnt/cdrom/marley-songs_of_freedom/disk_2/iron lion zion -/mnt/cdrom/marley-songs_of_freedom/disk_2/lick samba -/mnt/cdrom/marley-songs_of_freedom/disk_2/lively up yourself -/mnt/cdrom/marley-songs_of_freedom/disk_2/natty dread -/mnt/cdrom/marley-songs_of_freedom/disk_2/no more trouble -/mnt/cdrom/marley-songs_of_freedom/disk_2/rastaman chant -/mnt/cdrom/marley-songs_of_freedom/disk_2/screw face -/mnt/cdrom/marley-songs_of_freedom/disk_2/slave driver -/mnt/cdrom/marley-songs_of_freedom/disk_2/trenchtown rock -/mnt/cdrom/marley-songs_of_freedom/disk_4/africa unite -/mnt/cdrom/marley-songs_of_freedom/disk_4/babylon system -/mnt/cdrom/marley-songs_of_freedom/disk_4/bad card -/mnt/cdrom/marley-songs_of_freedom/disk_4/coming in from the cold (12 -/mnt/cdrom/marley-songs_of_freedom/disk_4/could you be loved (12 mix -/mnt/cdrom/marley-songs_of_freedom/disk_4/forever loving jah -/mnt/cdrom/marley-songs_of_freedom/disk_4/give thanks and praise -/mnt/cdrom/marley-songs_of_freedom/disk_4/one drop -/mnt/cdrom/marley-songs_of_freedom/disk_4/one dub -/mnt/cdrom/marley-songs_of_freedom/disk_4/rastaman live up -/mnt/cdrom/marley-songs_of_freedom/disk_4/real situation -/mnt/cdrom/marley-songs_of_freedom/disk_4/redemption song (live in pi -/mnt/cdrom/marley-songs_of_freedom/disk_4/ride natty ride (12 mix) -/mnt/cdrom/marley-songs_of_freedom/disk_4/so much trouble in the worl -/mnt/cdrom/marley-songs_of_freedom/disk_4/survival -/mnt/cdrom/marley-songs_of_freedom/disk_4/why should i (previously un -/mnt/cdrom/marley-songs_of_freedom/disk_4/zimbabwe - -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_01_pandemonium -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_02_sync_disjecta -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_03_object_unknown -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_04_it's_nice_not -/mnt/cdrom/dj_spooky_rid-2dim_warefare/djspooky_05_dialectical_tra -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_06_post-human_soph -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_07_quilombo_ex -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_08_rekonstruction -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_09_scientifik -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_10_a_conversation -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_11_peace_in_zaire -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_13_degree_zero -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_14_roman_planeta -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_15_bass_digitalis -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_16_polyphony_of -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_17_riddim_warfare -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_18_the_nerd -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_20_theme_of_the -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_21_twilight_fugue - -/mnt/cdrom/stuff_smith_mosaic/disk3/01_desert_sands -/mnt/cdrom/stuff_smith_mosaic/disk3/02_soft_winds -/mnt/cdrom/stuff_smith_mosaic/disk3/03_time_and_again -/mnt/cdrom/stuff_smith_mosaic/disk3/04_it_don't_mean_a_thing -/mnt/cdrom/stuff_smith_mosaic/disk3/05_in_a_mellotone -/mnt/cdrom/stuff_smith_mosaic/disk3/06_i_know_that_you_know -/mnt/cdrom/stuff_smith_mosaic/disk3/07_heat_wave -/mnt/cdrom/stuff_smith_mosaic/disk3/08_things_ain't_what_they_used_to_be -/mnt/cdrom/stuff_smith_mosaic/disk3/09_body_and_soul - -So I take a break, wander down to the park to stand, then lean into -the concrete railing demarking the beginnings of space, oceanic -space. I watch the waves break, and form, and ease back out to sea and -wrap my arms around myself and hug tightly because it's early in the -morning and windy, and the sun is late getting out of bed today, which -is good because if there was brilliant light illuminating all the -beauty around me I would be shocked, stunned, forced to retreat back -into my cabana in a daze, blinded by hummingbirds and callilillies and -un-named red, yellow, and blue flowers. Green envelopes me, waves -sooth me. I can see the wind flip the top of the waves seaward, right -before they break. The sea seems so calm from my perch above the fray -that I wonder if maybe there is just some part of the deepest, most -abstract ocean where there is a large creature who happily chews -plankton and wags its tail in gentle, adulating waves that spread and -move and gracefully glide thousands of miles, to crash upon a beach, -one after the other, politely waiting for a turn to dance with the -seashore. - -I know: it is what the Mexican schoolchildren call "la vibora de la -mer," the serpent of the sea. - - - - - diff --git a/libstdc++-v3/testsuite/27_io/filebuf-1.txt b/libstdc++-v3/testsuite/27_io/filebuf-1.txt deleted file mode 100644 index cb3c57f7dfd..00000000000 --- a/libstdc++-v3/testsuite/27_io/filebuf-1.txt +++ /dev/null @@ -1,158 +0,0 @@ -// 990117 bkoz -// test functionality of basic_filebuf for char_type == char -// this is a data file for 27filebuf.cc - -// Copyright (C) 1997-1999 Cygnus Solutions -// -// 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 -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 2, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING. If not, write to the Free -// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -// USA. - -/mnt/cdrom/sarah_vaughan/sarah_vaughan.allofme -/mnt/cdrom/sarah_vaughan/sarah_vaughan.speaklow - -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_01_the_way_i_feel -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_02_seduction_kidnap -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_03_just_a_ny_poem -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_04_butterflies_i_remem -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_05_luxury_poem -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_06_my_house -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_07_the_women_gather -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_08_the_life_i_led -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_09_when_i_die -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_10_revolutionary_dreams -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_11_winter_poem -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_12_a_certain_peace_i_nap -/mnt/cdrom/nikkigiovanni_thewayifeel/ng_13_poem_for_a_lady_whose - -/mnt/cdrom/marley-songs_of_freedom/disk_1/ -/mnt/cdrom/marley-songs_of_freedom/disk_2/ -/mnt/cdrom/marley-songs_of_freedom/disk_4/ - -/mnt/cdrom/marley-songs_of_freedom/disk_1/back out -/mnt/cdrom/marley-songs_of_freedom/disk_1/bend down low -/mnt/cdrom/marley-songs_of_freedom/disk_1/bus dem shut (pyaka) -/mnt/cdrom/marley-songs_of_freedom/disk_1/caution -/mnt/cdrom/marley-songs_of_freedom/disk_1/do it twice -/mnt/cdrom/marley-songs_of_freedom/disk_1/don't rock the boat -/mnt/cdrom/marley-songs_of_freedom/disk_1/duppy conqueror -/mnt/cdrom/marley-songs_of_freedom/disk_1/hammer -/mnt/cdrom/marley-songs_of_freedom/disk_1/hypocrites -/mnt/cdrom/marley-songs_of_freedom/disk_1/i'm still waiting -/mnt/cdrom/marley-songs_of_freedom/disk_1/judge not -/mnt/cdrom/marley-songs_of_freedom/disk_1/mellow mood -/mnt/cdrom/marley-songs_of_freedom/disk_1/mr brown -/mnt/cdrom/marley-songs_of_freedom/disk_1/nice time -/mnt/cdrom/marley-songs_of_freedom/disk_1/one cup of coffee -/mnt/cdrom/marley-songs_of_freedom/disk_1/one love_people get ready -/mnt/cdrom/marley-songs_of_freedom/disk_1/put it on -/mnt/cdrom/marley-songs_of_freedom/disk_1/simmer down -/mnt/cdrom/marley-songs_of_freedom/disk_1/small axe -/mnt/cdrom/marley-songs_of_freedom/disk_1/soul rebel -/mnt/cdrom/marley-songs_of_freedom/disk_1/soul shake down party -/mnt/cdrom/marley-songs_of_freedom/disk_1/stir it up (original) -/mnt/cdrom/marley-songs_of_freedom/disk_1/sun is shining -/mnt/cdrom/marley-songs_of_freedom/disk_1/thank you lord (original) -/mnt/cdrom/marley-songs_of_freedom/disk_2/acoustic medley -/mnt/cdrom/marley-songs_of_freedom/disk_2/burnin' and lootin' -/mnt/cdrom/marley-songs_of_freedom/disk_2/concrete jungle -/mnt/cdrom/marley-songs_of_freedom/disk_2/craven choke puppy -/mnt/cdrom/marley-songs_of_freedom/disk_2/get up stand up -/mnt/cdrom/marley-songs_of_freedom/disk_2/guava jelly -/mnt/cdrom/marley-songs_of_freedom/disk_2/high tide or low tide -/mnt/cdrom/marley-songs_of_freedom/disk_2/i shot the sheriff -/mnt/cdrom/marley-songs_of_freedom/disk_2/i'm hurting inside -/mnt/cdrom/marley-songs_of_freedom/disk_2/iron lion zion -/mnt/cdrom/marley-songs_of_freedom/disk_2/lick samba -/mnt/cdrom/marley-songs_of_freedom/disk_2/lively up yourself -/mnt/cdrom/marley-songs_of_freedom/disk_2/natty dread -/mnt/cdrom/marley-songs_of_freedom/disk_2/no more trouble -/mnt/cdrom/marley-songs_of_freedom/disk_2/rastaman chant -/mnt/cdrom/marley-songs_of_freedom/disk_2/screw face -/mnt/cdrom/marley-songs_of_freedom/disk_2/slave driver -/mnt/cdrom/marley-songs_of_freedom/disk_2/trenchtown rock -/mnt/cdrom/marley-songs_of_freedom/disk_4/africa unite -/mnt/cdrom/marley-songs_of_freedom/disk_4/babylon system -/mnt/cdrom/marley-songs_of_freedom/disk_4/bad card -/mnt/cdrom/marley-songs_of_freedom/disk_4/coming in from the cold (12 -/mnt/cdrom/marley-songs_of_freedom/disk_4/could you be loved (12 mix -/mnt/cdrom/marley-songs_of_freedom/disk_4/forever loving jah -/mnt/cdrom/marley-songs_of_freedom/disk_4/give thanks and praise -/mnt/cdrom/marley-songs_of_freedom/disk_4/one drop -/mnt/cdrom/marley-songs_of_freedom/disk_4/one dub -/mnt/cdrom/marley-songs_of_freedom/disk_4/rastaman live up -/mnt/cdrom/marley-songs_of_freedom/disk_4/real situation -/mnt/cdrom/marley-songs_of_freedom/disk_4/redemption song (live in pi -/mnt/cdrom/marley-songs_of_freedom/disk_4/ride natty ride (12 mix) -/mnt/cdrom/marley-songs_of_freedom/disk_4/so much trouble in the worl -/mnt/cdrom/marley-songs_of_freedom/disk_4/survival -/mnt/cdrom/marley-songs_of_freedom/disk_4/why should i (previously un -/mnt/cdrom/marley-songs_of_freedom/disk_4/zimbabwe - -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_01_pandemonium -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_02_sync_disjecta -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_03_object_unknown -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_04_it's_nice_not -/mnt/cdrom/dj_spooky_rid-2dim_warefare/djspooky_05_dialectical_tra -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_06_post-human_soph -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_07_quilombo_ex -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_08_rekonstruction -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_09_scientifik -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_10_a_conversation -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_11_peace_in_zaire -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_13_degree_zero -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_14_roman_planeta -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_15_bass_digitalis -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_16_polyphony_of -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_17_riddim_warfare -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_18_the_nerd -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_20_theme_of_the -/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_21_twilight_fugue - -/mnt/cdrom/stuff_smith_mosaic/disk3/01_desert_sands -/mnt/cdrom/stuff_smith_mosaic/disk3/02_soft_winds -/mnt/cdrom/stuff_smith_mosaic/disk3/03_time_and_again -/mnt/cdrom/stuff_smith_mosaic/disk3/04_it_don't_mean_a_thing -/mnt/cdrom/stuff_smith_mosaic/disk3/05_in_a_mellotone -/mnt/cdrom/stuff_smith_mosaic/disk3/06_i_know_that_you_know -/mnt/cdrom/stuff_smith_mosaic/disk3/07_heat_wave -/mnt/cdrom/stuff_smith_mosaic/disk3/08_things_ain't_what_they_used_to_be -/mnt/cdrom/stuff_smith_mosaic/disk3/09_body_and_soul - -So I take a break, wander down to the park to stand, then lean into -the concrete railing demarking the beginnings of space, oceanic -space. I watch the waves break, and form, and ease back out to sea and -wrap my arms around myself and hug tightly because it's early in the -morning and windy, and the sun is late getting out of bed today, which -is good because if there was brilliant light illuminating all the -beauty around me I would be shocked, stunned, forced to retreat back -into my cabana in a daze, blinded by hummingbirds and callilillies and -un-named red, yellow, and blue flowers. Green envelopes me, waves -sooth me. I can see the wind flip the top of the waves seaward, right -before they break. The sea seems so calm from my perch above the fray -that I wonder if maybe there is just some part of the deepest, most -abstract ocean where there is a large creature who happily chews -plankton and wags its tail in gentle, adulating waves that spread and -move and gracefully glide thousands of miles, to crash upon a beach, -one after the other, politely waiting for a turn to dance with the -seashore. - -I know: it is what the Mexican schoolchildren call "la vibora de la -mer," the serpent of the sea. - - - - - diff --git a/libstdc++-v3/testsuite/27_io/filebuf-2.tst b/libstdc++-v3/testsuite/27_io/filebuf-2.tst deleted file mode 100644 index f25bba46d92..00000000000 --- a/libstdc++-v3/testsuite/27_io/filebuf-2.tst +++ /dev/null @@ -1 +0,0 @@ -ac23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZracadabras23456789:;< \ No newline at end of file diff --git a/libstdc++-v3/testsuite/27_io/filebuf-3.tst b/libstdc++-v3/testsuite/27_io/filebuf-3.tst deleted file mode 100644 index 0a81f511290..00000000000 --- a/libstdc++-v3/testsuite/27_io/filebuf-3.tst +++ /dev/null @@ -1,7 +0,0 @@ -bd2 -456x -9m;uva?@ABCDEFGHIJKLMNOPQRSTUVWXYZracadabras, i wanna -because because -because. . . -of the wonderful things he does!! -ok \ No newline at end of file diff --git a/libstdc++-v3/testsuite/27_io/filebuf.cc b/libstdc++-v3/testsuite/27_io/filebuf.cc index ce2beb0c25c..558d196f9fb 100644 --- a/libstdc++-v3/testsuite/27_io/filebuf.cc +++ b/libstdc++-v3/testsuite/27_io/filebuf.cc @@ -1,6 +1,7 @@ -// 990117 bkoz test functionality of basic_filebuf for char_type == char +// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char -// Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 +// 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 @@ -21,578 +22,31 @@ // NB: this test assumes that _M_buf_size == 40, and not the usual // buffer_size length of BUFSIZ (8192), so that overflow/underflow can be // simulated a bit more readily. -// NRB (Nota Really Bene): setting it to 40 breaks the test, as intended. - -// @require@ %-*.tst %-*.txt -// @diff@ %-*.tst %*.txt - -const int buffer_size = 8192; -//const int buffer_size = 40; #include -#include #include -const char carray_01[] = "santa cruz or sandiego?"; -const char carray_02[] = "memphis, new orleans, and savanah"; -const char name_01[] = "filebuf-1.txt"; // file with data in it -const char name_02[] = "filebuf-2.txt"; // empty file, need to create -const char name_03[] = "filebuf-3.txt"; // empty file, need to create - -class derived_filebuf: public std::filebuf -{ - public: - void - set_size(int_type __size) { _M_buf_size_opt = __size; } -}; - -derived_filebuf fb_01; // in -derived_filebuf fb_02; // out -derived_filebuf fb_03; // in | out - - -// initialize filebufs to be the same size regardless of platform -void test00() -{ - fb_01.set_size(buffer_size); - fb_02.set_size(buffer_size); - fb_03.set_size(buffer_size); -} - - -// test the filebuf/stringbuf locale settings -bool test01() { - std::locale loc_tmp; - loc_tmp = fb_01.getloc(); - fb_01.pubimbue(loc_tmp); //This should initialize _M_init to true - fb_01.getloc(); //This should just return _M_locale - - return true; -} - - -// test member functions functions -bool test02() { - bool test = true; - - // bool is_open() - VERIFY( !fb_01.is_open() ); - VERIFY( !fb_02.is_open() ); - VERIFY( !fb_03.is_open() ); - - // filebuf_type* open(const char* __s, ios_base::openmode __mode) - fb_01.open(name_01, std::ios_base::in | std::ios_base::ate); - fb_02.open(name_02, std::ios_base::in | std::ios_base::out | std::ios_base::trunc); - // Try to open two different files without closing the first: - // Should keep the old file attached, and disregard attempt to overthrow. - fb_02.open(name_03, std::ios_base::in | std::ios_base::out); - fb_03.open(name_03, std::ios_base::out | std::ios_base::trunc); - VERIFY( fb_01.is_open() ); - VERIFY( fb_02.is_open() ); - VERIFY( fb_03.is_open() ); - - // filebuf_type* close() - fb_01.close(); - fb_02.close(); - fb_03.close(); - VERIFY( !fb_01.is_open() ); - VERIFY( !fb_02.is_open() ); - VERIFY( !fb_03.is_open() ); - -#ifdef DEBUG_ASSERT - assert(test); -#endif - - return test; -} - - -// test overloaded virtual functions -bool test03() { - typedef std::filebuf::int_type int_type; - typedef std::filebuf::traits_type traits_type; - typedef std::filebuf::pos_type pos_type; - typedef std::filebuf::off_type off_type; - typedef size_t size_type; - - bool test = true; - std::filebuf f_tmp; - std::streamsize strmsz_1, strmsz_2; - std::streamoff strmof_1, strmof_2; - int i = 0, j = 0, k = 0; - - // GET - // int showmanyc() - // returns an estimate of the numbers of chars in the seq, or -1. - // if __retval > 0, then calls to underflow won't return - // traits_type::eof() till at least __retval chars. - // if __retval == -1, then calls to underflow or uflow will fail. - // NB overriding def if it can determine more chars can be read from - // the input sequence. - - // int in_avail() - // if a read position is available, return _M_in_end - _M_in_cur. - // else return showmanyc. - strmof_1 = fb_01.in_avail(); - strmof_2 = fb_02.in_avail(); - VERIFY( strmof_1 == -1 ); - VERIFY( strmof_1 == strmof_2 ); //fail because not open - strmof_1 = fb_03.in_avail(); - VERIFY( strmof_1 == strmof_2 ); - fb_01.open(name_01, std::ios_base::in); - fb_02.open(name_02, std::ios_base::out | std::ios_base::trunc); - fb_03.open(name_03, std::ios_base::out | std::ios_base::in | std::ios_base::trunc); - strmof_1 = fb_01.in_avail(); - strmof_2 = fb_02.in_avail(); - VERIFY( strmof_1 != strmof_2 ); - VERIFY( strmof_1 >= 0 ); - VERIFY( strmof_2 == -1 ); // empty file - strmof_1 = fb_03.in_avail(); - VERIFY( strmof_1 == 0 ); // empty file - - // int_type sbumpc() - // if read_cur not avail returns uflow(), else return *read_cur & increment - int_type c1 = fb_01.sbumpc(); - int_type c2 = fb_02.sbumpc(); - VERIFY( c1 != c2 ); - VERIFY( c1 == '/' ); - VERIFY( c2 == -1 ); - int_type c3 = fb_01.sbumpc(); - int_type c4 = fb_02.sbumpc(); - VERIFY( c3 != c4 ); - VERIFY( c1 == c3 ); // fluke, both happen to be '/' - VERIFY( c2 == c4 ); - int_type c5 = fb_03.sbumpc(); - VERIFY( c5 == traits_type::eof() ); - // XXX should do some kind of test to make sure that internal - // buffers point ot the same thing, to check consistancy. - - // int_type sgetc() - // if read_cur not avail, return uflow(), else return *read_cur - int_type c6 = fb_01.sgetc(); - int_type c7 = fb_02.sgetc(); - VERIFY( c6 != c3 ); - VERIFY( c7 == c4 ); // both -1 - int_type c8 = fb_01.sgetc(); - int_type c9 = fb_02.sgetc(); - VERIFY( c6 == c8 ); - VERIFY( c7 == c9 ); - c5 = fb_03.sgetc(); - VERIFY( c5 == traits_type::eof() ); - - // int_type snextc() - // calls sbumpc and if sbumpc != eof, return sgetc - c6 = fb_01.snextc(); - c7 = fb_02.snextc(); - VERIFY( c6 != c8 ); - VERIFY( c7 == c9 ); // -1 - VERIFY( c6 == '9' ); - c6 = fb_01.snextc(); - c7 = fb_02.snextc(); - VERIFY( c6 != c8 ); - VERIFY( c7 == c9 ); // -1 - VERIFY( c6 == '9' ); - c5 = fb_03.snextc(); - VERIFY( c5 == traits_type::eof() ); - - // streamsize sgetn(char_type *s, streamsize n) - // streamsize xsgetn(char_type *s, streamsize n) - // assign up to n chars to s from input sequence, indexing in_cur as - // approp and returning the number of chars assigned - strmsz_1 = fb_01.in_avail(); - strmsz_2 = fb_02.in_avail(); - test = strmsz_1 != strmsz_2; - char carray1[13] = ""; - strmsz_1 = fb_01.sgetn(carray1, 10); - char carray2[buffer_size] = ""; - strmsz_2 = fb_02.sgetn(carray2, 10); - VERIFY( strmsz_1 != strmsz_2 ); - VERIFY( strmsz_1 == 10 ); - VERIFY( strmsz_2 == 0 ); - c1 = fb_01.sgetc(); - c2 = fb_02.sgetc(); - VERIFY( c1 == '\n' ); - VERIFY( c7 == c2 ); // n != i - strmsz_1 = fb_03.sgetn(carray1, 10); - VERIFY( !strmsz_1 ); //zero - strmsz_1 = fb_01.in_avail(); - strmsz_2 = fb_01.sgetn(carray2, strmsz_1 + 5); - VERIFY( strmsz_1 == strmsz_2 - 5 ); - c4 = fb_01.sgetc(); // buffer should have underflowed from above. - VERIFY( c4 == 'i' ); - strmsz_1 = fb_01.in_avail(); - VERIFY( strmsz_1 > 0 ); - strmsz_2 = fb_01.sgetn(carray2, strmsz_1 + 5); - VERIFY( strmsz_1 == strmsz_2 ); //at the end of the actual file - strmsz_1 = fb_02.in_avail(); - strmsz_2 = fb_02.sgetn(carray2, strmsz_1 + 5); - VERIFY( strmsz_1 == -1 ); - VERIFY( strmsz_2 == 0 ); - c4 = fb_02.sgetc(); // should be EOF - VERIFY( c4 == traits_type::eof() ); - - // PUT - // int_type sputc(char_type c) - // if out_cur not avail, return overflow(traits_type::to_int_type(c)) - // else, stores c at out_cur, - // increments out_cur, and returns c as int_type - // strmsz_1 = fb_03.in_avail(); // XXX valid for in|out?? - c1 = fb_02.sputc('a'); - c2 = fb_03.sputc('b'); - VERIFY( c1 != c2 ); - c1 = fb_02.sputc('c'); - c2 = fb_03.sputc('d'); - VERIFY( c1 != c2 ); - // strmsz_2 = fb_03.in_avail(); - // VERIFY( strmsz_1 != strmsz_2 ); - for (int i = 50; i <= 90; ++i) - c2 = fb_02.sputc(char(i)); - // 27filebuf-2.txt == ac23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX - // fb_02._M_out_cur = '2' - strmsz_1 = fb_03.in_avail(); - for (int i = 50; i <= 90; ++i) - c2 = fb_03.sputc(char(i)); - strmsz_2 = fb_03.in_avail(); - // VERIFY( strmsz_1 != strmsz_2 ); - // VERIFY( strmsz_1 > 0 ); - // VERIFY( strmsz_2 > 0 ); - // 27filebuf-2.txt == bd23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX - // fb_02._M_out_cur = '2' - c3 = fb_01.sputc('a'); // should be EOF because this is read-only - VERIFY( c3 == traits_type::eof() ); - - // streamsize sputn(const char_typs* s, streamsize n) - // write up to n chars to out_cur from s, returning number assigned - // NB *sputn will happily put '\0' into your stream if you give it a chance* - strmsz_1 = fb_03.sputn("racadabras", 10);//"abracadabras or what?" - VERIFY( strmsz_1 == 10 ); - strmsz_2 = fb_03.sputn(", i wanna reach out and", 10); - VERIFY( strmsz_2 == 10 ); - VERIFY( strmsz_1 == strmsz_2 ); - // fb_03._M_out_beg = "YZracadabras, i wanna FGHIJKLMNOPQRSTUVW" - // fb_03._M_out_cur = "FGHIJKLMNOPQRSTUVW" - strmsz_1 = fb_02.sputn("racadabras", 10); - VERIFY( strmsz_1 == 10 ); - // fb_02._M_out_beg = "YZracadabras<=>?@ABCDEFGHIJKLMNOPQRSTUVW" - // fb_02._M_out_cur = "<=>?@ABCDEFGHIJKLMNOPQRSTUVW" - strmsz_1 = fb_01.sputn("racadabra", 10); - VERIFY( strmsz_1 == 0 ); - - // PUTBACK - // int_type pbfail(int_type c) - // called when gptr() null, gptr() == eback(), or traits::eq(*gptr, c) false - // "pending sequence" is: - // 1) everything as defined in underflow - // 2) + if (traits::eq_int_type(c, traits::eof()), then input - // sequence is backed up one char before the pending sequence is - // determined. - // 3) + if (not 2) then c is prepended. Left unspecified is - // whether the input sequence is backedup or modified in any way - // returns traits::eof() for failure, unspecified other value for success - - // int_type sputbackc(char_type c) - // if in_cur not avail || ! traits::eq(c, gptr() [-1]), return pbfail - // otherwise decrements in_cur and returns *gptr() - c1 = fb_03.sgetc(); // -1 - c2 = fb_03.sputbackc('z'); - strmsz_2 = fb_03.in_avail(); - c3 = fb_03.sgetc(); - VERIFY( c3 == c2 ); - VERIFY( c1 != c3 ); - VERIFY( 1 == strmsz_2 ); - //test for _in_cur == _in_beg - // fb_03._M_out_beg = "bd23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZracada" etc - fb_03.pubseekoff(10, std::ios_base::beg, - std::ios_base::in | std::ios_base::out); - fb_03.sputc('m'); - strmsz_1 = fb_03.in_avail(); - c1 = fb_03.sgetc(); - fb_03.snextc(); - c2 = fb_03.sputbackc('z'); - strmsz_2 = fb_03.in_avail(); - c3 = fb_03.sgetc(); - VERIFY( c1 != c2 ); - VERIFY( c3 == c2 ); - VERIFY( c1 != c3 ); - VERIFY( c2 == 'z' ); - // VERIFY( strmsz_1 == strmsz_2 ); - // test for replacing char with identical one - fb_03.snextc(); - fb_03.sputc('u'); - fb_03.sputc('v'); - fb_03.sputc('a'); - strmsz_1 = fb_03.in_avail(); - c2 = fb_03.sputbackc('a'); - strmsz_2 = fb_03.in_avail(); - c3 = fb_03.sgetc(); - VERIFY( c3 == c2 ); - VERIFY( strmsz_1 + 1 == strmsz_2 ); - //test for ios_base::out - c1 = fb_02.sgetc(); // undefined - c2 = fb_02.sputbackc('a'); - VERIFY( c1 == c2 ); - VERIFY( c1 == -1 ); - - // int_type sungetc() - // if in_cur not avail, return pbackfail(), else decrement and - // return to_int_type(*gptr()) - // fb_03._M_out_beg = "uvaacadabras, i wannaZ[\\]^_`abcdefghijkl" - // fb_03._M_out_cur = "aacadabras, i wannaZ[\\]^_`abcdefghijkl" - strmsz_1 = fb_03.in_avail(); - c2 = fb_03.sungetc(); // delete the 'a' - strmsz_2 = fb_03.in_avail(); - VERIFY( c2 == 'v' ); // VERIFY( c2 != traits_type::eof() ); - VERIFY( strmsz_1 + 1 == strmsz_2 ); - //test for _in_cur == _in_beg - for (int i = 50; i < 32 + 29; ++i) - fb_02.sputc(char(i)); - fb_02.pubseekoff(0, std::ios_base::beg, std::ios_base::out); - c1 = fb_02.sgetc(); - strmsz_1 = fb_02.in_avail(); - c2 = fb_02.sungetc(); - c3 = fb_02.sgetc(); - strmsz_2 = fb_02.in_avail(); - VERIFY( c1 != c2 ); - VERIFY( c2 == c3 ); - VERIFY( c1 == traits_type::eof() ); - VERIFY( strmsz_1 != strmsz_2 ); - //test for _in_cur == _in_end - fb_03.pubseekoff(0, std::ios_base::end); - strmsz_1 = fb_03.in_avail(); // -1 cuz at the end - c1 = fb_03.sgetc(); - c2 = fb_03.sungetc(); - strmsz_2 = fb_03.in_avail(); // 1 - c3 = fb_03.sgetc(); - VERIFY( c1 != c2 ); - // VERIFY( c2 == c3 || c2 == traits_type::not_eof(int(c3)) ); - VERIFY( strmsz_2 != strmsz_1 ); - VERIFY( strmsz_2 == 1 ); - //test for ios_base::out - - // BUFFER MANAGEMENT & POSITIONING - // int sync() - // if a put area exists, overflow. - // if a get area exists, do something undefined. (like, nothing) - strmsz_1 = fb_01.in_avail(); - fb_01.pubsync(); - strmsz_2 = fb_01.in_avail(); - VERIFY( strmsz_2 == strmsz_1 ); - strmsz_1 = fb_02.in_avail(); - fb_02.pubsync(); - // 27filebuf-2.txt == 53 bytes after this. - strmsz_2 = fb_02.in_avail(); - VERIFY( strmsz_2 == 1 ); - VERIFY( strmsz_2 == strmsz_1 ); - strmsz_1 = fb_03.in_avail(); - fb_03.pubsync(); - // 27filebuf-3.txt - // bd23456789mzuva?@ABCDEFGHIJKLMNOPQRSTUVWXYZracadabras, i wannaz - // 63 bytes. - strmsz_2 = fb_03.in_avail(); - VERIFY( strmsz_1 == 1 ); - // VERIFY( strmsz_2 == 1 ); - - // setbuf - // pubsetbuf(char_type* s, streamsize n) - fb_01.pubsetbuf(0,0); - fb_02.pubsetbuf(0,0); - fb_03.pubsetbuf(0,0); - // Need to test unbuffered output, which means calling this on some - // things that have just been opened. - - - // seekoff - // pubseekoff(off_type off, ios_base::seekdir way, ios_base::openmode which) - // alters the stream position to off - pos_type pt_1(off_type(-1)); - pos_type pt_2(off_type(0)); - off_type off_1 = 0; - off_type off_2 = 0; - //IN|OUT - // 27filebuf-3.txt = bd23456789:;<=>?... - //beg - strmsz_1 = fb_03.in_avail(); - pt_1 = fb_03.pubseekoff(2, std::ios_base::beg); - strmsz_2 = fb_03.in_avail(); - off_1 = pt_1; - VERIFY( off_1 > 0 ); - c1 = fb_03.snextc(); //current in pointer +1 - VERIFY( c1 == '3' ); - c2 = fb_03.sputc('\n'); //current in pointer +1 - c3 = fb_03.sgetc(); - VERIFY( c2 != c3 ); - VERIFY( c3 == '4' ); - fb_03.pubsync(); - c1 = fb_03.sgetc(); - VERIFY( c1 == c3 ); - //cur - // 27filebuf-3.txt = bd2\n456789:;<=>?... - pt_2 = fb_03.pubseekoff(2, std::ios_base::cur); - off_2 = pt_2; - VERIFY( (off_2 == (off_1 + 2 + 1 + 1)) ); - c1 = fb_03.snextc(); //current in pointer +1 - VERIFY( c1 == '7' ); - c2 = fb_03.sputc('x'); //test current out pointer - c3 = fb_03.sputc('\n'); - c1 = fb_03.sgetc(); - fb_03.pubsync(); - c3 = fb_03.sgetc(); - VERIFY( c1 == c3 ); - //end - // 27filebuf-3.txt = "bd2\n456x\n9" - pt_2 = fb_03.pubseekoff(0, std::ios_base::end, - std::ios_base::in|std::ios_base::out); - off_1 = pt_2; - VERIFY( off_1 > off_2 ); //weak, but don't know exactly where it ends - c3 = fb_03.sputc('\n'); - strmsz_1 = fb_03.sputn("because because because. . .", 28); - VERIFY( strmsz_1 == 28 ); - c1 = fb_03.sungetc(); - fb_03.pubsync(); - c3 = fb_03.sgetc(); - VERIFY( c1 == c3 ); - // IN - // OUT - - - // seekpos - // pubseekpos(pos_type sp, ios_base::openmode) - // alters the stream position to sp - //IN|OUT - //beg - pt_1 = fb_03.pubseekoff(78, std::ios_base::beg); - off_1 = pt_1; - VERIFY( off_1 > 0 ); - c1 = fb_03.snextc(); //current in pointer +1 - VERIFY( c1 == ' ' ); - c2 = fb_03.sputc('\n'); //test current out pointer - c3 = fb_03.sgetc(); - fb_03.pubsync(); //resets pointers - pt_2 = fb_03.pubseekpos(pt_1); - off_2 = pt_2; - VERIFY( off_1 == off_2 ); - c3 = fb_03.snextc(); //current in pointer +1 - VERIFY( c2 == c3 ); - pt_1 = fb_03.pubseekoff(0, std::ios_base::end); - off_1 = pt_1; - VERIFY( off_1 > off_2 ); - fb_03.sputn("\nof the wonderful things he does!!\nok", 37); - fb_03.pubsync(); - - // IN - // OUT - - // VIRTUALS (indirectly tested) - // underflow - // if read position avail, returns *gptr() - - // pbackfail(int_type c) - // put c back into input sequence - - // overflow - // appends c to output seq - - // NB Have to close these suckers. . . - // filebuf_type* close() - fb_01.close(); - fb_02.close(); - fb_03.close(); - VERIFY( !fb_01.is_open() ); - VERIFY( !fb_02.is_open() ); - VERIFY( !fb_03.is_open() ); - -#ifdef DEBUG_ASSERT - assert(test); -#endif - - return test; -} - -bool test04() -{ - using namespace std; - typedef istream::int_type int_type; - - bool test = true; - ifstream ifs(name_02); - char buffer[] = "xxxxxxxxxx"; - int_type len1 = ifs.rdbuf()->sgetn(buffer, sizeof(buffer)); - VERIFY( len1 == sizeof(buffer) ); - VERIFY( buffer[0] == 'a' ); - -#ifdef DEBUG_ASSERT - assert(test); -#endif - return test; -} +// { dg-do compile } // test05 // libstdc++/1886 // should be able to instantiate basic_filebuf for non-standard types. template class std::basic_filebuf >; -// test06 -// libstdc++/2020 -// should be able to use custom char_type -class gnu_char_type +int main() { - unsigned long character; -public: - // operator == - bool - operator==(const gnu_char_type& __lhs) - { return character == __lhs.character; } + return 0; +} - // operator < - bool - operator<(const gnu_char_type& __lhs) - { return character < __lhs.character; } - // default ctor - gnu_char_type() { } - // to_char_type - gnu_char_type(const unsigned long& __l) : character(__l) { } +// more surf!!! + - // to_int_type - operator unsigned long() const { return character; } -}; -bool test06() -{ - bool test = true; - typedef std::basic_filebuf gnu_filebuf; - - try - { gnu_filebuf obj; } - catch(std::exception& obj) - { - test = false; - VERIFY( test ); - } - return test; -} -// libstdc++/3647 -void test07() -{ - // Should not block. - std::cout << std::cin.rdbuf()->in_avail() << std::endl; -} -int main() -{ - test00(); - test01(); - test02(); - test03(); - test04(); - test06(); - test07(); - return 0; -} -// more surf!!! diff --git a/libstdc++-v3/testsuite/27_io/filebuf_members.cc b/libstdc++-v3/testsuite/27_io/filebuf_members.cc index ab4a60f3094..66c5a15f252 100644 --- a/libstdc++-v3/testsuite/27_io/filebuf_members.cc +++ b/libstdc++-v3/testsuite/27_io/filebuf_members.cc @@ -1,4 +1,4 @@ -// Copyright (C) 2001 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002 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 @@ -32,21 +32,55 @@ #include #include -// verify that std::filebuf doesn't close files that it didn't open +const char name_01[] = "filebuf_members-1.tst"; +const char name_02[] = "filebuf_members-1.txt"; + +// Test member functions. +void test_01() +{ + bool test = true; + const char* name_03 = "filebuf_members-3"; // empty file, need to create + + std::filebuf fb_01; // in + std::filebuf fb_02; // out + std::filebuf fb_03; // in | out + + // bool is_open() + VERIFY( !fb_01.is_open() ); + VERIFY( !fb_02.is_open() ); + VERIFY( !fb_03.is_open() ); + + // filebuf_type* open(const char* __s, ios_base::openmode __mode) + fb_01.open(name_01, std::ios_base::in | std::ios_base::ate); + fb_02.open(name_02, std::ios_base::in | std::ios_base::out + | std::ios_base::trunc); + // Try to open two different files without closing the first: + // Should keep the old file attached, and disregard attempt to overthrow. + fb_02.open(name_03, std::ios_base::in | std::ios_base::out); + fb_03.open(name_03, std::ios_base::out | std::ios_base::trunc); + VERIFY( fb_01.is_open() ); + VERIFY( fb_02.is_open() ); + VERIFY( fb_03.is_open() ); + + // filebuf_type* close() + fb_01.close(); + fb_02.close(); + fb_03.close(); + VERIFY( !fb_01.is_open() ); + VERIFY( !fb_02.is_open() ); + VERIFY( !fb_03.is_open() ); +} + +// Verify that std::filebuf doesn't close files that it didn't open // when using the following std::filebuf ctor: // // std::filebuf(__c_file_type* __f, // ios_base::openmode __mode, // int_type __s); // -// thanks to "George T. Talbot" for uncovering +// Thanks to "George T. Talbot" for uncovering // this bug/situation. - -const char name_01[] = "filebuf_members-1.tst"; -const char name_02[] = "filebuf_members-1.txt"; - -int -test_01() +void test_02() { bool test = true; int close_num; @@ -72,17 +106,9 @@ test_01() } close_num = fclose(f); VERIFY( close_num == 0 ); - - -#ifdef DEBUG_ASSERT - assert(test); -#endif - - return test; } -int -test_02() +void test_03() { bool test = true; int first_fd = ::open(name_01, O_RDONLY); @@ -93,19 +119,13 @@ test_02() int second_fd = fb.fd(); - test = first_fd == second_fd; - -#ifdef DEBUG_ASSERT - assert(test); -#endif - - return test; + VERIFY( first_fd == second_fd ); } // libstdc++/2913, libstdc++/4879 // John Fardo , Brad Garcia void -test_03() +test_04() { signal(SIGPIPE, SIG_IGN); @@ -159,7 +179,9 @@ main() { test_01(); test_02(); - test_03(); + test_04(); return 0; } + + diff --git a/libstdc++-v3/testsuite/27_io/filebuf_virtuals-1.tst b/libstdc++-v3/testsuite/27_io/filebuf_virtuals-1.tst new file mode 100644 index 00000000000..cb3c57f7dfd --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/filebuf_virtuals-1.tst @@ -0,0 +1,158 @@ +// 990117 bkoz +// test functionality of basic_filebuf for char_type == char +// this is a data file for 27filebuf.cc + +// Copyright (C) 1997-1999 Cygnus Solutions +// +// 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 +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +/mnt/cdrom/sarah_vaughan/sarah_vaughan.allofme +/mnt/cdrom/sarah_vaughan/sarah_vaughan.speaklow + +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_01_the_way_i_feel +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_02_seduction_kidnap +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_03_just_a_ny_poem +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_04_butterflies_i_remem +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_05_luxury_poem +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_06_my_house +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_07_the_women_gather +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_08_the_life_i_led +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_09_when_i_die +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_10_revolutionary_dreams +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_11_winter_poem +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_12_a_certain_peace_i_nap +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_13_poem_for_a_lady_whose + +/mnt/cdrom/marley-songs_of_freedom/disk_1/ +/mnt/cdrom/marley-songs_of_freedom/disk_2/ +/mnt/cdrom/marley-songs_of_freedom/disk_4/ + +/mnt/cdrom/marley-songs_of_freedom/disk_1/back out +/mnt/cdrom/marley-songs_of_freedom/disk_1/bend down low +/mnt/cdrom/marley-songs_of_freedom/disk_1/bus dem shut (pyaka) +/mnt/cdrom/marley-songs_of_freedom/disk_1/caution +/mnt/cdrom/marley-songs_of_freedom/disk_1/do it twice +/mnt/cdrom/marley-songs_of_freedom/disk_1/don't rock the boat +/mnt/cdrom/marley-songs_of_freedom/disk_1/duppy conqueror +/mnt/cdrom/marley-songs_of_freedom/disk_1/hammer +/mnt/cdrom/marley-songs_of_freedom/disk_1/hypocrites +/mnt/cdrom/marley-songs_of_freedom/disk_1/i'm still waiting +/mnt/cdrom/marley-songs_of_freedom/disk_1/judge not +/mnt/cdrom/marley-songs_of_freedom/disk_1/mellow mood +/mnt/cdrom/marley-songs_of_freedom/disk_1/mr brown +/mnt/cdrom/marley-songs_of_freedom/disk_1/nice time +/mnt/cdrom/marley-songs_of_freedom/disk_1/one cup of coffee +/mnt/cdrom/marley-songs_of_freedom/disk_1/one love_people get ready +/mnt/cdrom/marley-songs_of_freedom/disk_1/put it on +/mnt/cdrom/marley-songs_of_freedom/disk_1/simmer down +/mnt/cdrom/marley-songs_of_freedom/disk_1/small axe +/mnt/cdrom/marley-songs_of_freedom/disk_1/soul rebel +/mnt/cdrom/marley-songs_of_freedom/disk_1/soul shake down party +/mnt/cdrom/marley-songs_of_freedom/disk_1/stir it up (original) +/mnt/cdrom/marley-songs_of_freedom/disk_1/sun is shining +/mnt/cdrom/marley-songs_of_freedom/disk_1/thank you lord (original) +/mnt/cdrom/marley-songs_of_freedom/disk_2/acoustic medley +/mnt/cdrom/marley-songs_of_freedom/disk_2/burnin' and lootin' +/mnt/cdrom/marley-songs_of_freedom/disk_2/concrete jungle +/mnt/cdrom/marley-songs_of_freedom/disk_2/craven choke puppy +/mnt/cdrom/marley-songs_of_freedom/disk_2/get up stand up +/mnt/cdrom/marley-songs_of_freedom/disk_2/guava jelly +/mnt/cdrom/marley-songs_of_freedom/disk_2/high tide or low tide +/mnt/cdrom/marley-songs_of_freedom/disk_2/i shot the sheriff +/mnt/cdrom/marley-songs_of_freedom/disk_2/i'm hurting inside +/mnt/cdrom/marley-songs_of_freedom/disk_2/iron lion zion +/mnt/cdrom/marley-songs_of_freedom/disk_2/lick samba +/mnt/cdrom/marley-songs_of_freedom/disk_2/lively up yourself +/mnt/cdrom/marley-songs_of_freedom/disk_2/natty dread +/mnt/cdrom/marley-songs_of_freedom/disk_2/no more trouble +/mnt/cdrom/marley-songs_of_freedom/disk_2/rastaman chant +/mnt/cdrom/marley-songs_of_freedom/disk_2/screw face +/mnt/cdrom/marley-songs_of_freedom/disk_2/slave driver +/mnt/cdrom/marley-songs_of_freedom/disk_2/trenchtown rock +/mnt/cdrom/marley-songs_of_freedom/disk_4/africa unite +/mnt/cdrom/marley-songs_of_freedom/disk_4/babylon system +/mnt/cdrom/marley-songs_of_freedom/disk_4/bad card +/mnt/cdrom/marley-songs_of_freedom/disk_4/coming in from the cold (12 +/mnt/cdrom/marley-songs_of_freedom/disk_4/could you be loved (12 mix +/mnt/cdrom/marley-songs_of_freedom/disk_4/forever loving jah +/mnt/cdrom/marley-songs_of_freedom/disk_4/give thanks and praise +/mnt/cdrom/marley-songs_of_freedom/disk_4/one drop +/mnt/cdrom/marley-songs_of_freedom/disk_4/one dub +/mnt/cdrom/marley-songs_of_freedom/disk_4/rastaman live up +/mnt/cdrom/marley-songs_of_freedom/disk_4/real situation +/mnt/cdrom/marley-songs_of_freedom/disk_4/redemption song (live in pi +/mnt/cdrom/marley-songs_of_freedom/disk_4/ride natty ride (12 mix) +/mnt/cdrom/marley-songs_of_freedom/disk_4/so much trouble in the worl +/mnt/cdrom/marley-songs_of_freedom/disk_4/survival +/mnt/cdrom/marley-songs_of_freedom/disk_4/why should i (previously un +/mnt/cdrom/marley-songs_of_freedom/disk_4/zimbabwe + +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_01_pandemonium +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_02_sync_disjecta +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_03_object_unknown +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_04_it's_nice_not +/mnt/cdrom/dj_spooky_rid-2dim_warefare/djspooky_05_dialectical_tra +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_06_post-human_soph +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_07_quilombo_ex +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_08_rekonstruction +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_09_scientifik +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_10_a_conversation +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_11_peace_in_zaire +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_13_degree_zero +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_14_roman_planeta +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_15_bass_digitalis +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_16_polyphony_of +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_17_riddim_warfare +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_18_the_nerd +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_20_theme_of_the +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_21_twilight_fugue + +/mnt/cdrom/stuff_smith_mosaic/disk3/01_desert_sands +/mnt/cdrom/stuff_smith_mosaic/disk3/02_soft_winds +/mnt/cdrom/stuff_smith_mosaic/disk3/03_time_and_again +/mnt/cdrom/stuff_smith_mosaic/disk3/04_it_don't_mean_a_thing +/mnt/cdrom/stuff_smith_mosaic/disk3/05_in_a_mellotone +/mnt/cdrom/stuff_smith_mosaic/disk3/06_i_know_that_you_know +/mnt/cdrom/stuff_smith_mosaic/disk3/07_heat_wave +/mnt/cdrom/stuff_smith_mosaic/disk3/08_things_ain't_what_they_used_to_be +/mnt/cdrom/stuff_smith_mosaic/disk3/09_body_and_soul + +So I take a break, wander down to the park to stand, then lean into +the concrete railing demarking the beginnings of space, oceanic +space. I watch the waves break, and form, and ease back out to sea and +wrap my arms around myself and hug tightly because it's early in the +morning and windy, and the sun is late getting out of bed today, which +is good because if there was brilliant light illuminating all the +beauty around me I would be shocked, stunned, forced to retreat back +into my cabana in a daze, blinded by hummingbirds and callilillies and +un-named red, yellow, and blue flowers. Green envelopes me, waves +sooth me. I can see the wind flip the top of the waves seaward, right +before they break. The sea seems so calm from my perch above the fray +that I wonder if maybe there is just some part of the deepest, most +abstract ocean where there is a large creature who happily chews +plankton and wags its tail in gentle, adulating waves that spread and +move and gracefully glide thousands of miles, to crash upon a beach, +one after the other, politely waiting for a turn to dance with the +seashore. + +I know: it is what the Mexican schoolchildren call "la vibora de la +mer," the serpent of the sea. + + + + + diff --git a/libstdc++-v3/testsuite/27_io/filebuf_virtuals-1.txt b/libstdc++-v3/testsuite/27_io/filebuf_virtuals-1.txt new file mode 100644 index 00000000000..cb3c57f7dfd --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/filebuf_virtuals-1.txt @@ -0,0 +1,158 @@ +// 990117 bkoz +// test functionality of basic_filebuf for char_type == char +// this is a data file for 27filebuf.cc + +// Copyright (C) 1997-1999 Cygnus Solutions +// +// 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 +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +/mnt/cdrom/sarah_vaughan/sarah_vaughan.allofme +/mnt/cdrom/sarah_vaughan/sarah_vaughan.speaklow + +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_01_the_way_i_feel +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_02_seduction_kidnap +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_03_just_a_ny_poem +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_04_butterflies_i_remem +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_05_luxury_poem +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_06_my_house +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_07_the_women_gather +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_08_the_life_i_led +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_09_when_i_die +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_10_revolutionary_dreams +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_11_winter_poem +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_12_a_certain_peace_i_nap +/mnt/cdrom/nikkigiovanni_thewayifeel/ng_13_poem_for_a_lady_whose + +/mnt/cdrom/marley-songs_of_freedom/disk_1/ +/mnt/cdrom/marley-songs_of_freedom/disk_2/ +/mnt/cdrom/marley-songs_of_freedom/disk_4/ + +/mnt/cdrom/marley-songs_of_freedom/disk_1/back out +/mnt/cdrom/marley-songs_of_freedom/disk_1/bend down low +/mnt/cdrom/marley-songs_of_freedom/disk_1/bus dem shut (pyaka) +/mnt/cdrom/marley-songs_of_freedom/disk_1/caution +/mnt/cdrom/marley-songs_of_freedom/disk_1/do it twice +/mnt/cdrom/marley-songs_of_freedom/disk_1/don't rock the boat +/mnt/cdrom/marley-songs_of_freedom/disk_1/duppy conqueror +/mnt/cdrom/marley-songs_of_freedom/disk_1/hammer +/mnt/cdrom/marley-songs_of_freedom/disk_1/hypocrites +/mnt/cdrom/marley-songs_of_freedom/disk_1/i'm still waiting +/mnt/cdrom/marley-songs_of_freedom/disk_1/judge not +/mnt/cdrom/marley-songs_of_freedom/disk_1/mellow mood +/mnt/cdrom/marley-songs_of_freedom/disk_1/mr brown +/mnt/cdrom/marley-songs_of_freedom/disk_1/nice time +/mnt/cdrom/marley-songs_of_freedom/disk_1/one cup of coffee +/mnt/cdrom/marley-songs_of_freedom/disk_1/one love_people get ready +/mnt/cdrom/marley-songs_of_freedom/disk_1/put it on +/mnt/cdrom/marley-songs_of_freedom/disk_1/simmer down +/mnt/cdrom/marley-songs_of_freedom/disk_1/small axe +/mnt/cdrom/marley-songs_of_freedom/disk_1/soul rebel +/mnt/cdrom/marley-songs_of_freedom/disk_1/soul shake down party +/mnt/cdrom/marley-songs_of_freedom/disk_1/stir it up (original) +/mnt/cdrom/marley-songs_of_freedom/disk_1/sun is shining +/mnt/cdrom/marley-songs_of_freedom/disk_1/thank you lord (original) +/mnt/cdrom/marley-songs_of_freedom/disk_2/acoustic medley +/mnt/cdrom/marley-songs_of_freedom/disk_2/burnin' and lootin' +/mnt/cdrom/marley-songs_of_freedom/disk_2/concrete jungle +/mnt/cdrom/marley-songs_of_freedom/disk_2/craven choke puppy +/mnt/cdrom/marley-songs_of_freedom/disk_2/get up stand up +/mnt/cdrom/marley-songs_of_freedom/disk_2/guava jelly +/mnt/cdrom/marley-songs_of_freedom/disk_2/high tide or low tide +/mnt/cdrom/marley-songs_of_freedom/disk_2/i shot the sheriff +/mnt/cdrom/marley-songs_of_freedom/disk_2/i'm hurting inside +/mnt/cdrom/marley-songs_of_freedom/disk_2/iron lion zion +/mnt/cdrom/marley-songs_of_freedom/disk_2/lick samba +/mnt/cdrom/marley-songs_of_freedom/disk_2/lively up yourself +/mnt/cdrom/marley-songs_of_freedom/disk_2/natty dread +/mnt/cdrom/marley-songs_of_freedom/disk_2/no more trouble +/mnt/cdrom/marley-songs_of_freedom/disk_2/rastaman chant +/mnt/cdrom/marley-songs_of_freedom/disk_2/screw face +/mnt/cdrom/marley-songs_of_freedom/disk_2/slave driver +/mnt/cdrom/marley-songs_of_freedom/disk_2/trenchtown rock +/mnt/cdrom/marley-songs_of_freedom/disk_4/africa unite +/mnt/cdrom/marley-songs_of_freedom/disk_4/babylon system +/mnt/cdrom/marley-songs_of_freedom/disk_4/bad card +/mnt/cdrom/marley-songs_of_freedom/disk_4/coming in from the cold (12 +/mnt/cdrom/marley-songs_of_freedom/disk_4/could you be loved (12 mix +/mnt/cdrom/marley-songs_of_freedom/disk_4/forever loving jah +/mnt/cdrom/marley-songs_of_freedom/disk_4/give thanks and praise +/mnt/cdrom/marley-songs_of_freedom/disk_4/one drop +/mnt/cdrom/marley-songs_of_freedom/disk_4/one dub +/mnt/cdrom/marley-songs_of_freedom/disk_4/rastaman live up +/mnt/cdrom/marley-songs_of_freedom/disk_4/real situation +/mnt/cdrom/marley-songs_of_freedom/disk_4/redemption song (live in pi +/mnt/cdrom/marley-songs_of_freedom/disk_4/ride natty ride (12 mix) +/mnt/cdrom/marley-songs_of_freedom/disk_4/so much trouble in the worl +/mnt/cdrom/marley-songs_of_freedom/disk_4/survival +/mnt/cdrom/marley-songs_of_freedom/disk_4/why should i (previously un +/mnt/cdrom/marley-songs_of_freedom/disk_4/zimbabwe + +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_01_pandemonium +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_02_sync_disjecta +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_03_object_unknown +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_04_it's_nice_not +/mnt/cdrom/dj_spooky_rid-2dim_warefare/djspooky_05_dialectical_tra +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_06_post-human_soph +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_07_quilombo_ex +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_08_rekonstruction +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_09_scientifik +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_10_a_conversation +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_11_peace_in_zaire +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_13_degree_zero +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_14_roman_planeta +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_15_bass_digitalis +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_16_polyphony_of +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_17_riddim_warfare +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_18_the_nerd +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_20_theme_of_the +/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_21_twilight_fugue + +/mnt/cdrom/stuff_smith_mosaic/disk3/01_desert_sands +/mnt/cdrom/stuff_smith_mosaic/disk3/02_soft_winds +/mnt/cdrom/stuff_smith_mosaic/disk3/03_time_and_again +/mnt/cdrom/stuff_smith_mosaic/disk3/04_it_don't_mean_a_thing +/mnt/cdrom/stuff_smith_mosaic/disk3/05_in_a_mellotone +/mnt/cdrom/stuff_smith_mosaic/disk3/06_i_know_that_you_know +/mnt/cdrom/stuff_smith_mosaic/disk3/07_heat_wave +/mnt/cdrom/stuff_smith_mosaic/disk3/08_things_ain't_what_they_used_to_be +/mnt/cdrom/stuff_smith_mosaic/disk3/09_body_and_soul + +So I take a break, wander down to the park to stand, then lean into +the concrete railing demarking the beginnings of space, oceanic +space. I watch the waves break, and form, and ease back out to sea and +wrap my arms around myself and hug tightly because it's early in the +morning and windy, and the sun is late getting out of bed today, which +is good because if there was brilliant light illuminating all the +beauty around me I would be shocked, stunned, forced to retreat back +into my cabana in a daze, blinded by hummingbirds and callilillies and +un-named red, yellow, and blue flowers. Green envelopes me, waves +sooth me. I can see the wind flip the top of the waves seaward, right +before they break. The sea seems so calm from my perch above the fray +that I wonder if maybe there is just some part of the deepest, most +abstract ocean where there is a large creature who happily chews +plankton and wags its tail in gentle, adulating waves that spread and +move and gracefully glide thousands of miles, to crash upon a beach, +one after the other, politely waiting for a turn to dance with the +seashore. + +I know: it is what the Mexican schoolchildren call "la vibora de la +mer," the serpent of the sea. + + + + + diff --git a/libstdc++-v3/testsuite/27_io/filebuf_virtuals-2.tst b/libstdc++-v3/testsuite/27_io/filebuf_virtuals-2.tst new file mode 100644 index 00000000000..f25bba46d92 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/filebuf_virtuals-2.tst @@ -0,0 +1 @@ +ac23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZracadabras23456789:;< \ No newline at end of file diff --git a/libstdc++-v3/testsuite/27_io/filebuf_virtuals-3.tst b/libstdc++-v3/testsuite/27_io/filebuf_virtuals-3.tst new file mode 100644 index 00000000000..0a81f511290 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/filebuf_virtuals-3.tst @@ -0,0 +1,7 @@ +bd2 +456x +9m;uva?@ABCDEFGHIJKLMNOPQRSTUVWXYZracadabras, i wanna +because because +because. . . +of the wonderful things he does!! +ok \ No newline at end of file diff --git a/libstdc++-v3/testsuite/27_io/filebuf_virtuals.cc b/libstdc++-v3/testsuite/27_io/filebuf_virtuals.cc index 0d782641d95..778dd861a92 100644 --- a/libstdc++-v3/testsuite/27_io/filebuf_virtuals.cc +++ b/libstdc++-v3/testsuite/27_io/filebuf_virtuals.cc @@ -1,6 +1,6 @@ // 2001-05-21 Benjamin Kosnik -// Copyright (C) 2001 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002 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 @@ -23,6 +23,9 @@ #include #include +// @require@ %-*.tst %-*.txt +// @diff@ %-*.tst %*.txt + void test01() { using namespace std; @@ -54,9 +57,511 @@ void test02() VERIFY( std::strncmp(strlit, buf, strlitsize) == 0 ); } + +// NB: This test assumes that _M_buf_size == 40, and not the usual +// buffer_size length of BUFSIZ (8192), so that overflow/underflow can be +// simulated a bit more readily. +// NRB (Nota Really Bene): setting it to 40 breaks the test, as intended. +const int buffer_size = 8192; +//const int buffer_size = 40; + +const char carray_01[] = "santa cruz or sandiego?"; +const char carray_02[] = "memphis, new orleans, and savanah"; +const char name_01[] = "filebuf_virtuals-1.txt"; // file with data in it +const char name_02[] = "filebuf_virtuals-2.txt"; // empty file, need to create +const char name_03[] = "filebuf_virtuals-3.txt"; // empty file, need to create + + +class derived_filebuf: public std::filebuf +{ + public: + void + set_size(int_type __size) { _M_buf_size_opt = __size; } +}; + +derived_filebuf fb_01; // in +derived_filebuf fb_02; // out +derived_filebuf fb_03; // in | out + + +// Initialize filebufs to be the same size regardless of platform. +void test03() +{ + fb_01.set_size(buffer_size); + fb_02.set_size(buffer_size); + fb_03.set_size(buffer_size); +} + + +// Test the filebuf/stringbuf locale settings. +void test04() +{ + std::locale loc_tmp; + loc_tmp = fb_01.getloc(); + fb_01.pubimbue(loc_tmp); //This should initialize _M_init to true + fb_01.getloc(); //This should just return _M_locale +} + +// Test overloaded virtual functions. +void test05() +{ + typedef std::filebuf::int_type int_type; + typedef std::filebuf::traits_type traits_type; + typedef std::filebuf::pos_type pos_type; + typedef std::filebuf::off_type off_type; + typedef size_t size_type; + + bool test = true; + std::filebuf f_tmp; + std::streamsize strmsz_1, strmsz_2; + std::streamoff strmof_1, strmof_2; + int i = 0, j = 0, k = 0; + + // GET + // int showmanyc() + // returns an estimate of the numbers of chars in the seq, or -1. + // if __retval > 0, then calls to underflow won't return + // traits_type::eof() till at least __retval chars. + // if __retval == -1, then calls to underflow or uflow will fail. + // NB overriding def if it can determine more chars can be read from + // the input sequence. + + // int in_avail() + // if a read position is available, return _M_in_end - _M_in_cur. + // else return showmanyc. + strmof_1 = fb_01.in_avail(); + strmof_2 = fb_02.in_avail(); + VERIFY( strmof_1 == -1 ); + VERIFY( strmof_1 == strmof_2 ); //fail because not open + strmof_1 = fb_03.in_avail(); + VERIFY( strmof_1 == strmof_2 ); + fb_01.open(name_01, std::ios_base::in); + fb_02.open(name_02, std::ios_base::out | std::ios_base::trunc); + fb_03.open(name_03, std::ios_base::out | std::ios_base::in | std::ios_base::trunc); + strmof_1 = fb_01.in_avail(); + strmof_2 = fb_02.in_avail(); + VERIFY( strmof_1 != strmof_2 ); + VERIFY( strmof_1 >= 0 ); + VERIFY( strmof_2 == -1 ); // empty file + strmof_1 = fb_03.in_avail(); + VERIFY( strmof_1 == 0 ); // empty file + + // int_type sbumpc() + // if read_cur not avail returns uflow(), else return *read_cur & increment + int_type c1 = fb_01.sbumpc(); + int_type c2 = fb_02.sbumpc(); + VERIFY( c1 != c2 ); + VERIFY( c1 == '/' ); + VERIFY( c2 == -1 ); + int_type c3 = fb_01.sbumpc(); + int_type c4 = fb_02.sbumpc(); + VERIFY( c3 != c4 ); + VERIFY( c1 == c3 ); // fluke, both happen to be '/' + VERIFY( c2 == c4 ); + int_type c5 = fb_03.sbumpc(); + VERIFY( c5 == traits_type::eof() ); + // XXX should do some kind of test to make sure that internal + // buffers point ot the same thing, to check consistancy. + + // int_type sgetc() + // if read_cur not avail, return uflow(), else return *read_cur + int_type c6 = fb_01.sgetc(); + int_type c7 = fb_02.sgetc(); + VERIFY( c6 != c3 ); + VERIFY( c7 == c4 ); // both -1 + int_type c8 = fb_01.sgetc(); + int_type c9 = fb_02.sgetc(); + VERIFY( c6 == c8 ); + VERIFY( c7 == c9 ); + c5 = fb_03.sgetc(); + VERIFY( c5 == traits_type::eof() ); + + // int_type snextc() + // calls sbumpc and if sbumpc != eof, return sgetc + c6 = fb_01.snextc(); + c7 = fb_02.snextc(); + VERIFY( c6 != c8 ); + VERIFY( c7 == c9 ); // -1 + VERIFY( c6 == '9' ); + c6 = fb_01.snextc(); + c7 = fb_02.snextc(); + VERIFY( c6 != c8 ); + VERIFY( c7 == c9 ); // -1 + VERIFY( c6 == '9' ); + c5 = fb_03.snextc(); + VERIFY( c5 == traits_type::eof() ); + + // streamsize sgetn(char_type *s, streamsize n) + // streamsize xsgetn(char_type *s, streamsize n) + // assign up to n chars to s from input sequence, indexing in_cur as + // approp and returning the number of chars assigned + strmsz_1 = fb_01.in_avail(); + strmsz_2 = fb_02.in_avail(); + test = strmsz_1 != strmsz_2; + char carray1[13] = ""; + strmsz_1 = fb_01.sgetn(carray1, 10); + char carray2[buffer_size] = ""; + strmsz_2 = fb_02.sgetn(carray2, 10); + VERIFY( strmsz_1 != strmsz_2 ); + VERIFY( strmsz_1 == 10 ); + VERIFY( strmsz_2 == 0 ); + c1 = fb_01.sgetc(); + c2 = fb_02.sgetc(); + VERIFY( c1 == '\n' ); + VERIFY( c7 == c2 ); // n != i + strmsz_1 = fb_03.sgetn(carray1, 10); + VERIFY( !strmsz_1 ); //zero + strmsz_1 = fb_01.in_avail(); + strmsz_2 = fb_01.sgetn(carray2, strmsz_1 + 5); + VERIFY( strmsz_1 == strmsz_2 - 5 ); + c4 = fb_01.sgetc(); // buffer should have underflowed from above. + VERIFY( c4 == 'i' ); + strmsz_1 = fb_01.in_avail(); + VERIFY( strmsz_1 > 0 ); + strmsz_2 = fb_01.sgetn(carray2, strmsz_1 + 5); + VERIFY( strmsz_1 == strmsz_2 ); //at the end of the actual file + strmsz_1 = fb_02.in_avail(); + strmsz_2 = fb_02.sgetn(carray2, strmsz_1 + 5); + VERIFY( strmsz_1 == -1 ); + VERIFY( strmsz_2 == 0 ); + c4 = fb_02.sgetc(); // should be EOF + VERIFY( c4 == traits_type::eof() ); + + // PUT + // int_type sputc(char_type c) + // if out_cur not avail, return overflow(traits_type::to_int_type(c)) + // else, stores c at out_cur, + // increments out_cur, and returns c as int_type + // strmsz_1 = fb_03.in_avail(); // XXX valid for in|out?? + c1 = fb_02.sputc('a'); + c2 = fb_03.sputc('b'); + VERIFY( c1 != c2 ); + c1 = fb_02.sputc('c'); + c2 = fb_03.sputc('d'); + VERIFY( c1 != c2 ); + // strmsz_2 = fb_03.in_avail(); + // VERIFY( strmsz_1 != strmsz_2 ); + for (int i = 50; i <= 90; ++i) + c2 = fb_02.sputc(char(i)); + // 27filebuf-2.txt == ac23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX + // fb_02._M_out_cur = '2' + strmsz_1 = fb_03.in_avail(); + for (int i = 50; i <= 90; ++i) + c2 = fb_03.sputc(char(i)); + strmsz_2 = fb_03.in_avail(); + // VERIFY( strmsz_1 != strmsz_2 ); + // VERIFY( strmsz_1 > 0 ); + // VERIFY( strmsz_2 > 0 ); + // 27filebuf-2.txt == bd23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX + // fb_02._M_out_cur = '2' + c3 = fb_01.sputc('a'); // should be EOF because this is read-only + VERIFY( c3 == traits_type::eof() ); + + // streamsize sputn(const char_typs* s, streamsize n) + // write up to n chars to out_cur from s, returning number assigned + // NB *sputn will happily put '\0' into your stream if you give it a chance* + strmsz_1 = fb_03.sputn("racadabras", 10);//"abracadabras or what?" + VERIFY( strmsz_1 == 10 ); + strmsz_2 = fb_03.sputn(", i wanna reach out and", 10); + VERIFY( strmsz_2 == 10 ); + VERIFY( strmsz_1 == strmsz_2 ); + // fb_03._M_out_beg = "YZracadabras, i wanna FGHIJKLMNOPQRSTUVW" + // fb_03._M_out_cur = "FGHIJKLMNOPQRSTUVW" + strmsz_1 = fb_02.sputn("racadabras", 10); + VERIFY( strmsz_1 == 10 ); + // fb_02._M_out_beg = "YZracadabras<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + // fb_02._M_out_cur = "<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + strmsz_1 = fb_01.sputn("racadabra", 10); + VERIFY( strmsz_1 == 0 ); + + // PUTBACK + // int_type pbfail(int_type c) + // called when gptr() null, gptr() == eback(), or traits::eq(*gptr, c) false + // "pending sequence" is: + // 1) everything as defined in underflow + // 2) + if (traits::eq_int_type(c, traits::eof()), then input + // sequence is backed up one char before the pending sequence is + // determined. + // 3) + if (not 2) then c is prepended. Left unspecified is + // whether the input sequence is backedup or modified in any way + // returns traits::eof() for failure, unspecified other value for success + + // int_type sputbackc(char_type c) + // if in_cur not avail || ! traits::eq(c, gptr() [-1]), return pbfail + // otherwise decrements in_cur and returns *gptr() + c1 = fb_03.sgetc(); // -1 + c2 = fb_03.sputbackc('z'); + strmsz_2 = fb_03.in_avail(); + c3 = fb_03.sgetc(); + VERIFY( c3 == c2 ); + VERIFY( c1 != c3 ); + VERIFY( 1 == strmsz_2 ); + //test for _in_cur == _in_beg + // fb_03._M_out_beg = "bd23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZracada" etc + fb_03.pubseekoff(10, std::ios_base::beg, + std::ios_base::in | std::ios_base::out); + fb_03.sputc('m'); + strmsz_1 = fb_03.in_avail(); + c1 = fb_03.sgetc(); + fb_03.snextc(); + c2 = fb_03.sputbackc('z'); + strmsz_2 = fb_03.in_avail(); + c3 = fb_03.sgetc(); + VERIFY( c1 != c2 ); + VERIFY( c3 == c2 ); + VERIFY( c1 != c3 ); + VERIFY( c2 == 'z' ); + // VERIFY( strmsz_1 == strmsz_2 ); + // test for replacing char with identical one + fb_03.snextc(); + fb_03.sputc('u'); + fb_03.sputc('v'); + fb_03.sputc('a'); + strmsz_1 = fb_03.in_avail(); + c2 = fb_03.sputbackc('a'); + strmsz_2 = fb_03.in_avail(); + c3 = fb_03.sgetc(); + VERIFY( c3 == c2 ); + VERIFY( strmsz_1 + 1 == strmsz_2 ); + //test for ios_base::out + c1 = fb_02.sgetc(); // undefined + c2 = fb_02.sputbackc('a'); + VERIFY( c1 == c2 ); + VERIFY( c1 == -1 ); + + // int_type sungetc() + // if in_cur not avail, return pbackfail(), else decrement and + // return to_int_type(*gptr()) + // fb_03._M_out_beg = "uvaacadabras, i wannaZ[\\]^_`abcdefghijkl" + // fb_03._M_out_cur = "aacadabras, i wannaZ[\\]^_`abcdefghijkl" + strmsz_1 = fb_03.in_avail(); + c2 = fb_03.sungetc(); // delete the 'a' + strmsz_2 = fb_03.in_avail(); + VERIFY( c2 == 'v' ); // VERIFY( c2 != traits_type::eof() ); + VERIFY( strmsz_1 + 1 == strmsz_2 ); + //test for _in_cur == _in_beg + for (int i = 50; i < 32 + 29; ++i) + fb_02.sputc(char(i)); + fb_02.pubseekoff(0, std::ios_base::beg, std::ios_base::out); + c1 = fb_02.sgetc(); + strmsz_1 = fb_02.in_avail(); + c2 = fb_02.sungetc(); + c3 = fb_02.sgetc(); + strmsz_2 = fb_02.in_avail(); + VERIFY( c1 == c2 ); + VERIFY( c2 == c3 ); + VERIFY( c1 == traits_type::eof() ); + VERIFY( strmsz_1 == strmsz_2 ); + //test for _in_cur == _in_end + fb_03.pubseekoff(0, std::ios_base::end); + strmsz_1 = fb_03.in_avail(); // -1 cuz at the end + c1 = fb_03.sgetc(); + c2 = fb_03.sungetc(); + strmsz_2 = fb_03.in_avail(); // 1 + c3 = fb_03.sgetc(); + VERIFY( c1 != c2 ); + // VERIFY( c2 == c3 || c2 == traits_type::not_eof(int(c3)) ); + VERIFY( strmsz_2 != strmsz_1 ); + VERIFY( strmsz_2 == 1 ); + //test for ios_base::out + + // BUFFER MANAGEMENT & POSITIONING + // int sync() + // if a put area exists, overflow. + // if a get area exists, do something undefined. (like, nothing) + strmsz_1 = fb_01.in_avail(); + fb_01.pubsync(); + strmsz_2 = fb_01.in_avail(); + VERIFY( strmsz_2 == strmsz_1 ); + strmsz_1 = fb_02.in_avail(); + fb_02.pubsync(); + // 27filebuf-2.txt == 53 bytes after this. + strmsz_2 = fb_02.in_avail(); + VERIFY( strmsz_2 == -1 ); + VERIFY( strmsz_2 == strmsz_1 ); + strmsz_1 = fb_03.in_avail(); + fb_03.pubsync(); + // 27filebuf-3.txt + // bd23456789mzuva?@ABCDEFGHIJKLMNOPQRSTUVWXYZracadabras, i wannaz + // 63 bytes. + strmsz_2 = fb_03.in_avail(); + VERIFY( strmsz_1 == 1 ); + // VERIFY( strmsz_2 == 1 ); + + // setbuf + // pubsetbuf(char_type* s, streamsize n) + fb_01.pubsetbuf(0,0); + fb_02.pubsetbuf(0,0); + fb_03.pubsetbuf(0,0); + // Need to test unbuffered output, which means calling this on some + // things that have just been opened. + + + // seekoff + // pubseekoff(off_type off, ios_base::seekdir way, ios_base::openmode which) + // alters the stream position to off + pos_type pt_1(off_type(-1)); + pos_type pt_2(off_type(0)); + off_type off_1 = 0; + off_type off_2 = 0; + //IN|OUT + // 27filebuf-3.txt = bd23456789:;<=>?... + //beg + strmsz_1 = fb_03.in_avail(); + pt_1 = fb_03.pubseekoff(2, std::ios_base::beg); + strmsz_2 = fb_03.in_avail(); + off_1 = pt_1; + VERIFY( off_1 > 0 ); + c1 = fb_03.snextc(); //current in pointer +1 + VERIFY( c1 == '3' ); + c2 = fb_03.sputc('\n'); //current in pointer +1 + c3 = fb_03.sgetc(); + VERIFY( c2 != c3 ); + VERIFY( c3 == '4' ); + fb_03.pubsync(); + c1 = fb_03.sgetc(); + VERIFY( c1 == c3 ); + //cur + // 27filebuf-3.txt = bd2\n456789:;<=>?... + pt_2 = fb_03.pubseekoff(2, std::ios_base::cur); + off_2 = pt_2; + VERIFY( (off_2 == (off_1 + 2 + 1 + 1)) ); + c1 = fb_03.snextc(); //current in pointer +1 + VERIFY( c1 == '7' ); + c2 = fb_03.sputc('x'); //test current out pointer + c3 = fb_03.sputc('\n'); + c1 = fb_03.sgetc(); + fb_03.pubsync(); + c3 = fb_03.sgetc(); + VERIFY( c1 == c3 ); + //end + // 27filebuf-3.txt = "bd2\n456x\n9" + pt_2 = fb_03.pubseekoff(0, std::ios_base::end, + std::ios_base::in|std::ios_base::out); + off_1 = pt_2; + VERIFY( off_1 > off_2 ); //weak, but don't know exactly where it ends + c3 = fb_03.sputc('\n'); + strmsz_1 = fb_03.sputn("because because because. . .", 28); + VERIFY( strmsz_1 == 28 ); + c1 = fb_03.sungetc(); + fb_03.pubsync(); + c3 = fb_03.sgetc(); + VERIFY( c1 == c3 ); + // IN + // OUT + + + // seekpos + // pubseekpos(pos_type sp, ios_base::openmode) + // alters the stream position to sp + //IN|OUT + //beg + pt_1 = fb_03.pubseekoff(78, std::ios_base::beg); + off_1 = pt_1; + VERIFY( off_1 > 0 ); + c1 = fb_03.snextc(); //current in pointer +1 + VERIFY( c1 == ' ' ); + c2 = fb_03.sputc('\n'); //test current out pointer + c3 = fb_03.sgetc(); + fb_03.pubsync(); //resets pointers + pt_2 = fb_03.pubseekpos(pt_1); + off_2 = pt_2; + VERIFY( off_1 == off_2 ); + c3 = fb_03.snextc(); //current in pointer +1 + VERIFY( c2 == c3 ); + pt_1 = fb_03.pubseekoff(0, std::ios_base::end); + off_1 = pt_1; + VERIFY( off_1 > off_2 ); + fb_03.sputn("\nof the wonderful things he does!!\nok", 37); + fb_03.pubsync(); + + // IN + // OUT + + // VIRTUALS (indirectly tested) + // underflow + // if read position avail, returns *gptr() + + // pbackfail(int_type c) + // put c back into input sequence + + // overflow + // appends c to output seq + + // NB Have to close these suckers. . . + // filebuf_type* close() + fb_01.close(); + fb_02.close(); + fb_03.close(); + VERIFY( !fb_01.is_open() ); + VERIFY( !fb_02.is_open() ); + VERIFY( !fb_03.is_open() ); +} + +void test06() +{ + using namespace std; + typedef istream::int_type int_type; + + bool test = true; + ifstream ifs(name_02); + char buffer[] = "xxxxxxxxxx"; + int_type len1 = ifs.rdbuf()->sgetn(buffer, sizeof(buffer)); + VERIFY( len1 == sizeof(buffer) ); + VERIFY( buffer[0] == 'a' ); +} + +// test06 +// libstdc++/2020 +// should be able to use custom char_type +class gnu_char_type +{ + unsigned long character; +public: + // operator == + bool + operator==(const gnu_char_type& __lhs) + { return character == __lhs.character; } + + // operator < + bool + operator<(const gnu_char_type& __lhs) + { return character < __lhs.character; } + + // default ctor + gnu_char_type() { } + + // to_char_type + gnu_char_type(const unsigned long& __l) : character(__l) { } + + // to_int_type + operator unsigned long() const { return character; } +}; + +void test07() +{ + bool test = true; + typedef std::basic_filebuf gnu_filebuf; + + try + { gnu_filebuf obj; } + catch(std::exception& obj) + { + test = false; + VERIFY( test ); + } +} + main() { test01(); test02(); + + test03(); + test04(); + test05(); + test06(); + test07(); + return 0; } diff --git a/libstdc++-v3/testsuite/27_io/iostream.cc b/libstdc++-v3/testsuite/27_io/iostream.cc new file mode 100644 index 00000000000..26849ac0fd2 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/iostream.cc @@ -0,0 +1,47 @@ +// 2002-01-08 bkoz + +// Copyright (C) 2002 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 +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// 27.6.1.5 - Template class basic_iostream +// NB: This file is for testing iostream with NO OTHER INCLUDES. + +// { dg-do compile } + +#include + +namespace test +{ + using namespace std; + typedef short type_t; + template class basic_iostream >; +} // test + +int main() +{ + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/iostream_members.cc b/libstdc++-v3/testsuite/27_io/iostream_members.cc new file mode 100644 index 00000000000..4cdcc82af4c --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/iostream_members.cc @@ -0,0 +1,46 @@ +// 2002-01-08 bkoz + +// Copyright (C) 2002 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 +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// 27.6.1.5 - Template class basic_iostream +// NB: This file is for testing iostream with NO OTHER INCLUDES. + +#include + +// libstdc++/3647 +void test07() +{ + // Should not block. + std::cout << std::cin.rdbuf()->in_avail() << std::endl; +} + +int main() +{ + test07(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/istream.cc b/libstdc++-v3/testsuite/27_io/istream.cc index c43aebdeb23..ef88a39f727 100644 --- a/libstdc++-v3/testsuite/27_io/istream.cc +++ b/libstdc++-v3/testsuite/27_io/istream.cc @@ -1,6 +1,6 @@ // 1999-09-20 bkoz -// Copyright (C) 1999, 2000 Free Software Foundation, Inc. +// Copyright (C) 1999, 2000, 2001, 2002 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 @@ -32,26 +32,16 @@ #include -namespace test { - -#if 0 - // XXX Should work, but doesn't. +// { dg-do compile } + +namespace test +{ using namespace std; typedef short type_t; template class basic_istream >; - - template - const ctype& - use_facet >(const locale&); - - typedef istreambuf_iterator > traits_t; - template - const num_get& - use_facet >(const locale&); -#endif - } // test -int main() { +int main() +{ return 0; } diff --git a/libstdc++-v3/testsuite/27_io/ostream.cc b/libstdc++-v3/testsuite/27_io/ostream.cc index df77421aeaa..cbc4a6739c2 100644 --- a/libstdc++-v3/testsuite/27_io/ostream.cc +++ b/libstdc++-v3/testsuite/27_io/ostream.cc @@ -1,6 +1,6 @@ // 1999-09-20 bkoz -// Copyright (C) 1999, 2000 Free Software Foundation, Inc. +// Copyright (C) 1999, 2000, 2001, 2002 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 @@ -32,17 +32,16 @@ #include -namespace test { - -#if 0 - // XXX Should work, but doesn't. +// { dg-do compile } + +namespace test +{ using namespace std; typedef short type_t; template class basic_ostream >; -#endif - } // test -int main() { +int main() +{ return 0; }