mirror of
https://github.com/TREX-CoE/trexio.git
synced 2024-11-03 20:54:07 +01:00
make file names consistent with the C test
This commit is contained in:
parent
3331cc0591
commit
36e85039d5
@ -1520,13 +1520,13 @@ trexio_read_chunk_ao_2e_int_eri_value_64(trexio_t* const file,
|
|||||||
|
|
||||||
#+begin_src c :tangle hrw_dset_str_front.h :exports none
|
#+begin_src c :tangle hrw_dset_str_front.h :exports none
|
||||||
trexio_exit_code trexio_has_$group_dset$(trexio_t* const file);
|
trexio_exit_code trexio_has_$group_dset$(trexio_t* const file);
|
||||||
trexio_exit_code trexio_read_$group_dset$(trexio_t* const file, char* const dset, const uint32_t max_str_len);
|
trexio_exit_code trexio_read_$group_dset$(trexio_t* const file, char* dset, const uint32_t max_str_len);
|
||||||
trexio_exit_code trexio_write_$group_dset$(trexio_t* const file, const char* dset, const uint32_t max_str_len);
|
trexio_exit_code trexio_write_$group_dset$(trexio_t* const file, const char* dset, const uint32_t max_str_len);
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+begin_src c :tangle read_dset_str_front.c
|
#+begin_src c :tangle read_dset_str_front.c
|
||||||
trexio_exit_code
|
trexio_exit_code
|
||||||
trexio_read_$group_dset$ (trexio_t* const file, char* const dset, const uint32_t max_str_len)
|
trexio_read_$group_dset$ (trexio_t* const file, char* dset, const uint32_t max_str_len)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (file == NULL) return TREXIO_INVALID_ARG_1;
|
if (file == NULL) return TREXIO_INVALID_ARG_1;
|
||||||
@ -1546,22 +1546,70 @@ trexio_read_$group_dset$ (trexio_t* const file, char* const dset, const uint32_t
|
|||||||
|
|
||||||
assert(file->back_end < TREXIO_INVALID_BACK_END);
|
assert(file->back_end < TREXIO_INVALID_BACK_END);
|
||||||
|
|
||||||
|
char* tmp_str = CALLOC(dims[0]*(128+1)+1, char);
|
||||||
|
if (tmp_str == NULL) return TREXIO_ALLOCATION_FAILED;
|
||||||
|
|
||||||
switch (file->back_end) {
|
switch (file->back_end) {
|
||||||
|
|
||||||
case TREXIO_TEXT:
|
case TREXIO_TEXT:
|
||||||
//return trexio_text_read_$group_dset$(file, dset_str, rank, dims);
|
//rc = trexio_text_read_$group_dset$(file, dset_str, rank, dims);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TREXIO_HDF5:
|
case TREXIO_HDF5:
|
||||||
return trexio_hdf5_read_$group_dset$(file, dset, rank, dims, max_str_len);
|
rc = trexio_hdf5_read_$group_dset$(file, tmp_str, rank, dims);
|
||||||
break;
|
break;
|
||||||
/*
|
/*
|
||||||
case TREXIO_JSON:
|
case TREXIO_JSON:
|
||||||
return trexio_json_read_$group_dset$(file, dset, rank, dims);
|
rc = trexio_json_read_$group_dset$(file, dset, rank, dims);
|
||||||
break;
|
break;
|
||||||
,*/
|
,*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (rc != TREXIO_SUCCESS) {
|
||||||
|
FREE(tmp_str);
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t len_read;
|
||||||
|
size_t len_accum = 0;
|
||||||
|
char * pch;
|
||||||
|
char buf[32];
|
||||||
|
|
||||||
|
printf("%s\n", tmp_str);
|
||||||
|
|
||||||
|
strcpy(dset, "");
|
||||||
|
for(uint64_t i=0; i<dims[0]; i++) {
|
||||||
|
|
||||||
|
//pch = i == 0 ? strtok(dset, TREXIO_DELIM) : strtok(NULL, TREXIO_DELIM) ;
|
||||||
|
if(i==0) {
|
||||||
|
pch = strtok(tmp_str, TREXIO_DELIM);
|
||||||
|
} else {
|
||||||
|
pch = strtok(NULL, TREXIO_DELIM);
|
||||||
|
}
|
||||||
|
|
||||||
|
len_read = strlen(pch);
|
||||||
|
//printf("Len [%ld] = %ld\n", i, len_read);
|
||||||
|
|
||||||
|
if (max_str_len < len_read) {
|
||||||
|
/*for(size_t i = len_accum + max_str_len; i < len_accum + len_read; i++) {
|
||||||
|
tmp_str[i] = '\0';
|
||||||
|
}*/
|
||||||
|
for(size_t i = len_accum; i < len_accum + max_str_len; i++) {
|
||||||
|
buf[i-len_accum] = tmp_str[i];
|
||||||
|
}
|
||||||
|
strcat(dset, buf);
|
||||||
|
} else {
|
||||||
|
strcat(dset, pch);
|
||||||
|
}
|
||||||
|
|
||||||
|
strcat(dset, TREXIO_DELIM);
|
||||||
|
len_accum += len_read + 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
FREE(tmp_str);
|
||||||
|
|
||||||
|
return TREXIO_SUCCESS;
|
||||||
}
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -1615,7 +1663,7 @@ trexio_write_$group_dset$ (trexio_t* const file, const char* dset, const uint32_
|
|||||||
if (pch_len > max_str_len) {
|
if (pch_len > max_str_len) {
|
||||||
FREE(dset_str[0]);
|
FREE(dset_str[0]);
|
||||||
FREE(dset_str);
|
FREE(dset_str);
|
||||||
return TREXIO_INVALID_STR_LEN;
|
return TREXIO_INVALID_ARG_3;
|
||||||
}
|
}
|
||||||
|
|
||||||
dset_str[i]=tmp_str;
|
dset_str[i]=tmp_str;
|
||||||
|
@ -414,13 +414,13 @@ trexio_hdf5_has_$group_dset$ (trexio_t* const file)
|
|||||||
|
|
||||||
#+begin_src c :tangle hrw_dset_str_hdf5.h :exports none
|
#+begin_src c :tangle hrw_dset_str_hdf5.h :exports none
|
||||||
trexio_exit_code trexio_hdf5_has_$group_dset$(trexio_t* const file);
|
trexio_exit_code trexio_hdf5_has_$group_dset$(trexio_t* const file);
|
||||||
trexio_exit_code trexio_hdf5_read_$group_dset$(trexio_t* const file, char* const $group_dset$, const uint32_t rank, const uint64_t* dims, const uint32_t max_str_len);
|
trexio_exit_code trexio_hdf5_read_$group_dset$(trexio_t* const file, char* const $group_dset$, const uint32_t rank, const uint64_t* dims);
|
||||||
trexio_exit_code trexio_hdf5_write_$group_dset$(trexio_t* const file, const char** $group_dset$, const uint32_t rank, const uint64_t* dims);
|
trexio_exit_code trexio_hdf5_write_$group_dset$(trexio_t* const file, const char** $group_dset$, const uint32_t rank, const uint64_t* dims);
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+begin_src c :tangle read_dset_str_hdf5.c
|
#+begin_src c :tangle read_dset_str_hdf5.c
|
||||||
trexio_exit_code
|
trexio_exit_code
|
||||||
trexio_hdf5_read_$group_dset$ (trexio_t* const file, char* const $group_dset$, const uint32_t rank, const uint64_t* dims, const uint32_t max_str_len)
|
trexio_hdf5_read_$group_dset$ (trexio_t* const file, char* const $group_dset$, const uint32_t rank, const uint64_t* dims)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (file == NULL) return TREXIO_INVALID_ARG_1;
|
if (file == NULL) return TREXIO_INVALID_ARG_1;
|
||||||
@ -495,22 +495,14 @@ trexio_hdf5_read_$group_dset$ (trexio_t* const file, char* const $group_dset$, c
|
|||||||
|
|
||||||
// copy contents of temporary rdata buffer into the group_dset otherwise they are lost
|
// copy contents of temporary rdata buffer into the group_dset otherwise they are lost
|
||||||
// after calling H5Treclaim or H5Dvlen_reclaim functions
|
// after calling H5Treclaim or H5Dvlen_reclaim functions
|
||||||
|
size_t max_str_len = 2;
|
||||||
strcpy($group_dset$, "");
|
strcpy($group_dset$, "");
|
||||||
for (uint64_t i=0; i<dims[0]; i++){
|
for (uint64_t i=0; i<dims[0]; i++) {
|
||||||
|
if (max_str_len < strlen(rdata[i])) {
|
||||||
if (strlen(rdata[i]) > max_str_len) {
|
strncat($group_dset$, rdata[i], max_str_len);
|
||||||
// this function is introduced in HDF5 v.1.12.0
|
} else {
|
||||||
//status = H5Treclaim (memtype, dspace, H5P_DEFAULT, rdata);
|
strcat($group_dset$, rdata[i]);
|
||||||
// this function is deprecated but used in v.<1.12.0
|
|
||||||
status = H5Dvlen_reclaim (memtype, dspace, H5P_DEFAULT, rdata);
|
|
||||||
FREE(rdata);
|
|
||||||
H5Dclose(dset_id);
|
|
||||||
H5Sclose(dspace);
|
|
||||||
H5Tclose(memtype);
|
|
||||||
return TREXIO_INVALID_STR_LEN;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
strcat($group_dset$, rdata[i]);
|
|
||||||
strcat($group_dset$, TREXIO_DELIM);
|
strcat($group_dset$, TREXIO_DELIM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,19 +2,19 @@ program test_trexio
|
|||||||
use trexio
|
use trexio
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
call system('rm -rf trexio_test_fort')
|
call system('rm -rf test_write_f.dir')
|
||||||
print *, 'call test_write(''trexio_test_fort'', TREXIO_TEXT)'
|
print *, 'call test_write(''test_write_f.dir'', TREXIO_TEXT)'
|
||||||
call test_write('trexio_test_fort', TREXIO_TEXT)
|
call test_write('test_write_f.dir', TREXIO_TEXT)
|
||||||
print *, 'call test_read(''trexio_test_fort'', TREXIO_TEXT)'
|
print *, 'call test_read(''test_write_f.dir'', TREXIO_TEXT)'
|
||||||
call test_read('trexio_test_fort', TREXIO_TEXT)
|
call test_read('test_write_f.dir', TREXIO_TEXT)
|
||||||
call system('rm -rf trexio_test_fort')
|
call system('rm -rf test_write_f.dir')
|
||||||
|
|
||||||
call system('rm -rf trexio_test_fort')
|
call system('rm -rf test_write_f.h5')
|
||||||
print *, 'call test_write(''trexio_test_fort.h5'', TREXIO_HDF5)'
|
print *, 'call test_write(''test_write_f.h5'', TREXIO_HDF5)'
|
||||||
call test_write('trexio_test_fort.h5', TREXIO_HDF5)
|
call test_write('test_write_f.h5', TREXIO_HDF5)
|
||||||
print *, 'call test_read(''trexio_test_fort.h5'', TREXIO_HDF5)'
|
print *, 'call test_read(''test_write_f.h5'', TREXIO_HDF5)'
|
||||||
call test_read('trexio_test_fort.h5', TREXIO_HDF5)
|
call test_read('test_write_f.h5', TREXIO_HDF5)
|
||||||
call system('rm -rf trexio_test_fort.h5')
|
call system('rm -rf test_write_f.h5')
|
||||||
|
|
||||||
end program test_trexio
|
end program test_trexio
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user