summaryrefslogtreecommitdiff
path: root/src/journal/test-catalog.c
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>2013-07-18 08:30:06 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2013-08-22 00:52:14 -0400
commit143bfdaf0b890fa7acadf02d1eafacaef1b696bd (patch)
tree5a640d40bc7489c5933aac824f2bf23ecd2818ff /src/journal/test-catalog.c
parent67ccd1c4b821b142ccd7b4bb292d9947aea8c581 (diff)
test: Make testing work on systems without or old systemd
* Introduce a macro to conditionally execute tests. This avoids skipping the entire test if some parts require systemd * Skip the journal tests when no /etc/machine-id is present * Change test-catalog to load the catalog from the source directory of systemd. * /proc/PID/comm got introduced in v2.6.33 but travis is still using v2.6.32. * Enable make check and make distcheck on the travis build * Use -D"CATALOG_DIR=STR($(abs_top_srcdir)/catalog)" as a STRINGIY would result in the path '/home/ich/source/linux' to be expanded to '/home/ich/source/1' as linux is defined to 1.
Diffstat (limited to 'src/journal/test-catalog.c')
-rw-r--r--src/journal/test-catalog.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/journal/test-catalog.c b/src/journal/test-catalog.c
index 987867f0c..5db5bed8d 100644
--- a/src/journal/test-catalog.c
+++ b/src/journal/test-catalog.c
@@ -31,6 +31,16 @@
#include "sd-messages.h"
#include "catalog.h"
+static const char *catalog_dirs[] = {
+ CATALOG_DIR,
+ NULL,
+};
+
+static const char *no_catalog_dirs[] = {
+ "/bin/hopefully/with/no/catalog",
+ NULL
+};
+
static void test_import(Hashmap *h, struct strbuf *sb,
const char* contents, ssize_t size, int code) {
int r;
@@ -100,9 +110,13 @@ static void test_catalog_update(void) {
r = catalog_update(database, NULL, NULL);
assert(r >= 0);
- /* Note: this might actually not find anything, if systemd was
- * not installed before. That should be fine too. */
- r = catalog_update(database, NULL, catalog_file_dirs);
+ /* Test what happens if there are no files in the directory. */
+ r = catalog_update(database, NULL, no_catalog_dirs);
+ assert(r >= 0);
+
+ /* Make sure that we at least have some files loaded or the
+ catalog_list below will fail. */
+ r = catalog_update(database, NULL, catalog_dirs);
assert(r >= 0);
}