diff options
author | Elena Pourmal <epourmal@hdfgroup.org> | 2005-01-11 01:37:00 (GMT) |
---|---|---|
committer | Elena Pourmal <epourmal@hdfgroup.org> | 2005-01-11 01:37:00 (GMT) |
commit | 2fcaf3e0f3fc05b5af2806e55c0658a13e49e3fb (patch) | |
tree | 8e3bbe60c14603a6905c38292cd8ca03d271f9aa | |
parent | c04b612eb42b8b63ed4b4f966d53381f60f5119a (diff) | |
download | hdf5-2fcaf3e0f3fc05b5af2806e55c0658a13e49e3fb.zip hdf5-2fcaf3e0f3fc05b5af2806e55c0658a13e49e3fb.tar.gz hdf5-2fcaf3e0f3fc05b5af2806e55c0658a13e49e3fb.tar.bz2 |
[svn-r9803] Purpose: Bug fix
Description: Fortran szip test had a wrong logic; as a result
wrong return values were reported in the absence of
the SZIP library, and it was skipped when encoder was
disable
Solution: Fixed the test
Now SZIP fortran test should report "SKIP" only
when SZIP is not configured in.
Platforms tested: tg-login in parallel mode, copper,
mir with new PGI compilers and shared
SZIP libraries. All platforms were tested with
SZIP not available
SZIP with encoder/decoder
SZIP with decoder only
Misc. update:
-rw-r--r-- | fortran/test/fortranlib_test.f90 | 3 | ||||
-rw-r--r-- | fortran/test/tH5Z.f90 | 38 |
2 files changed, 24 insertions, 17 deletions
diff --git a/fortran/test/fortranlib_test.f90 b/fortran/test/fortranlib_test.f90 index d3f22ae..6481c8b 100644 --- a/fortran/test/fortranlib_test.f90 +++ b/fortran/test/fortranlib_test.f90 @@ -287,8 +287,9 @@ total_error = total_error + z_total_error CALL szip_test(szip_flag, cleanup, sz_total_error) - IF (.NOT. szip_flag) error_string = skip IF (sz_total_error == 0) error_string = success + ! Reset the flag is compression was not available + IF (.NOT. szip_flag) error_string = skip IF (sz_total_error .gt. 0) error_string = failure write(*, fmt = '(18a)', advance = 'no') ' SZIP filter test' write(*, fmt = '(53x,a)', advance = 'no') ' ' diff --git a/fortran/test/tH5Z.f90 b/fortran/test/tH5Z.f90 index c64d99b..99e3dba 100644 --- a/fortran/test/tH5Z.f90 +++ b/fortran/test/tH5Z.f90 @@ -195,31 +195,36 @@ ! ! Verify that SZIP exists and has an encoder ! - CALL h5zget_filter_info_f(H5Z_FILTER_SZIP_F, config_flag, error) - CALL check("h5zget_filter_info", error, total_error) - if ( IAND(config_flag, H5Z_FILTER_ENCODE_ENABLED_F) .EQ. 0 ) then - szip_flag = .FALSE. - total_error = -1 - return - endif - CALL h5zfilter_avail_f(H5Z_FILTER_SZIP_F, flag, error) + CALL h5zfilter_avail_f(H5Z_FILTER_SZIP_F, szip_flag, error) CALL check("h5zfilter_avail", error, total_error) + ! Quit if failed + if (error .ne. 0) return + + ! Skip if no SZIP available + if (.NOT. szip_flag)then + return + + else !SZIP available + + ! Continue + CALL h5zget_filter_info_f(H5Z_FILTER_SZIP_F, config_flag, error) + CALL check("h5zget_filter_info_f", error, total_error) + ! Quit if failed + if (error .ne. 0) return ! ! Make sure h5zget_filter_info_f returns the right flag ! - if( flag ) then - if ( config_flag .NE. IOR( H5Z_FILTER_ENCODE_ENABLED_F, H5Z_FILTER_DECODE_ENABLED_F) ) then + if( szip_flag ) then + if ( config_flag .NE. IOR(H5Z_FILTER_ENCODE_ENABLED_F, H5Z_FILTER_DECODE_ENABLED_F)) then error = -1 - CALL check("h5zget_filter_info config_flag", error, total_error) - endif - else - if ( config_flag .NE. 0 ) then - error = -1 - CALL check("h5zget_filter_info config_flag", error, total_error) + CALL check("h5zget_filter_info_f config_flag", error, total_error) endif endif + ! Continue only when encoder is available + if ( IAND(config_flag, H5Z_FILTER_ENCODE_ENABLED_F) .EQ. 0 ) return + options_mask = H5_SZIP_NN_OM_F pix_per_block = 32 ! @@ -384,6 +389,7 @@ CALL check("h5fclose_f", error, total_error) if(cleanup) CALL h5_cleanup_f(filename, H5P_DEFAULT_F, error) CALL check("h5_cleanup_f", error, total_error) + endif ! SZIP available RETURN END SUBROUTINE szip_test |