aboutsummaryrefslogtreecommitdiff
path: root/libsframe/testsuite
diff options
context:
space:
mode:
Diffstat (limited to 'libsframe/testsuite')
-rw-r--r--libsframe/testsuite/libsframe.decode/be-flipping.c16
-rw-r--r--libsframe/testsuite/libsframe.decode/frecnt-1.c16
-rw-r--r--libsframe/testsuite/libsframe.decode/frecnt-2.c17
-rw-r--r--libsframe/testsuite/libsframe.decode/local.mk12
-rw-r--r--libsframe/testsuite/libsframe.encode/encode-1.c70
-rw-r--r--libsframe/testsuite/libsframe.encode/local.mk4
-rw-r--r--libsframe/testsuite/libsframe.find/findfre-1.c22
-rw-r--r--libsframe/testsuite/libsframe.find/findfunc-1.c27
-rw-r--r--libsframe/testsuite/libsframe.find/local.mk16
-rw-r--r--libsframe/testsuite/libsframe.find/plt-findfre-1.c12
-rw-r--r--libsframe/testsuite/libsframe.find/plt-findfre-2.c12
-rw-r--r--libsframe/testsuite/local.mk3
-rw-r--r--libsframe/testsuite/sframe-test.h43
13 files changed, 138 insertions, 132 deletions
diff --git a/libsframe/testsuite/libsframe.decode/be-flipping.c b/libsframe/testsuite/libsframe.decode/be-flipping.c
index 5002524..c8b627b 100644
--- a/libsframe/testsuite/libsframe.decode/be-flipping.c
+++ b/libsframe/testsuite/libsframe.decode/be-flipping.c
@@ -15,17 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here. */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
/* SFrame info from the following source (1 fde 5 fres):
static int cnt;
@@ -55,6 +45,7 @@ main (void)
struct stat st;
char *sf_buf;
size_t sf_size;
+ uint8_t rep_block_size;
#define TEST(name, cond) \
do \
@@ -101,7 +92,8 @@ main (void)
unsigned int fde_cnt = sframe_decoder_get_num_fidx (dctx);
TEST ("be-flipping: Decoder FDE count", fde_cnt == 1);
- err = sframe_decoder_get_funcdesc (dctx, 0, &nfres, &fsize, &fstart, &finfo);
+ err = sframe_decoder_get_funcdesc_v2 (dctx, 0, &nfres, &fsize, &fstart,
+ &finfo, &rep_block_size);
TEST ("be-flipping: Decoder get FDE", err == 0);
TEST ("be-flipping: Decoder FRE count", nfres == 5);
diff --git a/libsframe/testsuite/libsframe.decode/frecnt-1.c b/libsframe/testsuite/libsframe.decode/frecnt-1.c
index 77b0440..9cf55ef 100644
--- a/libsframe/testsuite/libsframe.decode/frecnt-1.c
+++ b/libsframe/testsuite/libsframe.decode/frecnt-1.c
@@ -15,17 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here. */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
/*
* SFrame info from the following source (1 fde 4 fres):
@@ -46,6 +36,7 @@ main (void)
struct stat st;
char *sf_buf;
size_t sf_size;
+ uint8_t rep_block_size;
#define TEST(name, cond) \
do \
@@ -85,7 +76,8 @@ main (void)
unsigned int fde_cnt = sframe_decoder_get_num_fidx (dctx);
TEST ("frecnt-1: Decoder FDE count", fde_cnt == 1);
- err = sframe_decoder_get_funcdesc (dctx, 0, &nfres, &fsize, &fstart, &finfo);
+ err = sframe_decoder_get_funcdesc_v2 (dctx, 0, &nfres, &fsize, &fstart,
+ &finfo, &rep_block_size);
TEST ("frecnt-1: Decoder get FDE", err == 0);
TEST ("frecnt-1: Decoder FRE count", nfres == 4);
diff --git a/libsframe/testsuite/libsframe.decode/frecnt-2.c b/libsframe/testsuite/libsframe.decode/frecnt-2.c
index 912fdbd..9136e9a 100644
--- a/libsframe/testsuite/libsframe.decode/frecnt-2.c
+++ b/libsframe/testsuite/libsframe.decode/frecnt-2.c
@@ -15,17 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here. */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
/*
* SFrame info from the following source (2 fde 8 fres):
@@ -48,6 +38,7 @@ main (void)
struct stat st;
char *sf_buf;
size_t sf_size;
+ uint8_t rep_block_size;
#define TEST(name, cond) \
do \
@@ -88,8 +79,8 @@ main (void)
for (i = 0; i < fde_cnt; ++i)
{
- err = sframe_decoder_get_funcdesc (dctx, i, &nfres, &fsize, &fstart,
- &finfo);
+ err = sframe_decoder_get_funcdesc_v2 (dctx, i, &nfres, &fsize, &fstart,
+ &finfo, &rep_block_size);
TEST ("frecnt-2: Decode get FDE", err == 0);
TEST ("frecnt-2: Decode get FRE", nfres == 4);
}
diff --git a/libsframe/testsuite/libsframe.decode/local.mk b/libsframe/testsuite/libsframe.decode/local.mk
index 0e4279b..de34bbc 100644
--- a/libsframe/testsuite/libsframe.decode/local.mk
+++ b/libsframe/testsuite/libsframe.decode/local.mk
@@ -4,13 +4,13 @@ if HAVE_COMPAT_DEJAGNU
endif
%C%_be_flipping_SOURCES = %D%/be-flipping.c
-%C%_be_flipping_LDADD = ${top_builddir}/libsframe.la
-%C%_be_flipping_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_be_flipping_LDADD = $(testsuite_LDADD)
+%C%_be_flipping_CPPFLAGS = $(testsuite_CPPFLAGS)
%C%_frecnt_1_SOURCES = %D%/frecnt-1.c
-%C%_frecnt_1_LDADD = ${top_builddir}/libsframe.la
-%C%_frecnt_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_frecnt_1_LDADD = $(testsuite_LDADD)
+%C%_frecnt_1_CPPFLAGS = $(testsuite_CPPFLAGS)
%C%_frecnt_2_SOURCES = %D%/frecnt-2.c
-%C%_frecnt_2_LDADD = ${top_builddir}/libsframe.la
-%C%_frecnt_2_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_frecnt_2_LDADD = $(testsuite_LDADD)
+%C%_frecnt_2_CPPFLAGS = $(testsuite_CPPFLAGS)
diff --git a/libsframe/testsuite/libsframe.encode/encode-1.c b/libsframe/testsuite/libsframe.encode/encode-1.c
index 1ba75d7..da477e5 100644
--- a/libsframe/testsuite/libsframe.encode/encode-1.c
+++ b/libsframe/testsuite/libsframe.encode/encode-1.c
@@ -15,22 +15,13 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here. */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
static int
-add_fde1 (sframe_encoder_ctx *encode, int idx)
+add_fde1 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
+ uint32_t sframe_vaddr, int idx, uint32_t *func_size)
{
- int i, err;
+#define FDE1_NUM_FRES 4
/* A contiguous block containing 4 FREs. */
sframe_frame_row_entry fres[]
= { {0x0, {0x8, 0, 0}, 0x3},
@@ -38,40 +29,60 @@ add_fde1 (sframe_encoder_ctx *encode, int idx)
{0x4, {0x10, 0xf0, 0}, 0x4},
{0x1a, {0x8, 0xf0, 0}, 0x5}
};
-
+ /* Function size in bytes. P.S. Must be a value greater than the
+ fre_start_addr of the last FRE above (0x1a). */
+ *func_size = 0x1b;
+
+ uint32_t offsetof_fde_in_sec
+ = sframe_encoder_get_offsetof_fde_start_addr (encode, idx, NULL);
+ int32_t func1_start_addr = (start_pc_vaddr
+ - (sframe_vaddr + offsetof_fde_in_sec));
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCINC);
- err = sframe_encoder_add_funcdesc (encode, 0xfffff022, 0x1b, finfo, 4);
+ int err = sframe_encoder_add_funcdesc_v2 (encode, func1_start_addr,
+ *func_size, finfo, 0,
+ FDE1_NUM_FRES);
if (err == -1)
return err;
- for (i = 0; i < 4; i++)
- if (sframe_encoder_add_fre (encode, idx,fres+i) == SFRAME_ERR)
+ for (unsigned int i = 0; i < FDE1_NUM_FRES; i++)
+ if (sframe_encoder_add_fre (encode, idx, fres + i) == SFRAME_ERR)
return -1;
return 0;
}
static int
-add_fde2 (sframe_encoder_ctx *encode, int idx)
+add_fde2 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
+ uint32_t sframe_vaddr, int idx, uint32_t *func_size)
+
{
- int i, err;
/* A contiguous block containing 4 FREs. */
+#define FDE2_NUM_FRES 4
sframe_frame_row_entry fres[]
= { {0x0, {0x8, 0, 0}, 0x3},
{0x1, {0x10, 0xf0, 0}, 0x5},
{0x4, {0x10, 0xf0, 0}, 0x4},
{0xf, {0x8, 0xf0, 0}, 0x5}
};
-
+ /* Function size in bytes. P.S. Must be a value greater than the
+ fre_start_addr of the last FRE above (0xf). */
+ *func_size = 0x10;
+
+ uint32_t offsetof_fde_in_sec
+ = sframe_encoder_get_offsetof_fde_start_addr (encode, idx, NULL);
+ int32_t func1_start_addr = (start_pc_vaddr
+ - (sframe_vaddr + offsetof_fde_in_sec));
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCINC);
- err = sframe_encoder_add_funcdesc (encode, 0xfffff029, 0x10, finfo, 4);
+ int err = sframe_encoder_add_funcdesc_v2 (encode, func1_start_addr,
+ *func_size, finfo, 0,
+ FDE1_NUM_FRES);
if (err == -1)
return err;
- for (i = 0; i < 4; i++)
- if (sframe_encoder_add_fre (encode, idx, fres+i) == SFRAME_ERR)
+ for (unsigned int i = 0; i < FDE1_NUM_FRES; i++)
+ if (sframe_encoder_add_fre (encode, idx, fres + i) == SFRAME_ERR)
return -1;
return 0;
@@ -129,6 +140,11 @@ int main (void)
{
sframe_encoder_ctx *encode;
sframe_frame_row_entry frep;
+ uint32_t sframe_vaddr;
+ uint32_t func1_start_vaddr;
+ uint32_t func2_start_vaddr;
+ uint32_t func1_size = 0;
+ uint32_t func2_size = 0;
char *sframe_buf;
size_t sf_size;
int err = 0;
@@ -145,6 +161,7 @@ int main (void)
} \
while (0)
+ sframe_vaddr = 0x4020c8;
encode = sframe_encode (SFRAME_VERSION,
SFRAME_F_FDE_FUNC_START_PCREL,
SFRAME_ABI_AMD64_ENDIAN_LITTLE,
@@ -158,10 +175,13 @@ int main (void)
err = sframe_encoder_add_fre (encode, 1, &frep);
TEST ("encode-1: Encoder update workflow", err == SFRAME_ERR);
- err = add_fde1 (encode, 0);
+ func1_start_vaddr = 0x401106;
+ err = add_fde1 (encode, func1_start_vaddr, sframe_vaddr, 0, &func1_size);
TEST ("encode-1: Encoder adding FDE1", err == 0);
- err = add_fde2 (encode, 1);
+ /* Function 2 is placed after 0x0 bytes from the end of Function 1. */
+ func2_start_vaddr = func1_start_vaddr + func1_size + 0x0;
+ err = add_fde2 (encode, func2_start_vaddr, sframe_vaddr, 1, &func2_size);
TEST ("encode-1: Encoder adding FDE2", err == 0);
fde_cnt = sframe_encoder_get_num_fidx (encode);
diff --git a/libsframe/testsuite/libsframe.encode/local.mk b/libsframe/testsuite/libsframe.encode/local.mk
index 477d4b6..6b09651 100644
--- a/libsframe/testsuite/libsframe.encode/local.mk
+++ b/libsframe/testsuite/libsframe.encode/local.mk
@@ -3,5 +3,5 @@ if HAVE_COMPAT_DEJAGNU
endif
%C%_encode_1_SOURCES = %D%/encode-1.c
-%C%_encode_1_LDADD = ${top_builddir}/libsframe.la
-%C%_encode_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_encode_1_LDADD = $(testsuite_LDADD)
+%C%_encode_1_CPPFLAGS = $(testsuite_CPPFLAGS)
diff --git a/libsframe/testsuite/libsframe.find/findfre-1.c b/libsframe/testsuite/libsframe.find/findfre-1.c
index 7c7c947..cbd7ab3 100644
--- a/libsframe/testsuite/libsframe.find/findfre-1.c
+++ b/libsframe/testsuite/libsframe.find/findfre-1.c
@@ -15,17 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here. */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
static int
add_fde1 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
@@ -49,8 +39,9 @@ add_fde1 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
- (sframe_vaddr + offsetof_fde_in_sec));
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCINC);
- int err = sframe_encoder_add_funcdesc (encode, func1_start_addr, *func_size,
- finfo, FDE1_NUM_FRES);
+ int err = sframe_encoder_add_funcdesc_v2 (encode, func1_start_addr,
+ *func_size, finfo, 0,
+ FDE1_NUM_FRES);
if (err == -1)
return err;
@@ -83,8 +74,9 @@ add_fde2 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
- (sframe_vaddr + offsetof_fde_in_sec));
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCINC);
- int err = sframe_encoder_add_funcdesc (encode, func2_start_addr, *func_size,
- finfo, FDE2_NUM_FRES);
+ int err = sframe_encoder_add_funcdesc_v2 (encode, func2_start_addr,
+ *func_size, finfo, 0,
+ FDE2_NUM_FRES);
if (err == -1)
return err;
diff --git a/libsframe/testsuite/libsframe.find/findfunc-1.c b/libsframe/testsuite/libsframe.find/findfunc-1.c
index 00b9e8d..1dcd870 100644
--- a/libsframe/testsuite/libsframe.find/findfunc-1.c
+++ b/libsframe/testsuite/libsframe.find/findfunc-1.c
@@ -22,17 +22,7 @@
The tests in here stress the sframe_get_funcdesc_with_addr API via calls to
the sframe_find_fre (). */
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here. */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
static int
add_fde1 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
@@ -56,8 +46,9 @@ add_fde1 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
- (sframe_vaddr + offsetof_fde_in_sec));
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCINC);
- int err = sframe_encoder_add_funcdesc (encode, func1_start_addr, *func_size,
- finfo, FDE1_NUM_FRES);
+ int err = sframe_encoder_add_funcdesc_v2 (encode, func1_start_addr,
+ *func_size, finfo, 0,
+ FDE1_NUM_FRES);
if (err == -1)
return err;
@@ -90,8 +81,9 @@ add_fde2 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
- (sframe_vaddr + offsetof_fde_in_sec));
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCINC);
- int err = sframe_encoder_add_funcdesc (encode, func2_start_addr, *func_size,
- finfo, FDE2_NUM_FRES);
+ int err = sframe_encoder_add_funcdesc_v2 (encode, func2_start_addr,
+ *func_size, finfo, 0,
+ FDE2_NUM_FRES);
if (err == -1)
return err;
@@ -124,8 +116,9 @@ add_fde3 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
- (sframe_vaddr + offsetof_fde_in_sec));
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCINC);
- int err = sframe_encoder_add_funcdesc (encode, func3_start_addr, *func_size,
- finfo, FDE3_NUM_FRES);
+ int err = sframe_encoder_add_funcdesc_v2 (encode, func3_start_addr,
+ *func_size, finfo, 0,
+ FDE3_NUM_FRES);
if (err == -1)
return err;
diff --git a/libsframe/testsuite/libsframe.find/local.mk b/libsframe/testsuite/libsframe.find/local.mk
index 52741e8..05c7a10 100644
--- a/libsframe/testsuite/libsframe.find/local.mk
+++ b/libsframe/testsuite/libsframe.find/local.mk
@@ -4,17 +4,17 @@ if HAVE_COMPAT_DEJAGNU
endif
%C%_findfre_1_SOURCES = %D%/findfre-1.c
-%C%_findfre_1_LDADD = ${top_builddir}/libsframe.la
-%C%_findfre_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_findfre_1_LDADD = $(testsuite_LDADD)
+%C%_findfre_1_CPPFLAGS = $(testsuite_CPPFLAGS)
%C%_findfunc_1_SOURCES = %D%/findfunc-1.c
-%C%_findfunc_1_LDADD = ${top_builddir}/libsframe.la
-%C%_findfunc_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_findfunc_1_LDADD = $(testsuite_LDADD)
+%C%_findfunc_1_CPPFLAGS = $(testsuite_CPPFLAGS)
%C%_plt_findfre_1_SOURCES = %D%/plt-findfre-1.c
-%C%_plt_findfre_1_LDADD = ${top_builddir}/libsframe.la
-%C%_plt_findfre_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_plt_findfre_1_LDADD = $(testsuite_LDADD)
+%C%_plt_findfre_1_CPPFLAGS = $(testsuite_CPPFLAGS)
%C%_plt_findfre_2_SOURCES = %D%/plt-findfre-2.c
-%C%_plt_findfre_2_LDADD = ${top_builddir}/libsframe.la
-%C%_plt_findfre_2_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_plt_findfre_2_LDADD = $(testsuite_LDADD)
+%C%_plt_findfre_2_CPPFLAGS = $(testsuite_CPPFLAGS)
diff --git a/libsframe/testsuite/libsframe.find/plt-findfre-1.c b/libsframe/testsuite/libsframe.find/plt-findfre-1.c
index 91da4bc..b41588a 100644
--- a/libsframe/testsuite/libsframe.find/plt-findfre-1.c
+++ b/libsframe/testsuite/libsframe.find/plt-findfre-1.c
@@ -15,17 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here. */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
static int
add_plt_fde1 (sframe_encoder_ctx *ectx, uint32_t plt_vaddr,
diff --git a/libsframe/testsuite/libsframe.find/plt-findfre-2.c b/libsframe/testsuite/libsframe.find/plt-findfre-2.c
index 00a5b2a..61f04f0 100644
--- a/libsframe/testsuite/libsframe.find/plt-findfre-2.c
+++ b/libsframe/testsuite/libsframe.find/plt-findfre-2.c
@@ -16,17 +16,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here. */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
/* s390x-specific size in bytes of plt0 and pltN. */
#define PLT_SIZE 32
diff --git a/libsframe/testsuite/local.mk b/libsframe/testsuite/local.mk
index 5e5ba92..4f2ea9b 100644
--- a/libsframe/testsuite/local.mk
+++ b/libsframe/testsuite/local.mk
@@ -19,6 +19,9 @@ check-DEJAGNU: site.exp
else echo "WARNING: could not find \`runtest'" 1>&2; :;\
fi
+testsuite_LDADD = $(top_builddir)/libsframe.la
+testsuite_CPPFLAGS = -I$(srcdir)/testsuite -I$(srcdir)/../include
+
# libsframe encoder/decoder/find testsuite
include %D%/libsframe.decode/local.mk
include %D%/libsframe.encode/local.mk
diff --git a/libsframe/testsuite/sframe-test.h b/libsframe/testsuite/sframe-test.h
new file mode 100644
index 0000000..d5db96b
--- /dev/null
+++ b/libsframe/testsuite/sframe-test.h
@@ -0,0 +1,43 @@
+/* sframe-test.h -- Common libsframe testsuite header.
+
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef _SFRAME_TEST_H
+#define _SFRAME_TEST_H
+
+#include "config.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+
+#include "sframe-api.h"
+
+/* DejaGnu should not use gnulib's vsnprintf replacement here. */
+#undef vsnprintf
+
+/* PR 33168: Solaris <sys/wait.h> with __EXTENSIONS__ defined gets a
+ declaration of wait(). This conflicts with <dejagnu.h>'s wait
+ definition that is only removed after DejaGnu 1.6.3. */
+
+#define wait dg_wait
+/* Add prototype to avoid warning. */
+void wait (void);
+#include <dejagnu.h>
+#undef wait
+
+#endif /* _SFRAME_TEST_H */