Quick-Start:
If Everything goes smoothly, and you have a very typical system,
all you need to do is:
1) unpack (you've already done this)
2) set up the macros in the top-level makefile (see below)
3) make
4) cd EXEC
5) vsiptest
vsiptest will execute each of the individual tests and give you an
overall pass/fail. If you wish to run only a particular module,
please try:
vsiptest_block
vsiptest_view
vsiptest_elwise
vsiptest_sigproc
Each module lives in a subdirectory under EXEC. All error output
will be in vsiptest.out under the module's subdirectory, unless changed
as per below.
Configuration:
There are two configuration issues to set up.
1) Macro Definitions
In the Makefile in this directory, set any compiler options here as
in CC and
OPTIONS. Also, you must configure the following options:
LIB_VSIP: the name of the VSIP library you
wish to use
LIB_VSIP_LOC: the path to the above named VSIP library
VSIP_INC: the path where the vsip.h header
file is
CC: C compiler
you wish to use
CFLAGS: Any additional flags to
the compiler
HEADERS: Any additional headers you wish
to include in the compile
LD: The
linker you wish to use
LFLAGS: Any additional flags to
the linker
EXTRALIBS: Any additional libraries required by your
platform
DEFINES: Any additional #defines for
the compile
2) Reporting Channel Definition
If you would like or need results reporting in any other than the
standard format, you will need to modify vsiptest_io.c in the util/
directory.
The standard format reports errors to the screen as well as to the
file
error.log. If your system does not have standard console or file
I/O you
will need to modify the routine
vtprintf (char *fmt, ...);
to work as you require.
Once configured, return to the top level directory and type make.
The
executables will be placed under the EXEC directory in subdirectories
by
function type. Since only the vsip_*block* have tests written
for them, all
executables are in EXEC/block.
To run a test, execute vsiptest_function where "function" replaces everything
after "vsip_" for the corresponding VSIPL function. For example,
to test
vsip_blockcreate_f, run "vsiptest_blockcreate_f".
The return code from each program will be a bit-field representation
of the
tests which did not complete succesfully. The bits will correspond
to the
numbers displayed for failing test. For example a display of
the following:
Error in vsip_blockadmit_f(); (5)
Admitted block bound to NULL data.
would indicate that test #5 for vsip_blockadmit_f failed, and bit 5
of the
return code would be set.
-- [ version 1.0f] --
This version includes the signal processing function testing, and various
bug fixes from previous versions. The sigproc/data directory
contains the
default data sets, and the sigproc/vsiptest_sigproc.h contains the
parameters for each test. The same macros are set for sigproc
as were
for elwise.
Fixed error where put and get were operating on non-admitted blocks.
Removed test for offset and stride matching original blocks on
derived blocks.
Fixed many cases where vectors were not being properly destroyed in
elwise module
-- [ version 1.0e] --
This is the first version with the element wise function testing.
The
elwise/data directory contains the default data sets, and the
elwise/vsiptest_elwise_test_defs.h contains the parameters for each
test.
The following macros are of note for each test:
VSIPTEST_EPSILON_MAX
This is the maximum allowable difference in actual from expected results
in order
to pass a test
VSIPTEST_ELWISE_DO_EPSILON_TEST
If this is defined, the function's outputs are compared to expected
outputs, and
must be within the specified band to pass
VSIPTEST_ELWISE_DO_SIGN_TEST
If this is defined, the function's outputs' sign is compared to the
sign of the
expected output value, and must match to pass
Some of the tests do not have the options - in these cases, the test
is always
on.
This release also addresses several issues raised by forum members regarding
earlier releases:
Makefile incompatibility: The old releases used a makefile construction
that
is not standard, and was thus not supported on all platforms.
This has been
corrected.
Redefinition of vsip_vcopy_f_i: The previous release had an incorrectly
prototyped internal implementation of vsip_vcopy_f_i. This has
been corrected.
Sub-makefile inclusion of -lm: Some vendors do not wish to have
-lm
automatically included in the makes, and asked that this option be
moved to the
top level makefile for easier configuration. This has been done.
-- [ version 1.0d] --
This is the view module alpha release. This version has been
verified against
Randy Judd's implementation in performance and development mode .
Testing
with development mode showed some errors that we believe are normal
operation.
-- [ version 1.0c] --
In addition, this version contains an overriding malloc function in
order to
test on demand memory allocation failures. This is a third party,
freeware
utility, which compiles on most platforms. If you are having
trouble with this
working correctly, or compiling, simply remove the malloc line from
the top
level makefile, and remove or comment out the LIBALLOC entries in the
subdirectory makefiles. Some of the tests will not be run without
our
malloc, but most will work just fine.