Refactor GPR and FPR tests in t_ptrace_wait* tests
This change deduplicates the code and puts all the test into shared function body. No functional change except ranaming tests regs* to access_regs* and fpregs* to access_fpregs*.
This commit is contained in:
parent
b0735e4145
commit
c18cba814b
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: t_ptrace_wait.c,v 1.71 2019/02/07 00:24:59 kamil Exp $ */
|
||||
/* $NetBSD: t_ptrace_wait.c,v 1.72 2019/02/07 23:03:33 kamil Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2016 The NetBSD Foundation, Inc.
|
||||
@ -27,7 +27,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__RCSID("$NetBSD: t_ptrace_wait.c,v 1.71 2019/02/07 00:24:59 kamil Exp $");
|
||||
__RCSID("$NetBSD: t_ptrace_wait.c,v 1.72 2019/02/07 23:03:33 kamil Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/types.h>
|
||||
@ -2613,15 +2613,9 @@ BYTES_TRANSFER(bytes_transfer_piod_read_auxv, PIOD_READ_AUXV, 4096, AUXV)
|
||||
|
||||
/// ----------------------------------------------------------------------------
|
||||
|
||||
#if defined(HAVE_GPREGS)
|
||||
ATF_TC(regs1);
|
||||
ATF_TC_HEAD(regs1, tc)
|
||||
{
|
||||
atf_tc_set_md_var(tc, "descr",
|
||||
"Verify plain PT_GETREGS call without further steps");
|
||||
}
|
||||
|
||||
ATF_TC_BODY(regs1, tc)
|
||||
#if defined(HAVE_GPREGS) || defined(HAVE_FPGPREGS)
|
||||
static void
|
||||
access_regs(const char *regset, const char *aux)
|
||||
{
|
||||
const int exitval = 5;
|
||||
const int sigval = SIGSTOP;
|
||||
@ -2629,7 +2623,23 @@ ATF_TC_BODY(regs1, tc)
|
||||
#if defined(TWAIT_HAVE_STATUS)
|
||||
int status;
|
||||
#endif
|
||||
struct reg r;
|
||||
#if defined(HAVE_GPREGS)
|
||||
struct reg gpr;
|
||||
#endif
|
||||
#if defined(HAVE_FPREGS)
|
||||
struct fpreg fpr;
|
||||
#endif
|
||||
register_t rgstr;
|
||||
|
||||
#if !defined(HAVE_GPREGS)
|
||||
if (strcmp(regset, "regs") == 0)
|
||||
atf_tc_fail("Impossible test scenario!");
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_FPREGS)
|
||||
if (strcmp(regset, "fpregs") == 0)
|
||||
atf_tc_fail("Impossible test scenario!");
|
||||
#endif
|
||||
|
||||
DPRINTF("Before forking process PID=%d\n", getpid());
|
||||
SYSCALL_REQUIRE((child = fork()) != -1);
|
||||
@ -2650,287 +2660,47 @@ ATF_TC_BODY(regs1, tc)
|
||||
|
||||
validate_status_stopped(status, sigval);
|
||||
|
||||
DPRINTF("Call GETREGS for the child process\n");
|
||||
SYSCALL_REQUIRE(ptrace(PT_GETREGS, child, &r, 0) != -1);
|
||||
|
||||
DPRINTF("Before resuming the child process where it left off and "
|
||||
"without signal to be sent\n");
|
||||
SYSCALL_REQUIRE(ptrace(PT_CONTINUE, child, (void *)1, 0) != -1);
|
||||
|
||||
DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME);
|
||||
TWAIT_REQUIRE_SUCCESS(wpid = TWAIT_GENERIC(child, &status, 0), child);
|
||||
|
||||
validate_status_exited(status, exitval);
|
||||
|
||||
DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME);
|
||||
TWAIT_REQUIRE_FAILURE(ECHILD, wpid = TWAIT_GENERIC(child, &status, 0));
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_GPREGS)
|
||||
ATF_TC(regs2);
|
||||
ATF_TC_HEAD(regs2, tc)
|
||||
{
|
||||
atf_tc_set_md_var(tc, "descr",
|
||||
"Verify plain PT_GETREGS call and retrieve PC");
|
||||
}
|
||||
if (strcmp(regset, "regs") == 0) {
|
||||
DPRINTF("Call GETREGS for the child process\n");
|
||||
SYSCALL_REQUIRE(ptrace(PT_GETREGS, child, &gpr, 0) != -1);
|
||||
|
||||
ATF_TC_BODY(regs2, tc)
|
||||
{
|
||||
const int exitval = 5;
|
||||
const int sigval = SIGSTOP;
|
||||
pid_t child, wpid;
|
||||
#if defined(TWAIT_HAVE_STATUS)
|
||||
int status;
|
||||
#endif
|
||||
struct reg r;
|
||||
|
||||
DPRINTF("Before forking process PID=%d\n", getpid());
|
||||
SYSCALL_REQUIRE((child = fork()) != -1);
|
||||
if (child == 0) {
|
||||
DPRINTF("Before calling PT_TRACE_ME from child %d\n", getpid());
|
||||
FORKEE_ASSERT(ptrace(PT_TRACE_ME, 0, NULL, 0) != -1);
|
||||
|
||||
DPRINTF("Before raising %s from child\n", strsignal(sigval));
|
||||
FORKEE_ASSERT(raise(sigval) == 0);
|
||||
|
||||
DPRINTF("Before exiting of the child process\n");
|
||||
_exit(exitval);
|
||||
if (strcmp(aux, "none") == 0) {
|
||||
DPRINTF("Retrieved registers\n");
|
||||
} else if (strcmp(aux, "pc") == 0) {
|
||||
rgstr = PTRACE_REG_PC(&gpr);
|
||||
DPRINTF("Retrieved %" PRIxREGISTER "\n", rgstr);
|
||||
} else if (strcmp(aux, "set_pc") == 0) {
|
||||
rgstr = PTRACE_REG_PC(&gpr);
|
||||
PTRACE_REG_SET_PC(&gpr, rgstr);
|
||||
} else if (strcmp(aux, "sp") == 0) {
|
||||
rgstr = PTRACE_REG_SP(&gpr);
|
||||
DPRINTF("Retrieved %" PRIxREGISTER "\n", rgstr);
|
||||
} else if (strcmp(aux, "intrv") == 0) {
|
||||
rgstr = PTRACE_REG_INTRV(&gpr);
|
||||
DPRINTF("Retrieved %" PRIxREGISTER "\n", rgstr);
|
||||
} else if (strcmp(aux, "setregs") == 0) {
|
||||
DPRINTF("Call SETREGS for the child process\n");
|
||||
SYSCALL_REQUIRE(
|
||||
ptrace(PT_GETREGS, child, &gpr, 0) != -1);
|
||||
}
|
||||
}
|
||||
DPRINTF("Parent process PID=%d, child's PID=%d\n", getpid(), child);
|
||||
|
||||
DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME);
|
||||
TWAIT_REQUIRE_SUCCESS(wpid = TWAIT_GENERIC(child, &status, 0), child);
|
||||
|
||||
validate_status_stopped(status, sigval);
|
||||
|
||||
DPRINTF("Call GETREGS for the child process\n");
|
||||
SYSCALL_REQUIRE(ptrace(PT_GETREGS, child, &r, 0) != -1);
|
||||
|
||||
DPRINTF("Retrieved PC=%" PRIxREGISTER "\n", PTRACE_REG_PC(&r));
|
||||
|
||||
DPRINTF("Before resuming the child process where it left off and "
|
||||
"without signal to be sent\n");
|
||||
SYSCALL_REQUIRE(ptrace(PT_CONTINUE, child, (void *)1, 0) != -1);
|
||||
|
||||
DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME);
|
||||
TWAIT_REQUIRE_SUCCESS(wpid = TWAIT_GENERIC(child, &status, 0), child);
|
||||
|
||||
validate_status_exited(status, exitval);
|
||||
|
||||
DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME);
|
||||
TWAIT_REQUIRE_FAILURE(ECHILD, wpid = TWAIT_GENERIC(child, &status, 0));
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_GPREGS)
|
||||
ATF_TC(regs3);
|
||||
ATF_TC_HEAD(regs3, tc)
|
||||
{
|
||||
atf_tc_set_md_var(tc, "descr",
|
||||
"Verify plain PT_GETREGS call and retrieve SP");
|
||||
}
|
||||
|
||||
ATF_TC_BODY(regs3, tc)
|
||||
{
|
||||
const int exitval = 5;
|
||||
const int sigval = SIGSTOP;
|
||||
pid_t child, wpid;
|
||||
#if defined(TWAIT_HAVE_STATUS)
|
||||
int status;
|
||||
#endif
|
||||
struct reg r;
|
||||
|
||||
DPRINTF("Before forking process PID=%d\n", getpid());
|
||||
SYSCALL_REQUIRE((child = fork()) != -1);
|
||||
if (child == 0) {
|
||||
DPRINTF("Before calling PT_TRACE_ME from child %d\n", getpid());
|
||||
FORKEE_ASSERT(ptrace(PT_TRACE_ME, 0, NULL, 0) != -1);
|
||||
|
||||
DPRINTF("Before raising %s from child\n", strsignal(sigval));
|
||||
FORKEE_ASSERT(raise(sigval) == 0);
|
||||
|
||||
DPRINTF("Before exiting of the child process\n");
|
||||
_exit(exitval);
|
||||
}
|
||||
DPRINTF("Parent process PID=%d, child's PID=%d\n", getpid(), child);
|
||||
|
||||
DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME);
|
||||
TWAIT_REQUIRE_SUCCESS(wpid = TWAIT_GENERIC(child, &status, 0), child);
|
||||
|
||||
validate_status_stopped(status, sigval);
|
||||
|
||||
DPRINTF("Call GETREGS for the child process\n");
|
||||
SYSCALL_REQUIRE(ptrace(PT_GETREGS, child, &r, 0) != -1);
|
||||
|
||||
DPRINTF("Retrieved SP=%" PRIxREGISTER "\n", PTRACE_REG_SP(&r));
|
||||
|
||||
DPRINTF("Before resuming the child process where it left off and "
|
||||
"without signal to be sent\n");
|
||||
SYSCALL_REQUIRE(ptrace(PT_CONTINUE, child, (void *)1, 0) != -1);
|
||||
|
||||
DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME);
|
||||
TWAIT_REQUIRE_SUCCESS(wpid = TWAIT_GENERIC(child, &status, 0), child);
|
||||
|
||||
validate_status_exited(status, exitval);
|
||||
|
||||
DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME);
|
||||
TWAIT_REQUIRE_FAILURE(ECHILD, wpid = TWAIT_GENERIC(child, &status, 0));
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_GPREGS)
|
||||
ATF_TC(regs4);
|
||||
ATF_TC_HEAD(regs4, tc)
|
||||
{
|
||||
atf_tc_set_md_var(tc, "descr",
|
||||
"Verify plain PT_GETREGS call and retrieve INTRV");
|
||||
}
|
||||
|
||||
ATF_TC_BODY(regs4, tc)
|
||||
{
|
||||
const int exitval = 5;
|
||||
const int sigval = SIGSTOP;
|
||||
pid_t child, wpid;
|
||||
#if defined(TWAIT_HAVE_STATUS)
|
||||
int status;
|
||||
#endif
|
||||
struct reg r;
|
||||
|
||||
DPRINTF("Before forking process PID=%d\n", getpid());
|
||||
SYSCALL_REQUIRE((child = fork()) != -1);
|
||||
if (child == 0) {
|
||||
DPRINTF("Before calling PT_TRACE_ME from child %d\n", getpid());
|
||||
FORKEE_ASSERT(ptrace(PT_TRACE_ME, 0, NULL, 0) != -1);
|
||||
|
||||
DPRINTF("Before raising %s from child\n", strsignal(sigval));
|
||||
FORKEE_ASSERT(raise(sigval) == 0);
|
||||
|
||||
DPRINTF("Before exiting of the child process\n");
|
||||
_exit(exitval);
|
||||
}
|
||||
DPRINTF("Parent process PID=%d, child's PID=%d\n", getpid(), child);
|
||||
|
||||
DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME);
|
||||
TWAIT_REQUIRE_SUCCESS(wpid = TWAIT_GENERIC(child, &status, 0), child);
|
||||
|
||||
validate_status_stopped(status, sigval);
|
||||
|
||||
DPRINTF("Call GETREGS for the child process\n");
|
||||
SYSCALL_REQUIRE(ptrace(PT_GETREGS, child, &r, 0) != -1);
|
||||
|
||||
DPRINTF("Retrieved INTRV=%" PRIxREGISTER "\n", PTRACE_REG_INTRV(&r));
|
||||
|
||||
DPRINTF("Before resuming the child process where it left off and "
|
||||
"without signal to be sent\n");
|
||||
SYSCALL_REQUIRE(ptrace(PT_CONTINUE, child, (void *)1, 0) != -1);
|
||||
|
||||
DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME);
|
||||
TWAIT_REQUIRE_SUCCESS(wpid = TWAIT_GENERIC(child, &status, 0), child);
|
||||
|
||||
validate_status_exited(status, exitval);
|
||||
|
||||
DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME);
|
||||
TWAIT_REQUIRE_FAILURE(ECHILD, wpid = TWAIT_GENERIC(child, &status, 0));
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_GPREGS)
|
||||
ATF_TC(regs5);
|
||||
ATF_TC_HEAD(regs5, tc)
|
||||
{
|
||||
atf_tc_set_md_var(tc, "descr",
|
||||
"Verify PT_GETREGS and PT_SETREGS calls without changing regs");
|
||||
}
|
||||
|
||||
ATF_TC_BODY(regs5, tc)
|
||||
{
|
||||
const int exitval = 5;
|
||||
const int sigval = SIGSTOP;
|
||||
pid_t child, wpid;
|
||||
#if defined(TWAIT_HAVE_STATUS)
|
||||
int status;
|
||||
#endif
|
||||
struct reg r;
|
||||
|
||||
DPRINTF("Before forking process PID=%d\n", getpid());
|
||||
SYSCALL_REQUIRE((child = fork()) != -1);
|
||||
if (child == 0) {
|
||||
DPRINTF("Before calling PT_TRACE_ME from child %d\n", getpid());
|
||||
FORKEE_ASSERT(ptrace(PT_TRACE_ME, 0, NULL, 0) != -1);
|
||||
|
||||
DPRINTF("Before raising %s from child\n", strsignal(sigval));
|
||||
FORKEE_ASSERT(raise(sigval) == 0);
|
||||
|
||||
DPRINTF("Before exiting of the child process\n");
|
||||
_exit(exitval);
|
||||
}
|
||||
DPRINTF("Parent process PID=%d, child's PID=%d\n", getpid(), child);
|
||||
|
||||
DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME);
|
||||
TWAIT_REQUIRE_SUCCESS(wpid = TWAIT_GENERIC(child, &status, 0), child);
|
||||
|
||||
validate_status_stopped(status, sigval);
|
||||
|
||||
DPRINTF("Call GETREGS for the child process\n");
|
||||
SYSCALL_REQUIRE(ptrace(PT_GETREGS, child, &r, 0) != -1);
|
||||
|
||||
DPRINTF("Call SETREGS for the child process (without changed regs)\n");
|
||||
SYSCALL_REQUIRE(ptrace(PT_GETREGS, child, &r, 0) != -1);
|
||||
|
||||
DPRINTF("Before resuming the child process where it left off and "
|
||||
"without signal to be sent\n");
|
||||
SYSCALL_REQUIRE(ptrace(PT_CONTINUE, child, (void *)1, 0) != -1);
|
||||
|
||||
DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME);
|
||||
TWAIT_REQUIRE_SUCCESS(wpid = TWAIT_GENERIC(child, &status, 0), child);
|
||||
|
||||
validate_status_exited(status, exitval);
|
||||
|
||||
DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME);
|
||||
TWAIT_REQUIRE_FAILURE(ECHILD, wpid = TWAIT_GENERIC(child, &status, 0));
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_FPREGS)
|
||||
ATF_TC(fpregs1);
|
||||
ATF_TC_HEAD(fpregs1, tc)
|
||||
{
|
||||
atf_tc_set_md_var(tc, "descr",
|
||||
"Verify plain PT_GETFPREGS call without further steps");
|
||||
}
|
||||
if (strcmp(regset, "fpregs") == 0) {
|
||||
DPRINTF("Call GETFPREGS for the child process\n");
|
||||
SYSCALL_REQUIRE(ptrace(PT_GETFPREGS, child, &fpr, 0) != -1);
|
||||
|
||||
ATF_TC_BODY(fpregs1, tc)
|
||||
{
|
||||
const int exitval = 5;
|
||||
const int sigval = SIGSTOP;
|
||||
pid_t child, wpid;
|
||||
#if defined(TWAIT_HAVE_STATUS)
|
||||
int status;
|
||||
#endif
|
||||
struct fpreg r;
|
||||
|
||||
DPRINTF("Before forking process PID=%d\n", getpid());
|
||||
SYSCALL_REQUIRE((child = fork()) != -1);
|
||||
if (child == 0) {
|
||||
DPRINTF("Before calling PT_TRACE_ME from child %d\n", getpid());
|
||||
FORKEE_ASSERT(ptrace(PT_TRACE_ME, 0, NULL, 0) != -1);
|
||||
|
||||
DPRINTF("Before raising %s from child\n", strsignal(sigval));
|
||||
FORKEE_ASSERT(raise(sigval) == 0);
|
||||
|
||||
DPRINTF("Before exiting of the child process\n");
|
||||
_exit(exitval);
|
||||
if (strcmp(aux, "getfpregs") == 0) {
|
||||
DPRINTF("Retrieved FP registers\n");
|
||||
} else if (strcmp(aux, "setfpregs") == 0) {
|
||||
DPRINTF("Call SETFPREGS for the child\n");
|
||||
SYSCALL_REQUIRE(
|
||||
ptrace(PT_SETFPREGS, child, &fpr, 0) != -1);
|
||||
}
|
||||
}
|
||||
DPRINTF("Parent process PID=%d, child's PID=%d\n", getpid(), child);
|
||||
|
||||
DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME);
|
||||
TWAIT_REQUIRE_SUCCESS(wpid = TWAIT_GENERIC(child, &status, 0), child);
|
||||
|
||||
validate_status_stopped(status, sigval);
|
||||
|
||||
DPRINTF("Call GETFPREGS for the child process\n");
|
||||
SYSCALL_REQUIRE(ptrace(PT_GETFPREGS, child, &r, 0) != -1);
|
||||
#endif
|
||||
|
||||
DPRINTF("Before resuming the child process where it left off and "
|
||||
"without signal to be sent\n");
|
||||
@ -2944,65 +2714,36 @@ ATF_TC_BODY(fpregs1, tc)
|
||||
DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME);
|
||||
TWAIT_REQUIRE_FAILURE(ECHILD, wpid = TWAIT_GENERIC(child, &status, 0));
|
||||
}
|
||||
|
||||
#define ACCESS_REGS(test, regset, aux) \
|
||||
ATF_TC(test); \
|
||||
ATF_TC_HEAD(test, tc) \
|
||||
{ \
|
||||
atf_tc_set_md_var(tc, "descr", \
|
||||
"Verify " regset " with auxiliary operation: " aux); \
|
||||
} \
|
||||
\
|
||||
ATF_TC_BODY(test, tc) \
|
||||
{ \
|
||||
\
|
||||
access_regs(regset, aux); \
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_GPREGS)
|
||||
ACCESS_REGS(access_regs1, "regs", "none")
|
||||
ACCESS_REGS(access_regs2, "regs", "pc")
|
||||
ACCESS_REGS(access_regs3, "regs", "set_pc")
|
||||
ACCESS_REGS(access_regs4, "regs", "sp")
|
||||
ACCESS_REGS(access_regs5, "regs", "intrv")
|
||||
ACCESS_REGS(access_regs6, "regs", "setregs")
|
||||
#endif
|
||||
#if defined(HAVE_FPREGS)
|
||||
ATF_TC(fpregs2);
|
||||
ATF_TC_HEAD(fpregs2, tc)
|
||||
{
|
||||
atf_tc_set_md_var(tc, "descr",
|
||||
"Verify PT_GETFPREGS and PT_SETFPREGS calls without changing "
|
||||
"regs");
|
||||
}
|
||||
|
||||
ATF_TC_BODY(fpregs2, tc)
|
||||
{
|
||||
const int exitval = 5;
|
||||
const int sigval = SIGSTOP;
|
||||
pid_t child, wpid;
|
||||
#if defined(TWAIT_HAVE_STATUS)
|
||||
int status;
|
||||
ACCESS_REGS(access_fpregs1, "fpregs", "getfpregs")
|
||||
ACCESS_REGS(access_fpregs2, "fpregs", "setfpregs")
|
||||
#endif
|
||||
struct fpreg r;
|
||||
|
||||
DPRINTF("Before forking process PID=%d\n", getpid());
|
||||
SYSCALL_REQUIRE((child = fork()) != -1);
|
||||
if (child == 0) {
|
||||
DPRINTF("Before calling PT_TRACE_ME from child %d\n", getpid());
|
||||
FORKEE_ASSERT(ptrace(PT_TRACE_ME, 0, NULL, 0) != -1);
|
||||
|
||||
DPRINTF("Before raising %s from child\n", strsignal(sigval));
|
||||
FORKEE_ASSERT(raise(sigval) == 0);
|
||||
|
||||
DPRINTF("Before exiting of the child process\n");
|
||||
_exit(exitval);
|
||||
}
|
||||
DPRINTF("Parent process PID=%d, child's PID=%d\n", getpid(), child);
|
||||
|
||||
DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME);
|
||||
TWAIT_REQUIRE_SUCCESS(wpid = TWAIT_GENERIC(child, &status, 0), child);
|
||||
|
||||
validate_status_stopped(status, sigval);
|
||||
|
||||
DPRINTF("Call GETFPREGS for the child process\n");
|
||||
SYSCALL_REQUIRE(ptrace(PT_GETFPREGS, child, &r, 0) != -1);
|
||||
|
||||
DPRINTF("Call SETFPREGS for the child (without changed regs)\n");
|
||||
SYSCALL_REQUIRE(ptrace(PT_SETFPREGS, child, &r, 0) != -1);
|
||||
|
||||
DPRINTF("Before resuming the child process where it left off and "
|
||||
"without signal to be sent\n");
|
||||
SYSCALL_REQUIRE(ptrace(PT_CONTINUE, child, (void *)1, 0) != -1);
|
||||
|
||||
DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME);
|
||||
TWAIT_REQUIRE_SUCCESS(wpid = TWAIT_GENERIC(child, &status, 0), child);
|
||||
|
||||
validate_status_exited(status, exitval);
|
||||
|
||||
DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME);
|
||||
TWAIT_REQUIRE_FAILURE(ECHILD, wpid = TWAIT_GENERIC(child, &status, 0));
|
||||
}
|
||||
#endif
|
||||
/// ----------------------------------------------------------------------------
|
||||
|
||||
#if defined(PT_STEP)
|
||||
static void
|
||||
@ -5844,14 +5585,15 @@ ATF_TP_ADD_TCS(tp)
|
||||
|
||||
ATF_TP_ADD_TC(tp, bytes_transfer_piod_read_auxv);
|
||||
|
||||
ATF_TP_ADD_TC_HAVE_GPREGS(tp, regs1);
|
||||
ATF_TP_ADD_TC_HAVE_GPREGS(tp, regs2);
|
||||
ATF_TP_ADD_TC_HAVE_GPREGS(tp, regs3);
|
||||
ATF_TP_ADD_TC_HAVE_GPREGS(tp, regs4);
|
||||
ATF_TP_ADD_TC_HAVE_GPREGS(tp, regs5);
|
||||
ATF_TP_ADD_TC_HAVE_GPREGS(tp, access_regs1);
|
||||
ATF_TP_ADD_TC_HAVE_GPREGS(tp, access_regs2);
|
||||
ATF_TP_ADD_TC_HAVE_GPREGS(tp, access_regs3);
|
||||
ATF_TP_ADD_TC_HAVE_GPREGS(tp, access_regs4);
|
||||
ATF_TP_ADD_TC_HAVE_GPREGS(tp, access_regs5);
|
||||
ATF_TP_ADD_TC_HAVE_GPREGS(tp, access_regs6);
|
||||
|
||||
ATF_TP_ADD_TC_HAVE_FPREGS(tp, fpregs1);
|
||||
ATF_TP_ADD_TC_HAVE_FPREGS(tp, fpregs2);
|
||||
ATF_TP_ADD_TC_HAVE_FPREGS(tp, access_fpregs1);
|
||||
ATF_TP_ADD_TC_HAVE_FPREGS(tp, access_fpregs2);
|
||||
|
||||
ATF_TP_ADD_TC_PT_STEP(tp, step1);
|
||||
ATF_TP_ADD_TC_PT_STEP(tp, step2);
|
||||
|
Loading…
Reference in New Issue
Block a user