test/LoadDatabase: new test program (for benchmarking the database loader)

This commit is contained in:
Max Kellermann 2023-09-06 14:07:39 +02:00
parent 2c01e79b47
commit 38d8359384
2 changed files with 45 additions and 0 deletions

30
test/LoadDatabase.cxx Normal file
View File

@ -0,0 +1,30 @@
// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright The Music Player Daemon Project
#include "config.h"
#include "db/plugins/simple/DatabaseSave.hxx"
#include "db/plugins/simple/Directory.hxx"
#include "fs/Path.hxx"
#include "fs/NarrowPath.hxx"
#include "fs/io/TextFile.hxx"
#include "util/PrintException.hxx"
int
main(int argc, char **argv)
try {
if (argc != 2) {
fprintf(stderr, "Usage: LoadDatabase PATH\n");
return EXIT_FAILURE;
}
const FromNarrowPath db_path = argv[1];
Directory root{{}, nullptr};
TextFile line_reader{db_path};
db_load_internal(line_reader, root);
return EXIT_SUCCESS;
} catch (...) {
PrintException(std::current_exception());
return EXIT_FAILURE;
}

View File

@ -266,6 +266,21 @@ if enable_database
], ],
) )
executable(
'LoadDatabase',
'LoadDatabase.cxx',
'../src/db/PlaylistVector.cxx',
'../src/SongSave.cxx',
'../src/TagSave.cxx',
include_directories: inc,
dependencies: [
fmt_dep,
pcm_basic_dep,
song_dep,
db_plugins_dep,
],
)
test( test(
'test_translate_song', 'test_translate_song',
executable( executable(