Assume that /proc/meminfo can be missing

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.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2013-09-15 08:40:16 -04:00
parent 112a7f4696
commit 442e00839e
2 changed files with 7 additions and 2 deletions

View 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;
}

View 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);