[PATCH 5/7] tests: Change type of sched_nice field to signed in sched_xetattr test

2016-09-05 Thread Eugene Syromyatnikov
Kernel headers declare this field as s32, and strace prints it with %d
specifier.

* tests/sched_xetattr.c: Change type of sched_nice field of struct
  sched_attr to int32_t, update format specifiers accordingly.
---
 tests/sched_xetattr.c |6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/sched_xetattr.c b/tests/sched_xetattr.c
index e85f9bc..2e0ce61 100644
--- a/tests/sched_xetattr.c
+++ b/tests/sched_xetattr.c
@@ -41,7 +41,7 @@ main(void)
uint32_t size;
uint32_t sched_policy;
uint64_t sched_flags;
-   uint32_t sched_nice;
+   int32_t  sched_nice;
uint32_t sched_priority;
uint64_t sched_runtime;
uint64_t sched_deadline;
@@ -52,7 +52,7 @@ main(void)
perror_msg_and_skip("sched_getattr");
 
printf("sched_getattr\\(0, \\{size=%u, sched_policy=SCHED_[A-Z]+, "
-   "sched_flags=%s, sched_nice=%u, sched_priority=%u, "
+   "sched_flags=%s, sched_nice=%d, sched_priority=%u, "
"sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 ", "
"sched_period=%" PRIu64 "\\}, %zu, 0\\) += 0\n",
sched_attr->size,
@@ -69,7 +69,7 @@ main(void)
perror_msg_and_skip("sched_setattr");
 
printf("sched_setattr\\(0, \\{size=%u, sched_policy=SCHED_[A-Z]+, "
-   "sched_flags=%s, sched_nice=%u, sched_priority=%u, "
+   "sched_flags=%s, sched_nice=%d, sched_priority=%u, "
"sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 ", "
"sched_period=%" PRIu64 "\\}, 0\\) += 0\n",
sched_attr->size,
-- 
1.7.10.4


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


[PATCH 6/7] tests: Print size argument of sched_setattr as unsigned

2016-09-05 Thread Eugene Syromyatnikov
Since it is how it is declared.

* tests/sched_xetattr.c: Cast size of struct sched_attr to unsigned,
  update format specifier accordingly.
---
 tests/sched_xetattr.c |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/sched_xetattr.c b/tests/sched_xetattr.c
index 2e0ce61..9ff8c72 100644
--- a/tests/sched_xetattr.c
+++ b/tests/sched_xetattr.c
@@ -54,7 +54,7 @@ main(void)
printf("sched_getattr\\(0, \\{size=%u, sched_policy=SCHED_[A-Z]+, "
"sched_flags=%s, sched_nice=%d, sched_priority=%u, "
"sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 ", "
-   "sched_period=%" PRIu64 "\\}, %zu, 0\\) += 0\n",
+   "sched_period=%" PRIu64 "\\}, %u, 0\\) += 0\n",
sched_attr->size,
sched_attr->sched_flags ? "SCHED_FLAG_RESET_ON_FORK" : "0",
sched_attr->sched_nice,
@@ -62,7 +62,7 @@ main(void)
sched_attr->sched_runtime,
sched_attr->sched_deadline,
sched_attr->sched_period,
-   sizeof(*sched_attr));
+   (unsigned)sizeof(*sched_attr));
 
sched_attr->sched_flags |= 1;
if (syscall(__NR_sched_setattr, 0, sched_attr, 0))
-- 
1.7.10.4


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


[PATCH 4/7] tests: Additional shmget decoder checks

2016-09-05 Thread Eugene Syromyatnikov
* tests/ipc_shm.c: Additional checks for shmget syscall decoding.
---
 tests/ipc_shm.c |   20 
 1 file changed, 20 insertions(+)

diff --git a/tests/ipc_shm.c b/tests/ipc_shm.c
index 54723e2..80a8f0f 100644
--- a/tests/ipc_shm.c
+++ b/tests/ipc_shm.c
@@ -27,11 +27,15 @@
  */
 
 #include "tests.h"
+#include 
 #include 
 #include 
 #include 
 #include 
 
+#include "xlat.h"
+#include "xlat/shm_resource_flags.h"
+
 static int id = -1;
 
 static void
@@ -45,9 +49,25 @@ cleanup(void)
 int
 main(void)
 {
+   static const key_t bogus_key = (key_t)0xeca86420fdb97531LLU;
+   static const size_t bogus_size = 0xdec0ded1dec0ded2LLU;
+   static const int bogus_flags = 0xface1e55;
+
int rc;
struct shmid_ds ds;
 
+   assert(shmget(bogus_key, bogus_size, bogus_flags) == -1);
+   printf("shmget\\(%#lx, %lu, %s%s%s%#x\\|%#04o\\) += %s\n",
+   (unsigned long)((sizeof(key_t) == sizeof(int)) ?
+   (unsigned)bogus_key : (unsigned long)bogus_key),
+   bogus_size,
+   IPC_CREAT & bogus_flags ? "IPC_CREAT\\|" : "",
+   IPC_EXCL & bogus_flags ? "IPC_EXCL\\|" : "",
+   SHM_HUGETLB & bogus_flags ? "SHM_HUGETLB\\|" : "",
+   bogus_flags & ~(0777 | IPC_CREAT | IPC_EXCL | SHM_HUGETLB),
+   bogus_flags & 0777,
+   sprintrc_grep(-1));
+
id = shmget(IPC_PRIVATE, 1, 0600);
if (id < 0)
perror_msg_and_skip("shmget");
-- 
1.7.10.4


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


[PATCH 7/7] tests: Additional sched_getattr/sched_setattr decoder checks

2016-09-05 Thread Eugene Syromyatnikov
* tests/sched_xetattr.c: Additional checs for sched_getattr and
  sched_setattr decoding.
---
 tests/sched_xetattr.c |   43 +++
 1 file changed, 43 insertions(+)

diff --git a/tests/sched_xetattr.c b/tests/sched_xetattr.c
index 9ff8c72..ce5c417 100644
--- a/tests/sched_xetattr.c
+++ b/tests/sched_xetattr.c
@@ -30,6 +30,7 @@
 
 #if defined __NR_sched_getattr && defined __NR_sched_setattr
 
+# include 
 # include 
 # include 
 # include 
@@ -48,6 +49,21 @@ main(void)
uint64_t sched_period;
} *sched_attr = tail_alloc(sizeof(*sched_attr));
 
+   assert(syscall(__NR_sched_getattr, 0xdeadface, NULL, 0, 0) == -1);
+   printf("sched_getattr\\(%d, NULL, 0, 0\\) += %s\n",
+   0xdeadface, sprintrc_grep(-1));
+
+   assert(syscall(__NR_sched_getattr, -1, sched_attr, 0xbadfaced,
+   0xc0defeed) == -1);
+   printf("sched_getattr\\(-1, %p, %u, %u\\) += %s\n",
+   sched_attr, 0xbadfaced, 0xc0defeed, sprintrc_grep(-1));
+
+   assert(syscall(__NR_sched_getattr, 0, sched_attr + 1,
+   sizeof(*sched_attr), 0) == -1);
+   printf("sched_getattr\\(0, %p, %u, 0\\) += %s\n",
+   sched_attr + 1, (unsigned)sizeof(*sched_attr),
+   sprintrc_grep(-1));
+
if (syscall(__NR_sched_getattr, 0, sched_attr, sizeof(*sched_attr), 0))
perror_msg_and_skip("sched_getattr");
 
@@ -80,6 +96,33 @@ main(void)
sched_attr->sched_deadline,
sched_attr->sched_period);
 
+   sched_attr->size = 0x90807060;
+   sched_attr->sched_policy = 0xca7faced;
+   sched_attr->sched_flags = 0xbadc0ded1057da7aULL;
+   sched_attr->sched_nice = 0xafbfcfdf;
+   sched_attr->sched_priority = 0xb8c8d8e8;
+   sched_attr->sched_runtime = 0xbadcaffedeadf157ULL;
+   sched_attr->sched_deadline = 0xc0de70a57badac75ULL;
+   sched_attr->sched_period = 0xded1ca7edda7aca7ULL;
+
+   assert(syscall(__NR_sched_setattr, 0xfacec0de, sched_attr,
+   0xbeeff00d) == -1);
+
+   printf("sched_setattr\\(%d, \\{size=%u, "
+   "sched_policy=%#x /\\* SCHED_\\?\\?\\? \\*/, "
+   "sched_flags=%#" PRIx64 " /\\* SCHED_FLAG_\\?\\?\\? \\*/, "
+   "sched_nice=%d, sched_priority=%u, sched_runtime=%" PRIu64 ", "
+   "sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 "\\}, "
+   "%u\\) += %s\n",
+   0xfacec0de, sched_attr->size,
+   sched_attr->sched_policy,
+   sched_attr->sched_flags,
+   sched_attr->sched_nice,
+   sched_attr->sched_priority,
+   sched_attr->sched_runtime,
+   sched_attr->sched_deadline,
+   sched_attr->sched_period, 0xbeeff00d, sprintrc_grep(-1));
+
return 0;
 }
 
-- 
1.7.10.4


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


[PATCH 2/7] tests: Perform more strict structure allocation in sched_xetattr test

2016-09-05 Thread Eugene Syromyatnikov
tail_alloc with precise size of the structure is used now.

* tests/sched_xetattr.c: Eliminate usage of anonymous union type; rename
  sched to sched_attr; change type of sched_attr to struct pointer; use
  tail_alloc for sched_attr allocation; update printf statements
  accrodingly.
---
 tests/sched_xetattr.c |   58 -
 1 file changed, 28 insertions(+), 30 deletions(-)

diff --git a/tests/sched_xetattr.c b/tests/sched_xetattr.c
index b982cca..e85f9bc 100644
--- a/tests/sched_xetattr.c
+++ b/tests/sched_xetattr.c
@@ -37,50 +37,48 @@
 int
 main(void)
 {
-   static union {
-   struct {
-   uint32_t size;
-   uint32_t sched_policy;
-   uint64_t sched_flags;
-   uint32_t sched_nice;
-   uint32_t sched_priority;
-   uint64_t sched_runtime;
-   uint64_t sched_deadline;
-   uint64_t sched_period;
-   } attr;
-   char buf[256];
-   } sched;
+   struct {
+   uint32_t size;
+   uint32_t sched_policy;
+   uint64_t sched_flags;
+   uint32_t sched_nice;
+   uint32_t sched_priority;
+   uint64_t sched_runtime;
+   uint64_t sched_deadline;
+   uint64_t sched_period;
+   } *sched_attr = tail_alloc(sizeof(*sched_attr));
 
-   if (syscall(__NR_sched_getattr, 0, , sizeof(sched), 0))
+   if (syscall(__NR_sched_getattr, 0, sched_attr, sizeof(*sched_attr), 0))
perror_msg_and_skip("sched_getattr");
 
printf("sched_getattr\\(0, \\{size=%u, sched_policy=SCHED_[A-Z]+, "
"sched_flags=%s, sched_nice=%u, sched_priority=%u, "
"sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 ", "
-   "sched_period=%" PRIu64 "\\}, 256, 0\\) += 0\n",
-   sched.attr.size,
-   sched.attr.sched_flags ? "SCHED_FLAG_RESET_ON_FORK" : "0",
-   sched.attr.sched_nice,
-   sched.attr.sched_priority,
-   sched.attr.sched_runtime,
-   sched.attr.sched_deadline,
-   sched.attr.sched_period);
+   "sched_period=%" PRIu64 "\\}, %zu, 0\\) += 0\n",
+   sched_attr->size,
+   sched_attr->sched_flags ? "SCHED_FLAG_RESET_ON_FORK" : "0",
+   sched_attr->sched_nice,
+   sched_attr->sched_priority,
+   sched_attr->sched_runtime,
+   sched_attr->sched_deadline,
+   sched_attr->sched_period,
+   sizeof(*sched_attr));
 
-   sched.attr.sched_flags |= 1;
-   if (syscall(__NR_sched_setattr, 0, , 0))
+   sched_attr->sched_flags |= 1;
+   if (syscall(__NR_sched_setattr, 0, sched_attr, 0))
perror_msg_and_skip("sched_setattr");
 
printf("sched_setattr\\(0, \\{size=%u, sched_policy=SCHED_[A-Z]+, "
"sched_flags=%s, sched_nice=%u, sched_priority=%u, "
"sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 ", "
"sched_period=%" PRIu64 "\\}, 0\\) += 0\n",
-   sched.attr.size,
+   sched_attr->size,
"SCHED_FLAG_RESET_ON_FORK",
-   sched.attr.sched_nice,
-   sched.attr.sched_priority,
-   sched.attr.sched_runtime,
-   sched.attr.sched_deadline,
-   sched.attr.sched_period);
+   sched_attr->sched_nice,
+   sched_attr->sched_priority,
+   sched_attr->sched_runtime,
+   sched_attr->sched_deadline,
+   sched_attr->sched_period);
 
return 0;
 }
-- 
1.7.10.4


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


[PATCH 0/7] Minor tests tweaks pt. 2

2016-09-05 Thread Eugene Syromyatnikov
Hello.

This time, mostly sched_xetattr tweaks. Another notable changes are new
sprintrc_grep function and additional shmget check.

Eugene Syromyatnikov (7):
  tests: Split long lines in sched_xetattr test
  tests: Perform more strict structure allocation in sched_xetattr test
  tests: Add sprintrc_grep function
  tests: Additional shmget decoder checks
  tests: Change type of sched_nice field to signed in sched_xetattr
test
  tests: Print size argument of sched_setattr as unsigned
  tests: Additional sched_getattr/sched_setattr decoder checks

 tests/ipc_shm.c   |   20 +
 tests/sched_xetattr.c |  113 ++---
 tests/sprintrc.c  |   41 +++---
 tests/tests.h |2 +
 4 files changed, 136 insertions(+), 40 deletions(-)

-- 
1.7.10.4


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


[PATCH 3/7] tests: Add sprintrc_grep function

2016-09-05 Thread Eugene Syromyatnikov
sprintrc_grep function is sprintrc function equivalent suitable for
tests where grep-base pattern matching is employed.

* tests/sprintrc.c (enum sprintrc_fmt): New sprintrc format enumeration.
  (sprintrc_ex): New function, renamed from sprintrc with updates
  regarding support of different formats.
  (sprintrc): Calls sprintrc_ex with SPRINTRC_FMT_RAW.
  (sprintrc_grep): Calls sprintrc_ex with SPRINTRC_FMT_GREP.
* tests/tests.h: sprintrc_grep declaration added.
---
 tests/sprintrc.c |   41 ++---
 tests/tests.h|2 ++
 2 files changed, 36 insertions(+), 7 deletions(-)

diff --git a/tests/sprintrc.c b/tests/sprintrc.c
index 5e27680..a573a27 100644
--- a/tests/sprintrc.c
+++ b/tests/sprintrc.c
@@ -28,25 +28,40 @@
 #include "tests.h"
 #include 
 
+enum sprintrc_fmt {
+   SPRINTRC_FMT_RAW,
+   SPRINTRC_FMT_GREP,
+};
+
 /**
  * Provides pointer to static string buffer with printed return code in format
  * used by strace - with errno and error message.
  *
- * @param rc Return code.
- * @return   Pointer to (statically allocated) buffer containing decimal
- *   representation of return code and errno/error message in case @rc
- *   is equal to -1.
+ * @param rc  Return code.
+ * @param fmt Output format. Currently, raw (used for diff matching) and grep
+ *(for extended POSIX regex-based pattern matching) formats are
+ *supported.
+ * @returnPointer to (statically allocated) buffer containing decimal
+ *representation of return code and errno/error message in case @rc
+ *is equal to -1.
  */
-const char *
-sprintrc(long rc)
+static inline const char *
+sprintrc_ex(long rc, enum sprintrc_fmt fmt)
 {
+   static const char *formats[] = {
+   [SPRINTRC_FMT_RAW] = "-1 %s (%m)",
+   [SPRINTRC_FMT_GREP] = "-1 %s \\(%m\\)",
+   };
static char buf[4096];
 
+   if (fmt >= ARRAY_SIZE(formats))
+   perror_msg_and_fail("sprintrc_ex: incorrect format provided");
+
if (rc == 0)
return "0";
 
int ret = (rc == -1)
-   ? snprintf(buf, sizeof(buf), "-1 %s (%m)", errno2name())
+   ? snprintf(buf, sizeof(buf), formats[fmt], errno2name())
: snprintf(buf, sizeof(buf), "%ld", rc);
 
if (ret < 0)
@@ -57,3 +72,15 @@ sprintrc(long rc)
 
return buf;
 }
+
+const char *
+sprintrc(long rc)
+{
+   return sprintrc_ex(rc, SPRINTRC_FMT_RAW);
+}
+
+const char *
+sprintrc_grep(long rc)
+{
+   return sprintrc_ex(rc, SPRINTRC_FMT_GREP);
+}
diff --git a/tests/tests.h b/tests/tests.h
index 3043f97..2599120 100644
--- a/tests/tests.h
+++ b/tests/tests.h
@@ -101,6 +101,8 @@ const char *signal2name(int);
 
 /* Print return code and, in case return code is -1, errno information. */
 const char *sprintrc(long rc);
+/* sprintrc variant suitable for usage as part of grep pattern. */
+const char *sprintrc_grep(long rc);
 
 struct xlat;
 
-- 
1.7.10.4


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


[PATCH v2] tests: Some additional aio checks

2016-09-05 Thread Eugene Syromyatnikov
* aio.c: Additional checks added.
---
Changes since v1:
 * All io_submit checks now use long as second argument, last io_submit
   check now always passes positive nr value.
 * Additional decoder checks reworked a bit in order to increase
   coverage.

 tests/aio.c |  137 +++
 1 file changed, 137 insertions(+)

diff --git a/tests/aio.c b/tests/aio.c
index 8c5bfa7..11c4913 100644
--- a/tests/aio.c
+++ b/tests/aio.c
@@ -111,6 +111,53 @@ main(void)
};
const struct iocb *cbv = tail_memdup(proto_cbv, sizeof(proto_cbv));
 
+   /* For additional decoder testing */
+   const struct iocb proto_cbv2[] = {
+   {
+   .aio_data = 0xbadfacedc0ffeeed,
+   .aio_key = 0xdefaced0,
+   .aio_lio_opcode = 0xf00d,
+   .aio_reqprio = 0,
+   .aio_fildes = 0xdefaced1,
+   .aio_buf = 0,
+   },
+   {
+   .aio_data = 0,
+   .aio_key = 0xdefaced0,
+   .aio_lio_opcode = 1,
+   .aio_reqprio = 0xbeef,
+   .aio_fildes = 0xdefaced1,
+   .aio_buf = 0,
+   .aio_nbytes = 0x1020304050607080,
+   .aio_offset = 0xdeadda7abadc0ded,
+# ifdef IOCB_FLAG_RESFD
+   .aio_flags = 0xfacef157,
+   .aio_resfd = 0xded1ca7e,
+# endif
+   },
+   {
+   .aio_data = 0,
+   .aio_key = 0xdefaced0,
+   .aio_lio_opcode = 1,
+   .aio_reqprio = 0xbeef,
+   .aio_fildes = 0xdefaced1,
+   .aio_buf = 0xbadc0ffeedefaced,
+   .aio_nbytes = 0x8090a0b0c0d0e0f0,
+   .aio_offset = 0xdeadda7abadc0ded,
+   },
+   {
+   .aio_data = 0,
+   .aio_key = 0xdefaced0,
+   .aio_lio_opcode = 8,
+   .aio_reqprio = 0xbeef,
+   .aio_fildes = 0xdefaced1,
+   .aio_buf = 0,
+   .aio_nbytes = 0x8090a0b0c0d0e0f0,
+   .aio_offset = 0xdeadda7abadc0ded,
+   },
+   };
+   const struct iocb *cbv2 = tail_memdup(proto_cbv2, sizeof(proto_cbv2));
+
const struct iocb proto_cbc = {
.aio_data = 0xdeadbeefbadc0ded,
.aio_reqprio = 99,
@@ -128,6 +175,13 @@ main(void)
};
const long *cbvs = tail_memdup(proto_cbvs, sizeof(proto_cbvs));
 
+   const long proto_cbvs2[] = {
+   (long) [0], (long) [1],
+   (long) [2], (long) [3],
+   (long) NULL, (long) 0xdeadc0dedeadda7a,
+   };
+   const long *cbvs2 = tail_memdup(proto_cbvs2, sizeof(proto_cbvs2));
+
unsigned long *ctx = tail_alloc(sizeof(unsigned long));
*ctx = 0;
 
@@ -142,10 +196,26 @@ main(void)
if (open("/dev/zero", O_RDONLY))
perror_msg_and_skip("open: %s", "/dev/zero");
 
+   assert(syscall(__NR_io_setup, 0xdeadbeef, NULL) == -1);
+   printf("io_setup(%u, NULL) = %s\n", 0xdeadbeef, sprintrc(-1));
+
+   assert(syscall(__NR_io_setup, lnr, ctx + 1) == -1);
+   printf("io_setup(%u, %p) = %s\n", nr, ctx + 1, sprintrc(-1));
+
if (syscall(__NR_io_setup, lnr, ctx))
perror_msg_and_skip("io_setup");
printf("io_setup(%u, [%lu]) = 0\n", nr, *ctx);
 
+   assert(syscall(__NR_io_submit, (aio_context_t) 0xface1e55deadbeef,
+  (long) 0xca7faceddeadf00d, NULL) == -1);
+   printf("io_submit(%lu, %ld, NULL) = %s\n",
+  (aio_context_t) 0xface1e55deadbeef, (long) 0xca7faceddeadf00d,
+  sprintrc(-1));
+
+   assert(syscall(__NR_io_submit, *ctx, nr, cbs + nr) == -1);
+   printf("io_submit(%lu, %ld, %p) = %s\n",
+  *ctx, (long)nr, cbs + nr, sprintrc(-1));
+
assert(syscall(__NR_io_submit, *ctx, -1L, cbs) == -1);
printf("io_submit(%lu, -1, %p) = %s\n",
   *ctx, cbs, sprintrc(-1));
@@ -165,6 +235,22 @@ main(void)
   sizeof_data1, (long long) cb[1].aio_offset,
   nr);
 
+   assert(syscall(__NR_io_getevents, (aio_context_t) 0xface1e55deadbeef,
+  (long) 0xca7faceddeadf00d, (long) 0xba5e1e505ca571e0, ev + 1,
+  NULL) == -1);
+   printf("io_getevents(%lu, %ld, %ld, %p, NULL) = %s\n",
+  (aio_context_t) 0xface1e55deadbeef,
+  (long) 0xca7faceddeadf00d, (long) 0xba5e1e505ca571e0,
+  ev + 1, sprintrc(-1));
+
+   assert(syscall(__NR_io_getevents, (aio_context_t) 0xface1e55deadbeef,
+  (long) 0xca7faceddeadf00d, (long) 0xba5e1e505ca571e0, NULL,
+  ts + 1) == -1);
+   

[PATCH v2] Makefile.am: use dirname as a fallback for realpath

2016-09-05 Thread Eugene Syromyatnikov
Since realpath utility is fairly new in GNU coreutils, there could be
possibility that it is not present in the system. Instead of checking
its presence in configure script it probably makes sense to fall back to
dirname call since it is more widespread.

Initial implementation utilized readlink instead of dirname; changed as
per Dmitry Levin's suggestion.
---
Changes from v1:
 * dirname has been utilized instead of readlink.

 Makefile.am |3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Makefile.am b/Makefile.am
index 65f5c64..91733bf 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -256,7 +256,8 @@ endif
 @CODE_COVERAGE_RULES@
 CODE_COVERAGE_BRANCH_COVERAGE = 1
 CODE_COVERAGE_GENHTML_OPTIONS = $(CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT) \
-   --prefix $(shell realpath -Ls $(abs_top_srcdir)/..)
+   --prefix $(shell realpath -Ls $(abs_top_srcdir)/.. || \
+   dirname $(abs_top_srcdir))
 CODE_COVERAGE_IGNORE_PATTERN = '/usr/include/*'
 strace_CPPFLAGS += $(CODE_COVERAGE_CPPFLAGS)
 strace_CFLAGS += $(CODE_COVERAGE_CFLAGS)
-- 
1.7.10.4


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


Re: [PATCH 1/9] tests: check decoding of perf_event_open syscall

2016-09-05 Thread Dmitry V. Levin
On Mon, Sep 05, 2016 at 04:31:03AM +0300, Eugene Syromyatnikov wrote:
> * tests/perf_event_open.c: New file.
> * tests/perf_event_open.test: New test.
> * tests/.gitignore: Add perf_event_open.
> * tests/Makefile.am (check_PROGRAMS): Likewise.
>   (DECODER_TESTS): Add perf_event_open.test.

On rhel5:
perf_event_open.c:10:34: error: linux/hw_breakpoint.h: No such file or directory
perf_event_open.c:11:31: error: linux/perf_event.h: No such file or directory

On debian7 and rhel6:
perf_event_open.c:10:34: error: linux/hw_breakpoint.h: No such file or directory

On rhel7 and opensuse13:
perf_event_open.c:56:4: error: 'PERF_FLAG_FD_CLOEXEC' undeclared (first use in 
this function)


-- 
ldv


pgpJPj5uwnro_.pgp
Description: PGP signature
--
___
Strace-devel mailing list
Strace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/strace-devel


Re: [PATCH v2 0/5] tests: Refactor of retstr from futex.c into a library function and updated readahead test

2016-09-05 Thread Dmitry V. Levin
On Fri, Sep 02, 2016 at 06:24:55PM +0300, Eugene Syromyatnikov wrote:
> Hello.
> 
> Changes from v1:
>  * sprintrc now takes long as rc argument since syscalls return long.
>  * Changes in various rc values support as suggested by Dmitry.
> 
> Eugene Syromyatnikov (5):
>   tests/futex: Rename retstr to sprintrc
>   tests/futex: Increase static sprintrc buffer size
>   tests/futex: Add support for return codes other than 0 and -1 to
> sprintrc
>   tests: Move return code printing into a separate file
>   tests: check decoding of readahead syscall

Merged, thanks!


-- 
ldv


pgp2ooXBOpMEw.pgp
Description: PGP signature
--
___
Strace-devel mailing list
Strace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/strace-devel