valgrind/valgrind-r11644.diff
2011-04-11 11:23:42 +00:00

36 lines
1.3 KiB
Diff

------------------------------------------------------------------------
r11644 | sewardj | 2011-03-15 09:13:08 +0100 (Di, 15. Mär 2011) | 3 Zeilen
Some fixes for the faultstatus testcase. Fixes #253206.
(Christian Borntraeger, borntraeger@de.ibm.com)
------------------------------------------------------------------------
Index: none/tests/faultstatus.c
===================================================================
--- none/tests/faultstatus.c (Revision 11643)
+++ none/tests/faultstatus.c (Revision 11644)
@@ -70,7 +70,13 @@ static int testcode(int code, int want)
static int testaddr(void *addr, volatile void *want)
{
+ /* Some architectures (e.g. s390) just provide enough information to
+ resolve the page fault, but do not provide the offset within a page */
+#if defined(__s390__)
+ if (addr != (void *) ((unsigned long) want & ~0xffful)) {
+#else
if (addr != want) {
+#endif
fprintf(stderr, " FAIL: expected si_addr==%p, not %p\n", want, addr);
return 0;
}
@@ -132,7 +138,8 @@ int main()
for(i = 0; i < sizeof(sigs)/sizeof(*sigs); i++)
sigaction(sigs[i], &sa, NULL);
- fd = open("faultstatus.tmp", O_CREAT|O_TRUNC|O_EXCL, 0600);
+ /* we need O_RDWR for the truncate below */
+ fd = open("faultstatus.tmp", O_CREAT|O_TRUNC|O_EXCL|O_RDWR, 0600);
if (fd == -1) {
perror("tmpfile");
exit(1);