]> git.ipfire.org Git - thirdparty/gcc.git/commit
libstdc++: Add file-io-diff to replace @diff@ markup in I/O tests
authorJonathan Wakely <jwakely@redhat.com>
Mon, 22 Jul 2024 13:39:57 +0000 (14:39 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Wed, 24 Jul 2024 11:25:26 +0000 (12:25 +0100)
commit515da03a838db05443ebcc4c543a405bed764188
tree9b6cd52f0a086d435a2c5efb83b37713a6cc6a5a
parent687dc787d7523c46a9b5e1e9ac1062e44693dd3a
libstdc++: Add file-io-diff to replace @diff@ markup in I/O tests

This adds a new dg-final action to compare two files after a test has
run, so that we can verify that fstream operations produce the expected
results. With this change, all uses of @diff@ that seem potentially
useful have been converted to actually compare the files and FAIL if
they differ.

The file-io-diff action can take two arguments naming the files to be
compared, or for convenience it can take a single string and will
compare STR.tst and STR.txt, as that's how it's commonly used.

Additionally, all remaining uses of @require@ are converted to
dg-additional-files directives, so that the TODO in libstdc++.exp can
be resolved.

libstdc++-v3/ChangeLog:

* testsuite/27_io/basic_filebuf/close/char/1.cc: Remove
@require@ and @diff@. Use dg-final file-io-diff action.
* testsuite/27_io/basic_istream/extractors_other/char/2.cc:
Likewise.
* testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc:
Likewise.
* testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
* testsuite/27_io/basic_istream/get/wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_istream/ignore/char/3.cc: Likewise.
* testsuite/27_io/basic_istream/ignore/wchar_t/3.cc: Likewise.
* testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
* testsuite/27_io/basic_istream/peek/wchar_t/6414.cc: Likewise.
* testsuite/27_io/basic_istream/seekg/char/fstream.cc: Likewise.
* testsuite/27_io/basic_istream/seekg/wchar_t/fstream.cc:
Likewise.
* testsuite/27_io/basic_istream/tellg/char/fstream.cc: Likewise.
* testsuite/27_io/basic_istream/tellg/wchar_t/fstream.cc:
Likewise.
* testsuite/27_io/basic_ofstream/open/char/1.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/1.cc:
Likewise.
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc:
Likewise.
* testsuite/27_io/ios_base/sync_with_stdio/1.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/2.cc:
Likewise. Check file positions.
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc:
Likewise.
* testsuite/lib/libstdc++.exp (file-io-diff): New proc.
20 files changed:
libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/1.cc
libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/2.cc
libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc
libstdc++-v3/testsuite/27_io/basic_istream/get/char/2.cc
libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/2.cc
libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/3.cc
libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/3.cc
libstdc++-v3/testsuite/27_io/basic_istream/peek/char/6414.cc
libstdc++-v3/testsuite/27_io/basic_istream/peek/wchar_t/6414.cc
libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/fstream.cc
libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/fstream.cc
libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/fstream.cc
libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/fstream.cc
libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/1.cc
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/1.cc
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/2.cc
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc
libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/1.cc
libstdc++-v3/testsuite/lib/libstdc++.exp