mirror of
https://github.com/ioacademy-jikim/debugging
synced 2025-06-08 08:26:14 +00:00
65 lines
1.8 KiB
C
65 lines
1.8 KiB
C
#include "../../memcheck.h"
|
|
#include "scalar.h"
|
|
#include <unistd.h>
|
|
#include <sched.h>
|
|
#include <signal.h>
|
|
#include <sys/shm.h>
|
|
|
|
// See memcheck/tests/x86-linux/scalar.c for an explanation of what this test
|
|
// is doing.
|
|
|
|
int main(void)
|
|
{
|
|
// uninitialised, but we know px[0] is 0x0
|
|
long* px = malloc(sizeof(long));
|
|
long x0 = px[0];
|
|
long res;
|
|
|
|
VALGRIND_MAKE_MEM_NOACCESS(0, 0x1000);
|
|
|
|
// The nocancel syscalls all use the same wrappers as the corresponding
|
|
// non-nocancel syscall. This means that if we try to test both in the
|
|
// same file, the nocancel ones won't result in errors being generated
|
|
// because errors are too similar. So we test them in this separate file.
|
|
|
|
// __NR_read_nocancel 396
|
|
// __NR_write_nocancel 397
|
|
// __NR_open_nocancel 398
|
|
// __NR_close_nocancel 399
|
|
// __NR_wait4_nocancel 400
|
|
// __NR_recvmsg_nocancel 401
|
|
// __NR_sendmsg_nocancel 402
|
|
// __NR_recvfrom_nocancel 403
|
|
// __NR_accept_nocancel 404
|
|
// __NR_msync_nocancel 405
|
|
// __NR_fcntl_nocancel 406
|
|
// __NR_select_nocancel 407
|
|
// __NR_fsync_nocancel 408
|
|
// __NR_connect_nocancel 409
|
|
// __NR_sigsuspend_nocancel 410
|
|
|
|
GO(__NR_sigsuspend_nocancel, 410, "ignore");
|
|
// (I don't know how to test this...)
|
|
|
|
// __NR_readv_nocancel 411
|
|
// __NR_writev_nocancel 412
|
|
// __NR_sendto_nocancel 413
|
|
// __NR_pread_nocancel 414
|
|
// __NR_pwrite_nocancel 415
|
|
// __NR_waitid_nocancel 416
|
|
// __NR_poll_nocancel 417
|
|
// __NR_msgsnd_nocancel 418
|
|
// __NR_msgrcv_nocancel 419
|
|
|
|
// The error doesn't appear because it's a dup of the one from sem_wait.
|
|
GO(__NR_sem_wait_nocancel, 420, "1s 0m");
|
|
SY(__NR_sem_wait_nocancel, x0); FAIL;
|
|
|
|
// __NR_aio_suspend_nocancel 421
|
|
// __NR___sigwait_nocancel 422
|
|
// __NR___semwait_signal_nocancel 423
|
|
|
|
return 0;
|
|
}
|
|
|