On Wed, Apr 06, 2016 at 02:18:50PM +0800, Fei Jie wrote: > * tests/swap.c: New file. > * tests/swap.test: New test. > * tests/.gitignore: Add swap. > * tests/Makefile.am (check_PROGRAMS): Likewise. > (DECODER_TESTS): Add swap.test. > --- > tests/.gitignore | 1 + > tests/Makefile.am | 2 ++ > tests/swap.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ > tests/swap.test | 6 ++++++ > 4 files changed, 57 insertions(+) > create mode 100644 tests/swap.c > create mode 100755 tests/swap.test > > diff --git a/tests/.gitignore b/tests/.gitignore > index 9ebab08..c488409 100644 > --- a/tests/.gitignore > +++ b/tests/.gitignore > @@ -137,6 +137,7 @@ stack-fcall > stat > stat64 > statfs > +swap > sync_file_range > sync_file_range2 > sysinfo > diff --git a/tests/Makefile.am b/tests/Makefile.am > index 651ebb0..c2bb592 100644 > --- a/tests/Makefile.am > +++ b/tests/Makefile.am > @@ -186,6 +186,7 @@ check_PROGRAMS = \ > stat \ > stat64 \ > statfs \ > + swap \ > sync_file_range \ > sync_file_range2 \ > sysinfo \ > @@ -374,6 +375,7 @@ DECODER_TESTS = \ > stat64.test \ > statfs.test \ > sun_path.test \ > + swap.test \ > sync_file_range.test \ > sync_file_range2.test \ > sysinfo.test \ > diff --git a/tests/swap.c b/tests/swap.c > new file mode 100644 > index 0000000..7ef0bc1 > --- /dev/null > +++ b/tests/swap.c > @@ -0,0 +1,48 @@ > +#include "tests.h" > +#include <sys/syscall.h> > + > +#if defined __NR_swapon && defined __NR_swapoff > + > +# include <errno.h> > +# include <stdio.h> > +# include <sys/swap.h> > +# include <unistd.h> > + > +static const char * > +error_msg(int error_num) > +{ > + const char *errno_text; > + switch (error_num) { > + case ENOSYS: > + errno_text = "ENOSYS"; > + break; > + case EPERM: > + errno_text = "EPERM"; > + break; > + default: > + errno_text = "ENOENT"; > + } > + return errno_text; > +} > + > +int > +main(void) > +{ > + static const char sample[] = "swap.sample"; > + int rc = syscall(__NR_swapon, sample, 0); > + printf("swapon(\"%s\", 0) = %d %s (%m)\n", > + sample, rc, error_msg(errno)); > + > + rc = syscall(__NR_swapoff, sample); > + printf("swapoff(\"%s\") = %d %s (%m)\n", > + sample, rc, error_msg(errno)); > + > + puts("+++ exited with 0 +++"); > + return 0; > +} > + > +#else > + > +SKIP_MAIN_UNDEFINED("__NR_swapon && __NR_swapoff") > + > +#endif > diff --git a/tests/swap.test b/tests/swap.test > new file mode 100755 > index 0000000..a30e1fd > --- /dev/null > +++ b/tests/swap.test > @@ -0,0 +1,6 @@ > +#!/bin/sh > + > +# Check swapon and swapoff syscalls decoding. > + > +. "${srcdir=.}/init.sh" > +run_strace_match_diff -a23 -e trace=swapon,swapoff
Applied, thanks. Also I've fixed a bug in swapon flags decoding and added a check for it in a separate commit. -- ldv
pgpQojES3HQd5.pgp
Description: PGP signature
------------------------------------------------------------------------------
_______________________________________________ Strace-devel mailing list Strace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/strace-devel