test/run_input, ...: RAII-style global initialization

This commit is contained in:
Max Kellermann
2017-01-03 12:22:14 +01:00
parent 4397fe3a13
commit d2046de193
3 changed files with 75 additions and 73 deletions

View File

@@ -38,6 +38,27 @@
#include <unistd.h>
#include <stdlib.h>
class GlobalInit {
const ScopeIOThread io_thread;
public:
GlobalInit() {
config_global_init();
#ifdef ENABLE_ARCHIVE
archive_plugin_init_all();
#endif
input_stream_global_init();
}
~GlobalInit() {
input_stream_global_finish();
#ifdef ENABLE_ARCHIVE
archive_plugin_deinit_all();
#endif
config_global_finish();
}
};
static void
tag_save(FILE *file, const Tag &tag)
{
@@ -91,37 +112,14 @@ try {
/* initialize MPD */
config_global_init();
const ScopeIOThread io_thread;
#ifdef ENABLE_ARCHIVE
archive_plugin_init_all();
#endif
input_stream_global_init();
const GlobalInit init;
/* open the stream and dump it */
int ret;
{
Mutex mutex;
Cond cond;
auto is = InputStream::OpenReady(argv[1], mutex, cond);
ret = dump_input_stream(is.get());
}
/* deinitialize everything */
input_stream_global_finish();
#ifdef ENABLE_ARCHIVE
archive_plugin_deinit_all();
#endif
config_global_finish();
return ret;
Mutex mutex;
Cond cond;
auto is = InputStream::OpenReady(argv[1], mutex, cond);
return dump_input_stream(is.get());
} catch (const std::exception &e) {
LogError(e);
return EXIT_FAILURE;