diff options
Diffstat (limited to 'libsframe/testsuite')
-rw-r--r-- | libsframe/testsuite/config/default.exp | 54 | ||||
-rw-r--r-- | libsframe/testsuite/libsframe.decode/DATA-BE | bin | 0 -> 64 bytes | |||
-rw-r--r-- | libsframe/testsuite/libsframe.decode/DATA1 | bin | 0 -> 60 bytes | |||
-rw-r--r-- | libsframe/testsuite/libsframe.decode/DATA2 | bin | 0 -> 92 bytes | |||
-rw-r--r-- | libsframe/testsuite/libsframe.decode/be-flipping.c | 115 | ||||
-rw-r--r-- | libsframe/testsuite/libsframe.decode/decode.exp | 50 | ||||
-rw-r--r-- | libsframe/testsuite/libsframe.decode/frecnt-1.c | 99 | ||||
-rw-r--r-- | libsframe/testsuite/libsframe.decode/frecnt-2.c | 104 | ||||
-rw-r--r-- | libsframe/testsuite/libsframe.decode/local.mk | 16 | ||||
-rw-r--r-- | libsframe/testsuite/libsframe.encode/encode-1.c | 177 | ||||
-rw-r--r-- | libsframe/testsuite/libsframe.encode/encode.exp | 37 | ||||
-rw-r--r-- | libsframe/testsuite/libsframe.encode/local.mk | 7 | ||||
-rw-r--r-- | libsframe/testsuite/local.mk | 24 |
13 files changed, 683 insertions, 0 deletions
diff --git a/libsframe/testsuite/config/default.exp b/libsframe/testsuite/config/default.exp new file mode 100644 index 0000000..c45e25d --- /dev/null +++ b/libsframe/testsuite/config/default.exp @@ -0,0 +1,54 @@ +# Basic expect script for libsframe decoder tests. +# Copyright (C) 2022 Free Software Foundation, Inc. +# +# This file is part of the GNU Binutils. +# +# This file 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, +# MA 02110-1301, USA. +# +# Written by Jeffrey Wheat (cassidy@cygnus.com) +# + +if ![info exists ld] then { + set ld [findfile $base_dir/../ld/ld-new $base_dir/../ld/ld-new [transform ld]] +} + +if ![info exists as] then { + set as [findfile $base_dir/../gas/as-new $base_dir/../gas/as-new [transform as]] +} + +remote_exec host "mkdir -p tmpdir" + +# Make symlinks from tmpdir/libsframe to the linker and assembler in the +# build tree, so that we can use a -B option to gcc to force it to use +# the newly built linker and assembler. +if {![file isdirectory tmpdir/libsframe]} then { + catch "exec mkdir tmpdir/libsframe" status + catch "exec ln -s ../../../ld/ld-new tmpdir/libsframe/ld" status + catch "exec ln -s ld tmpdir/libsframe/collect-ld" status + catch "exec ln -s ../../../gas/as-new tmpdir/libsframe/as" status +} +set gcc_B_opt "-B[pwd]/tmpdir/libsframe/" +set ld_L_opt "" + +if {![info exists CC]} { + set CC gcc +} +if {![info exists CFLAGS]} { + set CFLAGS "-g -O2" +} +if {![info exists CFLAGS_FOR_TARGET]} { + set CFLAGS_FOR_TARGET $CFLAGS +} diff --git a/libsframe/testsuite/libsframe.decode/DATA-BE b/libsframe/testsuite/libsframe.decode/DATA-BE Binary files differnew file mode 100644 index 0000000..3e19ff4 --- /dev/null +++ b/libsframe/testsuite/libsframe.decode/DATA-BE diff --git a/libsframe/testsuite/libsframe.decode/DATA1 b/libsframe/testsuite/libsframe.decode/DATA1 Binary files differnew file mode 100644 index 0000000..2b3ef8e --- /dev/null +++ b/libsframe/testsuite/libsframe.decode/DATA1 diff --git a/libsframe/testsuite/libsframe.decode/DATA2 b/libsframe/testsuite/libsframe.decode/DATA2 Binary files differnew file mode 100644 index 0000000..68fc2d2 --- /dev/null +++ b/libsframe/testsuite/libsframe.decode/DATA2 diff --git a/libsframe/testsuite/libsframe.decode/be-flipping.c b/libsframe/testsuite/libsframe.decode/be-flipping.c new file mode 100644 index 0000000..d915f9b --- /dev/null +++ b/libsframe/testsuite/libsframe.decode/be-flipping.c @@ -0,0 +1,115 @@ +/* be-flipping.c -- Test for handling different endianness in libsframe. + + Copyright (C) 2022 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/>. */ + +#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> + +/* SFrame info from the following source (1 fde 5 fres): + static int cnt; + extern void foo (void); + + int bar() + { + cnt++; + if (cnt == 3) + foo(); + return (cnt); + } + gcc -mbig-endian -Wa,--gsframe -c -O3 t.c + objcopy --dump-section .sframe=DATA-BE t.o + */ +#define DATA "DATA-BE" + +int +main (void) +{ + sframe_decoder_ctx *dctx = NULL; + uint32_t nfres, fsize; + int32_t fstart; + unsigned char finfo; + int err = 0; + FILE *fp; + struct stat st; + char *sf_buf; + size_t sf_size; + +#define TEST(name, cond) \ + do \ + { \ + if (cond) \ + pass (name); \ + else \ + fail (name); \ + } \ + while (0) + + /* Test setup. */ + fp = fopen (DATA, "r"); + if (fp == NULL) + goto setup_fail; + if (fstat (fileno (fp), &st) < 0) + { + perror ("fstat"); + fclose (fp); + goto setup_fail; + } + sf_buf = malloc (st.st_size); + if (sf_buf == NULL) + { + perror ("malloc"); + goto setup_fail; + } + sf_size = fread (sf_buf, 1, st.st_size, fp); + fclose (fp); + if (sf_size == 0) + { + fprintf (stderr, "Decode: Read buffer failed\n"); + goto setup_fail; + } + + /* Execute tests. */ + + /* Call to sframe_decode will endian flip the input buffer (big-endian) if + the host running the test is a little-endian system. This endian-flipped + copy of the buffer is kept internally in dctx. */ + dctx = sframe_decode (sf_buf, sf_size, &err); + TEST ("be-flipping: Decoder setup", dctx != NULL); + + 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); + TEST ("be-flipping: Decoder get FDE", err == 0); + TEST ("be-flipping: Decoder FRE count", nfres == 5); + + sframe_decoder_free (&dctx); + return 0; + +setup_fail: + sframe_decoder_free (&dctx); + fail ("be-flipping: Test setup"); + return 1; +} diff --git a/libsframe/testsuite/libsframe.decode/decode.exp b/libsframe/testsuite/libsframe.decode/decode.exp new file mode 100644 index 0000000..0d85994 --- /dev/null +++ b/libsframe/testsuite/libsframe.decode/decode.exp @@ -0,0 +1,50 @@ +# Copyright (C) 2022 Free Software Foundation, Inc. +# +# This file is part of the GNU Binutils. +# +# 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, +# MA 02110-1301, USA. +# + +load_lib dejagnu.exp + +# Run the tests only if compatible dejagnu gcc pair is found +if [string equal $COMPAT_DEJAGNU "no"] { + verbose -log "SFrame testsuite needs perhaps a more recent DejaGnu" + unsupported be-flipping + unsupported frecnt-1 + unsupported frecnt-2 + return; +} + +catch "exec ln -s $srcdir/libsframe.decode/DATA1 ." status +catch "exec ln -s $srcdir/libsframe.decode/DATA2 ." status +catch "exec ln -s $srcdir/libsframe.decode/DATA-BE ." status + +if { [host_execute "testsuite/libsframe.decode/be-flipping"] ne "" } { + fail "be-flipping" +} + +if { [host_execute "testsuite/libsframe.decode/frecnt-1"] ne "" } { + fail "frecnt-1" +} + +if { [host_execute "testsuite/libsframe.decode/frecnt-2"] ne "" } { + fail "frecnt-2" +} + +catch "exec rm DATA1" status +catch "exec rm DATA2" status +catch "exec rm DATA-BE" status diff --git a/libsframe/testsuite/libsframe.decode/frecnt-1.c b/libsframe/testsuite/libsframe.decode/frecnt-1.c new file mode 100644 index 0000000..49861ed --- /dev/null +++ b/libsframe/testsuite/libsframe.decode/frecnt-1.c @@ -0,0 +1,99 @@ +/* frecnt-1.c -- Test for decoder in libsframe. + + Copyright (C) 2022 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/>. */ + +#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> + +/* + * SFrame info from the following source (1 fde 4 fres): + * static int cnt; + * int main() { cnt++; return (cnt); } + */ +#define DATA "DATA1" + +int +main (void) +{ + sframe_decoder_ctx *dctx = NULL; + uint32_t nfres, fsize; + int32_t fstart; + unsigned char finfo; + int err = 0; + FILE *fp; + struct stat st; + char *sf_buf; + size_t sf_size; + +#define TEST(name, cond) \ + do \ + { \ + if (cond) \ + pass (name); \ + else \ + fail (name); \ + } \ + while (0) + + /* Test Setup. */ + fp = fopen (DATA, "r"); + if (fp == NULL) + goto setup_fail; + if (fstat (fileno (fp), &st) < 0) + { + perror ("fstat"); + fclose (fp); + goto setup_fail; + } + sf_buf = malloc (st.st_size); + if (sf_buf == NULL) + { + perror ("malloc"); + goto setup_fail; + } + + /* Execute tests. */ + sf_size = fread (sf_buf, 1, st.st_size, fp); + fclose (fp); + TEST ("frecnt-1: Read data", sf_size != 0); + + dctx = sframe_decode (sf_buf, sf_size, &err); + TEST ("frecnt-1: Decoder setup", dctx != NULL); + + 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); + TEST ("frecnt-1: Decoder get FDE", err == 0); + TEST ("frecnt-1: Decoder FRE count", nfres == 4); + + sframe_decoder_free (&dctx); + return 0; + +setup_fail: + sframe_decoder_free (&dctx); + fail ("frecnt-1: Test setup"); + return 1; +} diff --git a/libsframe/testsuite/libsframe.decode/frecnt-2.c b/libsframe/testsuite/libsframe.decode/frecnt-2.c new file mode 100644 index 0000000..7c140d8 --- /dev/null +++ b/libsframe/testsuite/libsframe.decode/frecnt-2.c @@ -0,0 +1,104 @@ +/* frecnt-2.c -- Test for decoder in libsframe. + + Copyright (C) 2022 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/>. */ + +#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> + +/* + * SFrame info from the following source (2 fde 8 fres): + * static int cnt; + * int foo() { return ++cnt; } + * int main() { return foo(); } + */ +#define DATA "DATA2" + +int +main (void) +{ + sframe_decoder_ctx *dctx = NULL; + uint32_t nfres, fsize; + int32_t fstart; + unsigned char finfo; + unsigned int i; + int err = 0; + FILE *fp; + struct stat st; + char *sf_buf; + size_t sf_size; + +#define TEST(name, cond) \ + do \ + { \ + if (cond) \ + pass (name); \ + else \ + fail (name); \ + } \ + while (0) + + fp = fopen (DATA, "r"); + if (fp == NULL) + goto setup_fail; + if (fstat (fileno (fp), &st) < 0) + { + perror ("fstat"); + fclose (fp); + goto setup_fail; + } + sf_buf = malloc (st.st_size); + if (sf_buf == NULL) + { + perror ("malloc"); + goto setup_fail; + } + + /* Execute tests. */ + sf_size = fread (sf_buf, 1, st.st_size, fp); + fclose (fp); + TEST ("frecnt-2: Read data", sf_size != 0); + + dctx = sframe_decode (sf_buf, sf_size, &err); + TEST ("frecnt-2: Decode setup", dctx != NULL); + + unsigned int fde_cnt = sframe_decoder_get_num_fidx (dctx); + TEST ("frecnt-2: Decode FDE count", fde_cnt == 2); + + for (i = 0; i < fde_cnt; ++i) + { + err = sframe_decoder_get_funcdesc (dctx, i, &nfres, &fsize, &fstart, + &finfo); + TEST ("frecnt-2: Decode get FDE", err == 0); + TEST ("frecnt-2: Decode get FRE", nfres == 4); + } + + sframe_decoder_free (&dctx); + return 0; + +setup_fail: + sframe_decoder_free (&dctx); + fail ("frecnt-2: Test setup"); + return 1; +} diff --git a/libsframe/testsuite/libsframe.decode/local.mk b/libsframe/testsuite/libsframe.decode/local.mk new file mode 100644 index 0000000..0e4279b --- /dev/null +++ b/libsframe/testsuite/libsframe.decode/local.mk @@ -0,0 +1,16 @@ +check_PROGRAMS = +if HAVE_COMPAT_DEJAGNU + check_PROGRAMS += %D%/be-flipping %D%/frecnt-1 %D%/frecnt-2 +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%_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_2_SOURCES = %D%/frecnt-2.c +%C%_frecnt_2_LDADD = ${top_builddir}/libsframe.la +%C%_frecnt_2_CPPFLAGS = -I${top_srcdir}/../include -Wall diff --git a/libsframe/testsuite/libsframe.encode/encode-1.c b/libsframe/testsuite/libsframe.encode/encode-1.c new file mode 100644 index 0000000..4075591 --- /dev/null +++ b/libsframe/testsuite/libsframe.encode/encode-1.c @@ -0,0 +1,177 @@ +/* encode-1.c -- Test for encoder in libsframe. + + Copyright (C) 2022 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/>. */ + +#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> + +static int +add_fde1 (sframe_encoder_ctx *encode, int idx) +{ + int i, err; + /* A contiguous block containing 4 FREs. */ + sframe_frame_row_entry fres[] + = { {0x0, 0x3, {0x8, 0, 0}}, + {0x1, 0x5, {0x10, 0xf0, 0}}, + {0x4, 0x4, {0x10, 0xf0, 0}}, + {0x1a, 0x5, {0x8, 0xf0, 0}} + }; + + unsigned char finfo = sframe_fde_func_info (SFRAME_FRE_TYPE_ADDR1, + SFRAME_FDE_TYPE_PCINC); + err = sframe_encoder_add_funcdesc (encode, 0xfffff03e, 0x1b, finfo, 4); + if (err == -1) + return err; + + for (i = 0; i < 4; 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) +{ + int i, err; + /* A contiguous block containing 4 FREs. */ + sframe_frame_row_entry fres[] + = { {0x0, 0x3, {0x8, 0, 0}}, + {0x1, 0x5, {0x10, 0xf0, 0}}, + {0x4, 0x4, {0x10, 0xf0, 0}}, + {0xf, 0x5, {0x8, 0xf0, 0}} + }; + + unsigned char finfo = sframe_fde_func_info (SFRAME_FRE_TYPE_ADDR1, + SFRAME_FDE_TYPE_PCINC); + err = sframe_encoder_add_funcdesc (encode, 0xfffff059, 0x10, finfo, 4); + if (err == -1) + return err; + + for (i = 0; i < 4; i++) + if (sframe_encoder_add_fre (encode, idx, fres+i) == SFRAME_ERR) + return -1; + + return 0; +} + +/* + * SFrame info from the following source (2 fdes, 4 fres in each fde): + * static int cnt; + * int foo() { return ++cnt; } + * int main() { return foo(); } + */ +#define DATA "DATA2" + +static int +data_match (char *sframe_buf, size_t sz) +{ + FILE *fp; + struct stat st; + char *sf_buf; + size_t sf_size; + int diffs; + + fp = fopen (DATA, "r"); + if (fp == NULL) + return 0; + if (fstat (fileno (fp), &st) < 0) + { + perror ("fstat"); + fclose (fp); + return 0; + } + sf_buf = malloc (st.st_size); + if (sf_buf == NULL) + { + perror ("malloc"); + return 0; + } + sf_size = fread (sf_buf, 1, st.st_size, fp); + fclose (fp); + if (sf_size == 0 || sf_buf == NULL) + { + fprintf (stderr, "Encode: Read section failed\n"); + return 0; + } + if (sf_size != sz) + return 0; + + diffs = memcmp (sf_buf, sframe_buf, sz); + + free (sf_buf); + return diffs == 0; +} + +int main (void) +{ + sframe_encoder_ctx *encode; + sframe_frame_row_entry frep; + char *sframe_buf; + size_t sf_size; + int err = 0; + unsigned int fde_cnt = 0; + int match_p = 0; + +#define TEST(name, cond) \ + do \ + { \ + if (cond) \ + pass (name); \ + else \ + fail (name); \ + } \ + while (0) + + encode = sframe_encode (SFRAME_VERSION, 0, + SFRAME_ABI_AMD64_ENDIAN_LITTLE, + SFRAME_CFA_FIXED_FP_INVALID, + -8, /* Fixed RA offset for AMD64. */ + &err); + + fde_cnt = sframe_encoder_get_num_fidx (encode); + TEST ("encode-1: Encoder FDE count", fde_cnt == 0); + + err = sframe_encoder_add_fre (encode, 1, &frep); + TEST ("encode-1: Encoder update workflow", err == SFRAME_ERR); + + err = add_fde1 (encode, 0); + TEST ("encode-1: Encoder adding FDE1", err == 0); + + err = add_fde2 (encode, 1); + TEST ("encode-1: Encoder adding FDE2", err == 0); + + fde_cnt = sframe_encoder_get_num_fidx (encode); + TEST ("encode-1: Encoder FDE count", fde_cnt == 2); + + sframe_buf = sframe_encoder_write (encode, &sf_size, &err); + TEST ("encode-1: Encoder write", err == 0); + + match_p = data_match (sframe_buf, sf_size); + TEST ("encode-1: Encode buffer match", match_p == 1); + + sframe_encoder_free (&encode); + return 0; +} diff --git a/libsframe/testsuite/libsframe.encode/encode.exp b/libsframe/testsuite/libsframe.encode/encode.exp new file mode 100644 index 0000000..60c08e8 --- /dev/null +++ b/libsframe/testsuite/libsframe.encode/encode.exp @@ -0,0 +1,37 @@ +# Copyright (C) 2022 Free Software Foundation, Inc. +# +# This file is part of the GNU Binutils. +# +# 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, +# MA 02110-1301, USA. +# + +load_lib dejagnu.exp + +# Run the tests only if compatible dejagnu gcc pair is found +if [string equal $COMPAT_DEJAGNU "no"] { + verbose -log "SFrame testsuite needs perhaps a more recent DejaGnu" + unsupported encode-1 + return 0; +} + +catch "exec ln -s $srcdir/libsframe.decode/DATA2 ." status + +if { [host_execute "testsuite/libsframe.encode/encode-1"] ne "" } { + fail "encode-1" +} + +catch "exec rm DATA2" status + diff --git a/libsframe/testsuite/libsframe.encode/local.mk b/libsframe/testsuite/libsframe.encode/local.mk new file mode 100644 index 0000000..477d4b6 --- /dev/null +++ b/libsframe/testsuite/libsframe.encode/local.mk @@ -0,0 +1,7 @@ +if HAVE_COMPAT_DEJAGNU + check_PROGRAMS += %D%/encode-1 +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 diff --git a/libsframe/testsuite/local.mk b/libsframe/testsuite/local.mk new file mode 100644 index 0000000..83eca77 --- /dev/null +++ b/libsframe/testsuite/local.mk @@ -0,0 +1,24 @@ +# Setup the testing framework +EXPECT = expect +RUNTEST = runtest +RUNTESTFLAGS = + +check-DEJAGNU: site.exp + srcroot=`cd $(srcdir) && pwd`; export srcroot; \ + r=`pwd`; export r; \ + LC_ALL=C; export LC_ALL; \ + EXPECT=$(EXPECT); export EXPECT; \ + runtest=$(RUNTEST); \ + if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ + $$runtest --tool $(DEJATOOL) --srcdir $${srcroot}/testsuite \ + CC="$(CC)" \ + CROSS_COMPILE="$(CROSS_COMPILE)" \ + COMPAT_DEJAGNU="$(COMPAT_DEJAGNU)" \ + CFLAGS="$(CFLAGS) -I$(top_srcdir)/../include -I$(top_srcdir) -I$(top_builddir)" \ + $(RUNTESTFLAGS); \ + else echo "WARNING: could not find \`runtest'" 1>&2; :;\ + fi + +# libsframe encoder/decoder testsuite +include %D%/libsframe.decode/local.mk +include %D%/libsframe.encode/local.mk |