chiark / gitweb /
Assume that /proc/meminfo can be missing
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 15 Sep 2013 12:40:16 +0000 (08:40 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 16 Sep 2013 14:47:28 +0000 (09:47 -0500)
Travis tests are failing, probably because /proc/meminfo is not available
in the test environment. The same might be true in some virtualized systems,
so just treat missing /proc/meminfo as a sign that hibernation is not
possible.

src/shared/sleep-config.c
src/test/test-fileio.c

index 5ec7cce..148c4dc 100644 (file)
@@ -172,7 +172,8 @@ static bool enough_memory_for_hibernation(void) {
 
         r = get_status_field("/proc/meminfo", "\nSwapFree:", &swapfree);
         if (r < 0) {
-                log_error("Failed to retrieve SwapFree from /proc/meminfo: %s", strerror(-r));
+                log_full(r == -ENOENT ? LOG_DEBUG : LOG_WARNING,
+                         "Failed to retrieve SwapFree from /proc/meminfo: %s", strerror(-r));
                 return false;
         }
 
index 4a4ed79..3511f3a 100644 (file)
@@ -232,12 +232,16 @@ static void test_executable_is_script(void) {
 static void test_status_field(void) {
         _cleanup_free_ char *t = NULL, *p = NULL, *s = NULL;
         unsigned long long total, buffers;
+        int r;
 
         assert_se(get_status_field("/proc/self/status", "\nThreads:", &t) == 0);
         puts(t);
         assert_se(streq(t, "1"));
 
-        assert_se(get_status_field("/proc/meminfo", "MemTotal:", &p) == 0);
+        r = get_status_field("/proc/meminfo", "MemTotal:", &p);
+        if (r == -ENOENT)
+                return;
+        assert(r == 0);
         puts(p);
         assert_se(safe_atollu(p, &total) == 0);