chiark / gitweb /
shared/utf8: merge implementations, remove cruft
[elogind.git] / src / test / test-fileio.c
index 1184e7e02f5568c7e7656ebc9c81ac1bb0bba0f5..525354b9cb5b674032b1679435e50c83cbd21eb5 100644 (file)
@@ -229,9 +229,36 @@ static void test_executable_is_script(void) {
         unlink(t);
 }
 
+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"));
+
+        r = get_status_field("/proc/meminfo", "MemTotal:", &p);
+        if (r == -ENOENT)
+                return;
+        assert(r == 0);
+        puts(p);
+        assert_se(safe_atollu(p, &total) == 0);
+
+        r = get_status_field("/proc/meminfo", "\nBuffers:", &s);
+        if (r == -ENOENT)
+                return;
+        assert(r == 0);
+        puts(s);
+        assert_se(safe_atollu(s, &buffers) == 0);
+
+        assert(buffers < total);
+}
+
 int main(int argc, char *argv[]) {
         test_parse_env_file();
         test_parse_multiline_env_file();
         test_executable_is_script();
+        test_status_field();
         return 0;
 }