summaryrefslogtreecommitdiff
path: root/test/run_input.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'test/run_input.cxx')
-rw-r--r--test/run_input.cxx28
1 files changed, 13 insertions, 15 deletions
diff --git a/test/run_input.cxx b/test/run_input.cxx
index 20fe8c2d7..57300183a 100644
--- a/test/run_input.cxx
+++ b/test/run_input.cxx
@@ -124,26 +124,26 @@ static void
tag_save(FILE *file, const Tag &tag)
{
StdioOutputStream sos(file);
- BufferedOutputStream bos(sos);
- tag_save(bos, tag);
- bos.Flush();
+ WithBufferedOutputStream(sos, [&](auto &bos){
+ tag_save(bos, tag);
+ });
}
static int
-dump_input_stream(InputStream *is)
+dump_input_stream(InputStream &is, FileDescriptor out)
{
- std::unique_lock<Mutex> lock(is->mutex);
+ std::unique_lock<Mutex> lock(is.mutex);
/* print meta data */
- if (is->HasMimeType())
- fprintf(stderr, "MIME type: %s\n", is->GetMimeType());
+ if (is.HasMimeType())
+ fprintf(stderr, "MIME type: %s\n", is.GetMimeType());
/* read data and tags from the stream */
- while (!is->IsEOF()) {
+ while (!is.IsEOF()) {
{
- auto tag = is->ReadTag();
+ auto tag = is.ReadTag();
if (tag) {
fprintf(stderr, "Received a tag:\n");
tag_save(stderr, *tag);
@@ -151,16 +151,14 @@ dump_input_stream(InputStream *is)
}
char buffer[4096];
- size_t num_read = is->Read(lock, buffer, sizeof(buffer));
+ size_t num_read = is.Read(lock, buffer, sizeof(buffer));
if (num_read == 0)
break;
- ssize_t num_written = write(1, buffer, num_read);
- if (num_written <= 0)
- break;
+ out.FullWrite(buffer, num_read);
}
- is->Check();
+ is.Check();
return 0;
}
@@ -233,7 +231,7 @@ try {
Mutex mutex;
auto is = InputStream::OpenReady(c.uri, mutex);
- return dump_input_stream(is.get());
+ return dump_input_stream(*is, FileDescriptor(STDOUT_FILENO));
} catch (...) {
PrintException(std::current_exception());
return EXIT_FAILURE;