catalog: open up catalog internals
In order to write tests for the catalog functions, they are made non-static and start taking a 'database' parameter, which is the name of a file with the preprocessed catalog entries. This makes it possible to make test-catalog part of the normal test suite, since it now only operates on files in /tmp. Some more tests are added.
This commit is contained in:
@@ -134,7 +134,7 @@ static int conf_files_list_strv_internal(char ***strv, const char *suffix, const
|
||||
return 0;
|
||||
}
|
||||
|
||||
int conf_files_list_strv(char ***strv, const char *suffix, const char *root, const char **dirs) {
|
||||
int conf_files_list_strv(char ***strv, const char *suffix, const char *root, const char* const* dirs) {
|
||||
_cleanup_strv_free_ char **copy = NULL;
|
||||
|
||||
assert(strv);
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#include "macro.h"
|
||||
|
||||
int conf_files_list(char ***strv, const char *suffix, const char *root, const char *dir, ...);
|
||||
int conf_files_list_strv(char ***strv, const char *suffix, const char *root, const char **dirs);
|
||||
int conf_files_list_strv(char ***strv, const char *suffix, const char *root, const char* const* dirs);
|
||||
int conf_files_list_nulstr(char ***strv, const char *suffix, const char *root, const char *dirs);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
#include <limits.h>
|
||||
#include <langinfo.h>
|
||||
#include <locale.h>
|
||||
#include <libgen.h>
|
||||
|
||||
#include "macro.h"
|
||||
#include "util.h"
|
||||
@@ -2356,6 +2357,24 @@ int dir_is_empty(const char *path) {
|
||||
}
|
||||
}
|
||||
|
||||
char* dirname_malloc(const char *path) {
|
||||
char *d, *dir, *dir2;
|
||||
|
||||
d = strdup(path);
|
||||
if (!d)
|
||||
return NULL;
|
||||
dir = dirname(d);
|
||||
assert(dir);
|
||||
|
||||
if (dir != d) {
|
||||
dir2 = strdup(dir);
|
||||
free(d);
|
||||
return dir2;
|
||||
}
|
||||
|
||||
return dir;
|
||||
}
|
||||
|
||||
unsigned long long random_ull(void) {
|
||||
_cleanup_close_ int fd;
|
||||
uint64_t ull;
|
||||
|
||||
@@ -329,6 +329,7 @@ ssize_t loop_write(int fd, const void *buf, size_t nbytes, bool do_poll);
|
||||
bool is_device_path(const char *path);
|
||||
|
||||
int dir_is_empty(const char *path);
|
||||
char* dirname_malloc(const char *path);
|
||||
|
||||
void rename_process(const char name[8]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user