tests: add abbrev-e.test, verbose-e.test, raw-e.test, read-e.test,
        write-e.test

Check how strace -e works with different parapeters.

* tests/abbrev-e.c: New file.
* tests/abbrev-e.test: New test.
* tests/verbose-e.test: Likewise.
* tests/raw-e.c: New file.
* tests/raw-e.test: New test.
* tests/read-e.c: New file.
* tests/read-e.test: New test.
* tests/write-e.c: New file.
* tests/write-e.test: New test.
* tests/Makefile.am (check_PROGRAMS): Add abbrev-e, raw-e, read-e,
write-e.
(TESTS): Add abbrev-e.test, verbose-e.test, raw-e.tese, read-e.test,
write-e.test.
* tests/.gitignore: Add abbrev-e, raw-e, read-e, write-e.
---
 tests/.gitignore     |  4 ++++
 tests/Makefile.am    |  9 +++++++++
 tests/abbrev-e.c     | 11 +++++++++++
 tests/abbrev-e.test  | 13 +++++++++++++
 tests/raw-e.c        | 10 ++++++++++
 tests/raw-e.test     | 13 +++++++++++++
 tests/read-e.c       | 40 ++++++++++++++++++++++++++++++++++++++++
 tests/read-e.test    | 26 ++++++++++++++++++++++++++
 tests/verbose-e.test | 13 +++++++++++++
 tests/write-e.c      | 39 +++++++++++++++++++++++++++++++++++++++
 tests/write-e.test   | 26 ++++++++++++++++++++++++++
 11 files changed, 204 insertions(+)
 create mode 100644 tests/abbrev-e.c
 create mode 100755 tests/abbrev-e.test
 create mode 100644 tests/raw-e.c
 create mode 100755 tests/raw-e.test
 create mode 100644 tests/read-e.c
 create mode 100755 tests/read-e.test
 create mode 100755 tests/verbose-e.test
 create mode 100644 tests/write-e.c
 create mode 100755 tests/write-e.test

diff --git a/tests/.gitignore b/tests/.gitignore
index cfe1e9f..9b821f2 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -6,6 +6,7 @@
 *.tmp.*
 *.trs
 _newselect
+abbrev-e
 adjtimex
 aio
 bpf
@@ -63,9 +64,11 @@ personality
 pipe
 ppoll
 pselect6
+raw-e
 readdir
 readlink
 readlinkat
+read-e
 restart_syscall
 rt_sigqueueinfo
 sched_xetaffinity
@@ -107,6 +110,7 @@ utime
 utimensat
 vfork-f
 wait
+write-e
 xattr
 xet_robust_list
 xetitimer
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 33f76cb..ec5f1a7 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -52,6 +52,7 @@ LDADD = libtests.a
 
 check_PROGRAMS = \
        _newselect \
+       abbrev-e \
        adjtimex \
        aio \
        bpf \
@@ -107,9 +108,11 @@ check_PROGRAMS = \
        pipe \
        ppoll \
        pselect6 \
+       raw-e \
        readdir \
        readlink \
        readlinkat \
+       read-e \
        restart_syscall \
        rt_sigqueueinfo \
        sched_xetaffinity \
@@ -151,6 +154,7 @@ check_PROGRAMS = \
        utimensat \
        vfork-f \
        wait \
+       write-e \
        xattr \
        xet_robust_list \
        xetitimer \
@@ -187,6 +191,7 @@ TESTS = \
        ksysent.test \
        \
        _newselect.test \
+       abbrev-e.test \
        adjtimex.test \
        aio.test \
        bexecve.test \
@@ -242,9 +247,11 @@ TESTS = \
        pipe.test \
        ppoll.test \
        pselect6.test \
+       raw-e.test \
        readdir.test \
        readlink.test \
        readlinkat.test \
+       read-e.test \
        rt_sigqueueinfo.test \
        sched_xetaffinity.test \
        sched_xetattr.test \
@@ -282,8 +289,10 @@ TESTS = \
        userfaultfd.test \
        utime.test \
        utimensat.test \
+       verbose-e.test \
        vfork-f.test \
        wait.test \
+       write-e.test \
        xattr.test \
        xet_robust_list.test \
        xetitimer.test \
diff --git a/tests/abbrev-e.c b/tests/abbrev-e.c
new file mode 100644
index 0000000..e33f656
--- /dev/null
+++ b/tests/abbrev-e.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+#include <sys/utsname.h>
+
+int main()
+{
+       int ret;
+       struct utsname buf;
+       ret = uname(&buf);
+       printf("uname({sysname=\"%s\", nodename=\"%s\", ...}) = %d\n", 
buf.sysname, buf.nodename, ret);
+       return 0;
+}
diff --git a/tests/abbrev-e.test b/tests/abbrev-e.test
new file mode 100755
index 0000000..3e74d47
--- /dev/null
+++ b/tests/abbrev-e.test
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+. "${srcdir=.}/init.sh"
+
+OUT="${LOG}.out"
+
+run_prog
+run_strace -e abbrev=uname -euname -qq $args >"$OUT"
+
+match_diff "$OUT" "$LOG"
+rm -f "$OUT"
+
+exit 0
diff --git a/tests/raw-e.c b/tests/raw-e.c
new file mode 100644
index 0000000..7b2dfcc
--- /dev/null
+++ b/tests/raw-e.c
@@ -0,0 +1,10 @@
+#include <stdio.h>
+#include <unistd.h>
+
+int main()
+{
+       pid_t pid;
+       pid = getpid();
+       printf("getpid() = 0x%x\n", pid);
+       return 0;
+}
diff --git a/tests/raw-e.test b/tests/raw-e.test
new file mode 100755
index 0000000..d76a0f0
--- /dev/null
+++ b/tests/raw-e.test
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+. "${srcdir=.}/init.sh"
+
+OUT="${LOG}.out"
+
+run_prog
+run_strace -e raw=getpid -egetpid -a9 -qq $args >"$OUT"
+
+match_diff "$LOG" "$OUT"
+rm -f "$OUT"
+
+exit 0
diff --git a/tests/read-e.c b/tests/read-e.c
new file mode 100644
index 0000000..723cb60
--- /dev/null
+++ b/tests/read-e.c
@@ -0,0 +1,40 @@
+#include <unistd.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+void do_readfd(int fd)
+{
+       int oldfd;
+       oldfd = open("/dev/zero", O_RDONLY);
+       if (-1 == oldfd)
+       {
+               return;
+       }
+       int newfd;
+       if (oldfd == fd)
+       {
+               newfd = fd;
+       }
+       else
+       {
+               newfd = dup2(oldfd, fd);
+               close(oldfd);
+               if (-1 == newfd)
+               {
+                       return;
+               }
+       }
+       char c;
+       read(newfd, &c, 1);
+       close(newfd);
+}
+
+int main()
+{
+       long fd = 4;
+       do_readfd(fd);
+       fd = 5;
+       do_readfd(fd);
+       return 0;
+}
diff --git a/tests/read-e.test b/tests/read-e.test
new file mode 100755
index 0000000..d8ebe1a
--- /dev/null
+++ b/tests/read-e.test
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+. "${srcdir=.}/init.sh"
+
+check_rd()
+{
+    FUNCLINE=`grep -n "$1" "$LOG" | sed -n '$p' | cut -f1 -d:`
+    let FUNCLINE=FUNCLINE+1
+    CONTENT=`sed -n "$FUNCLINE"p "$LOG"`
+    ERROR=`echo "$CONTENT" | grep " | 00000"`
+    if [ "$2" -eq 1 ];then
+        if [ "$ERROR" = "" ];then
+            fail_ "read not exist"
+        fi
+    else
+        if [ "$ERROR" != "" ];then
+            fail_ "read exist"
+        fi
+    fi
+}
+
+run_prog
+run_strace -e read=4 -eread -qq $args
+
+check_rd "read(4, \"\\\\0\", 1) \+= 1" 1
+check_rd "read(5, \"\\\\0\", 1) \+= 1" 0
diff --git a/tests/verbose-e.test b/tests/verbose-e.test
new file mode 100755
index 0000000..1c4d361
--- /dev/null
+++ b/tests/verbose-e.test
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+. "${srcdir=.}/init.sh"
+
+OUT="${LOG}.out"
+
+run_prog ./abbrev-e
+run_strace -e verbose=uname -euname -qq $args >"$OUT"
+
+match_diff "$OUT" "$LOG"
+rm -f "$OUT"
+
+exit 0
diff --git a/tests/write-e.c b/tests/write-e.c
new file mode 100644
index 0000000..a495c7a
--- /dev/null
+++ b/tests/write-e.c
@@ -0,0 +1,39 @@
+#include <unistd.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+void do_writefd(int fd)
+{
+       int oldfd;
+       oldfd = open("/dev/null", O_WRONLY);
+       if (-1 == oldfd)
+       {
+               return;
+       }
+       int newfd;
+       if (oldfd == fd)
+       {
+        newfd = fd;
+       }
+       else
+       {
+               newfd = dup2(oldfd, fd);
+               close(oldfd);
+               if (-1 == newfd)
+               {
+                       return;
+               }
+       }
+       write(newfd, "", 1);
+       close(newfd);
+}
+
+int main()
+{
+       long fd = 4;
+       do_writefd(fd);
+       fd = 5;
+       do_writefd(fd);
+       return 0;
+}
diff --git a/tests/write-e.test b/tests/write-e.test
new file mode 100755
index 0000000..ba07fa9
--- /dev/null
+++ b/tests/write-e.test
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+. "${srcdir=.}/init.sh"
+
+check_wr()
+{
+    FUNCLINE=`grep -n "$1" "$LOG" | sed -n '$p' | cut -f1 -d:`
+    let FUNCLINE=FUNCLINE+1
+    CONTENT=`sed -n "$FUNCLINE"p "$LOG"`
+    ERROR=`echo "$CONTENT" | grep " | 00000"`
+    if [ "$2" -eq 1 ];then
+        if [ "$ERROR" = "" ];then
+            fail_ "write not exist"
+        fi
+    else
+        if [ "$ERROR" != "" ];then
+            fail_ "write exist"
+        fi
+    fi
+}
+
+run_prog
+run_strace -e write=4 -ewrite -qq $args
+
+check_wr "write(4, \"\\\\0\", 1) \+= 1" 1
+check_wr "write(5, \"\\\\0\", 1) \+= 1" 0
-- 
1.8.3.1




------------------------------------------------------------------------------
_______________________________________________
Strace-devel mailing list
Strace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/strace-devel

Reply via email to