This contains the first draft of the VSIPL Test Suite: Profile: Test Suite Lite Module: Block, View, Element-Wise, Signal Processing Author: Dan Campbell, Georgia Tech Research Insitute Mode: Performance Version: 1.0.3 Comments, Bug reports, Etc: testsuite@www.vsipl.org 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.0.3 5/1/2 ] -- - removed an incorrect blockadmit test - fixed various configuration dependencies -- [ version 1.0.2 4/3/2 ] -- - Fixed several incorrect derived view destructions - Adjusted default precision requirement of vsip_sumsqval_f - Fixed incorrect length on temporary vector for FIR filters -- [ 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.