diff options
author | Max Kellermann <max@musicpd.org> | 2017-01-03 12:22:14 +0100 |
---|---|---|
committer | Max Kellermann <max@musicpd.org> | 2017-01-03 12:24:05 +0100 |
commit | d2046de1932039643493a6de3bec79c17406fe0a (patch) | |
tree | ccceda6219b4bcac78e0af7ea003d0398d3b2a39 /test | |
parent | 4397fe3a13add8517a2d35702c8d56a79f3af282 (diff) |
test/run_input, ...: RAII-style global initialization
Diffstat (limited to 'test')
-rw-r--r-- | test/dump_text_file.cxx | 55 | ||||
-rw-r--r-- | test/run_input.cxx | 54 | ||||
-rw-r--r-- | test/visit_archive.cxx | 39 |
3 files changed, 75 insertions, 73 deletions
diff --git a/test/dump_text_file.cxx b/test/dump_text_file.cxx index b25761dd3..8fa64c5f7 100644 --- a/test/dump_text_file.cxx +++ b/test/dump_text_file.cxx @@ -36,6 +36,27 @@ #include <stdio.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 dump_text_file(TextInputStream &is) { @@ -60,8 +81,6 @@ dump_input_stream(InputStreamPtr &&is) int main(int argc, char **argv) try { - int ret; - if (argc != 2) { fprintf(stderr, "Usage: run_input URI\n"); return EXIT_FAILURE; @@ -69,37 +88,15 @@ 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 */ - { - Mutex mutex; - Cond cond; - - auto is = InputStream::OpenReady(argv[1], mutex, cond); - ret = dump_input_stream(std::move(is)); - } - - /* deinitialize everything */ - - input_stream_global_finish(); - -#ifdef ENABLE_ARCHIVE - archive_plugin_deinit_all(); -#endif - - config_global_finish(); + Mutex mutex; + Cond cond; - return ret; + auto is = InputStream::OpenReady(argv[1], mutex, cond); + return dump_input_stream(std::move(is)); } catch (const std::exception &e) { LogError(e); return EXIT_FAILURE; diff --git a/test/run_input.cxx b/test/run_input.cxx index 0e519cd0e..691189148 100644 --- a/test/run_input.cxx +++ b/test/run_input.cxx @@ -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; diff --git a/test/visit_archive.cxx b/test/visit_archive.cxx index 28d5dda35..dd5b2d3b3 100644 --- a/test/visit_archive.cxx +++ b/test/visit_archive.cxx @@ -35,8 +35,29 @@ #include <stdlib.h> #include <stdio.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(); + } +}; + class MyArchiveVisitor final : public ArchiveVisitor { - public: +public: virtual void VisitArchiveEntry(const char *path_utf8) override { printf("%s\n", path_utf8); } @@ -55,13 +76,7 @@ try { /* initialize MPD */ - config_global_init(); - - const ScopeIOThread io_thread; - - archive_plugin_init_all(); - - input_stream_global_init(); + const GlobalInit init; /* open the archive and dump it */ @@ -79,14 +94,6 @@ try { file->Visit(visitor); file->Close(); - /* deinitialize everything */ - - input_stream_global_finish(); - - archive_plugin_deinit_all(); - - config_global_finish(); - return result; } catch (const std::exception &e) { LogError(e); |