Test some of the edge cases, and incorrect usages.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(out) | :: | error_cnt | report number of errors to caller |
subroutine test_15(error_cnt)
!! Test some of the edge cases, and incorrect usages.
implicit none
integer,intent(out) :: error_cnt !! report number of errors to caller
type(json_core) :: json
type(json_value),pointer :: p,p2
type(json_file) :: file1, file2
logical :: found,status_ok
integer :: var_type,i,n_children
real(wp) :: d
logical :: tf
character(kind=CK,len=:),allocatable :: error_msg
write(error_unit,'(A)') ''
write(error_unit,'(A)') '================================='
write(error_unit,'(A)') ' TEST 15'
write(error_unit,'(A)') '================================='
write(error_unit,'(A)') ''
error_cnt = 0
nullify(p2)
nullify(p)
call json%parse(p2, '{"int": 1, "real": 2.0, "logical": true}')
call json%get(p2,'real', i)
call json%get(p2,'logical',i)
call json%get(p2,'integer',d)
call json%get(p2,'logical',d)
call json%get(p2,'integer',tf)
call json%get(p2,'real', tf)
call json%check_for_errors(status_ok, error_msg) !error condition true
call json%initialize(print_signs=.true.) !print signs flag
call json%check_for_errors(status_ok, error_msg) !error condition false
call file1%move(file2) !should throw an exception since points are not associated
call file1%initialize()
call file1%print_file(-1) !invalid input
call file1%initialize()
call file1%print_file(filename='') !invalid filename
call file1%initialize()
call file1%info('this path does not exist',found,var_type,n_children)
call file1%initialize()
call file1%check_for_errors(status_ok,error_msg)
call file1%clear_exceptions()
call file1%destroy()
file1 = json_file(p2,json) !constructor
call file1%destroy(destroy_core=.true.)
call json%initialize( verbose=.false.,&
compact_reals=.true.,&
print_signs=.false.,&
real_format='E',&
spaces_per_tab=4,&
strict_type_checking=.true.,&
trailing_spaces_significant=.false.,&
case_sensitive_keys=.true.)
call json%get_child(p2,-99,p) !invalid index
call json%initialize() !clear exceptions
call json%get_child(p2,'this child does not exist',p) !invalid index
call json%initialize() !clear exceptions
call json%print(p2,-1) !invalid input
call json%initialize() !clear exceptions
call json%print(p2,filename='') !invalid input
call json%initialize() !clear exceptions
end subroutine test_15