From 22d997e538b5f94c5466e7f72106056ab32f8a13 Mon Sep 17 00:00:00 2001 From: Elvira Khabirova Date: Mon, 3 Aug 2015 06:30:49 +0300 Subject: [PATCH] tests: add sysinfo.test * tests/sysinfo.c: New file. * tests/sysinfo.test: New test. * tests/Makefile.am (check_PROGRAMS): Add sysinfo. (TESTS): Add sysinfo.test. * tests/.gitignore: Add sysinfo. --- tests/.gitignore | 1 + tests/Makefile.am | 2 ++ tests/sysinfo.c | 40 ++++++++++++++++++++++++++++++++++++++++ tests/sysinfo.test | 13 +++++++++++++ 4 files changed, 56 insertions(+) create mode 100644 tests/sysinfo.c create mode 100755 tests/sysinfo.test diff --git a/tests/.gitignore b/tests/.gitignore index 819b0a90..8500ca74 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -45,6 +45,7 @@ stack-fcall stat stat32 statfs +sysinfo time uid uid16 diff --git a/tests/Makefile.am b/tests/Makefile.am index bfebb39e..0ba7ca72 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -58,6 +58,7 @@ check_PROGRAMS = \ stat \ stat32 \ statfs \ + sysinfo \ time \ uid \ uid16 \ @@ -123,6 +124,7 @@ TESTS = \ stat32-v.test \ stat64-v.test \ statfs.test \ + sysinfo.test \ memfd_create.test \ mmap.test \ mmap64.test \ diff --git a/tests/sysinfo.c b/tests/sysinfo.c new file mode 100644 index 00000000..4ca0ec7a --- /dev/null +++ b/tests/sysinfo.c @@ -0,0 +1,40 @@ +#include +#include + +int +main (void) +{ + struct sysinfo si; + if (sysinfo(&si) == -1) + return 77; + printf("sysinfo({uptime=%llu" + ", loads=[%llu, %llu, %llu]" + ", totalram=%llu" + ", freeram=%llu" + ", sharedram=%llu" + ", bufferram=%llu" + ", totalswap=%llu" + ", freeswap=%llu" + ", procs=%u" + ", totalhigh=%llu" + ", freehigh=%llu" + ", mem_unit=%u" + "}) = 0\n", + (unsigned long long) si.uptime + , (unsigned long long) si.loads[0] + , (unsigned long long) si.loads[1] + , (unsigned long long) si.loads[2] + , (unsigned long long) si.totalram + , (unsigned long long) si.freeram + , (unsigned long long) si.sharedram + , (unsigned long long) si.bufferram + , (unsigned long long) si.totalswap + , (unsigned long long) si.freeswap + , (unsigned) si.procs + , (unsigned long long) si.totalhigh + , (unsigned long long) si.freehigh + , si.mem_unit + ); + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests/sysinfo.test b/tests/sysinfo.test new file mode 100755 index 00000000..8e7e5c9d --- /dev/null +++ b/tests/sysinfo.test @@ -0,0 +1,13 @@ +#!/bin/sh + +# Check decoding of sysinfo syscall + +. "${srcdir=.}/init.sh" + +run_prog > /dev/null +OUT="$LOG.out" +run_strace -esysinfo $args > "$OUT" +match_diff "$OUT" "$LOG" +rm -f "$OUT" + +exit 0 -- 2.40.0