mirror of
https://github.com/TREX-CoE/trexio.git
synced 2024-11-03 20:54:07 +01:00
Error messages
This commit is contained in:
commit
1cfa313d07
@ -40,7 +40,7 @@ AC_PROG_CC_C99
|
|||||||
# Checks for basic libraries.
|
# Checks for basic libraries.
|
||||||
AC_CHECK_LIB([m], [sqrt])
|
AC_CHECK_LIB([m], [sqrt])
|
||||||
# Checks for basic header files.
|
# Checks for basic header files.
|
||||||
AC_CHECK_HEADERS([fcntl.h stdint.h stdlib.h string.h unistd.h])
|
AC_CHECK_HEADERS([fcntl.h inttypes.h stdint.h stdlib.h string.h unistd.h])
|
||||||
|
|
||||||
# Search for pthread
|
# Search for pthread
|
||||||
have_pthreads=no
|
have_pthreads=no
|
||||||
@ -154,8 +154,8 @@ AC_CHECK_FUNCS([memset mkdir strerror])
|
|||||||
|
|
||||||
AC_CONFIG_FILES([Makefile
|
AC_CONFIG_FILES([Makefile
|
||||||
src/Makefile
|
src/Makefile
|
||||||
trexio.pc
|
tests/Makefile
|
||||||
tests/Makefile])
|
trexio.pc])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
||||||
echo \
|
echo \
|
||||||
|
@ -114,30 +114,31 @@ typedef int32_t trexio_exit_code;
|
|||||||
** Error handling
|
** Error handling
|
||||||
|
|
||||||
#+NAME: table-exit-codes
|
#+NAME: table-exit-codes
|
||||||
| Macro | Code | Description |
|
| Macro | Code | Description |
|
||||||
|----------------------------+------+------------------------|
|
|-----------------------------+------+--------------------------------|
|
||||||
| ~TREXIO_FAILURE~ | -1 | 'Unknown failure' |
|
| ~TREXIO_FAILURE~ | -1 | 'Unknown failure' |
|
||||||
| ~TREXIO_SUCCESS~ | 0 | 'Success' |
|
| ~TREXIO_SUCCESS~ | 0 | 'Success' |
|
||||||
| ~TREXIO_INVALID_ARG_1~ | 1 | 'Invalid argument 1' |
|
| ~TREXIO_INVALID_ARG_1~ | 1 | 'Invalid argument 1' |
|
||||||
| ~TREXIO_INVALID_ARG_2~ | 2 | 'Invalid argument 2' |
|
| ~TREXIO_INVALID_ARG_2~ | 2 | 'Invalid argument 2' |
|
||||||
| ~TREXIO_INVALID_ARG_3~ | 3 | 'Invalid argument 3' |
|
| ~TREXIO_INVALID_ARG_3~ | 3 | 'Invalid argument 3' |
|
||||||
| ~TREXIO_INVALID_ARG_4~ | 4 | 'Invalid argument 4' |
|
| ~TREXIO_INVALID_ARG_4~ | 4 | 'Invalid argument 4' |
|
||||||
| ~TREXIO_INVALID_ARG_5~ | 5 | 'Invalid argument 5' |
|
| ~TREXIO_INVALID_ARG_5~ | 5 | 'Invalid argument 5' |
|
||||||
| ~TREXIO_END~ | 6 | 'End of file' |
|
| ~TREXIO_END~ | 6 | 'End of file' |
|
||||||
| ~TREXIO_READONLY~ | 7 | 'Read-only file' |
|
| ~TREXIO_READONLY~ | 7 | 'Read-only file' |
|
||||||
| ~TREXIO_ERRNO~ | 8 | strerror(errno) |
|
| ~TREXIO_ERRNO~ | 8 | strerror(errno) |
|
||||||
| ~TREXIO_INVALID_ID~ | 9 | 'Invalid ID' |
|
| ~TREXIO_INVALID_ID~ | 9 | 'Invalid ID' |
|
||||||
| ~TREXIO_ALLOCATION_FAILED~ | 10 | 'Allocation failed' |
|
| ~TREXIO_ALLOCATION_FAILED~ | 10 | 'Allocation failed' |
|
||||||
| ~TREXIO_HAS_NOT~ | 11 | 'Element absent' |
|
| ~TREXIO_HAS_NOT~ | 11 | 'Element absent' |
|
||||||
| ~TREXIO_INVALID_NUM~ | 12 | 'Invalid exit code' |
|
| ~TREXIO_INVALID_NUM~ | 12 | 'Invalid exit code' |
|
||||||
| ~TREXIO_OPEN_ERROR~ | 13 | 'Error opening file' |
|
| ~TREXIO_NUM_ALREADY_EXISTS~ | 13 | 'This variable already exists' |
|
||||||
| ~TREXIO_LOCK_ERROR~ | 14 | 'Error locking file' |
|
| ~TREXIO_OPEN_ERROR~ | 14 | 'Error opening file' |
|
||||||
| ~TREXIO_UNLOCK_ERROR~ | 15 | 'Error unlocking file' |
|
| ~TREXIO_LOCK_ERROR~ | 15 | 'Error locking file' |
|
||||||
| ~TREXIO_FILE_ERROR~ | 16 | 'Invalid file handle' |
|
| ~TREXIO_UNLOCK_ERROR~ | 16 | 'Error unlocking file' |
|
||||||
| ~TREXIO_GROUP_READ_ERROR~ | 17 | 'Error reading group' |
|
| ~TREXIO_FILE_ERROR~ | 17 | 'Invalid file handle' |
|
||||||
| ~TREXIO_GROUP_WRITE_ERROR~ | 18 | 'Error writing group' |
|
| ~TREXIO_GROUP_READ_ERROR~ | 18 | 'Error reading group' |
|
||||||
| ~TREXIO_ELEM_READ_ERROR~ | 19 | 'Error reading element |
|
| ~TREXIO_GROUP_WRITE_ERROR~ | 19 | 'Error writing group' |
|
||||||
| ~TREXIO_ELEM_WRITE_ERROR~ | 20 | 'Error writing element |
|
| ~TREXIO_ELEM_READ_ERROR~ | 20 | 'Error reading element' |
|
||||||
|
| ~TREXIO_ELEM_WRITE_ERROR~ | 21 | 'Error writing element' |
|
||||||
|
|
||||||
# We need to force Emacs not to indent the Python code:
|
# We need to force Emacs not to indent the Python code:
|
||||||
# -*- org-src-preserve-indentation: t
|
# -*- org-src-preserve-indentation: t
|
||||||
@ -183,6 +184,15 @@ return '\n'.join(result)
|
|||||||
#define TREXIO_ALLOCATION_FAILED ((trexio_exit_code) 10)
|
#define TREXIO_ALLOCATION_FAILED ((trexio_exit_code) 10)
|
||||||
#define TREXIO_HAS_NOT ((trexio_exit_code) 11)
|
#define TREXIO_HAS_NOT ((trexio_exit_code) 11)
|
||||||
#define TREXIO_INVALID_NUM ((trexio_exit_code) 12)
|
#define TREXIO_INVALID_NUM ((trexio_exit_code) 12)
|
||||||
|
#define TREXIO_NUM_ALREADY_EXISTS ((trexio_exit_code) 13)
|
||||||
|
#define TREXIO_OPEN_ERROR ((trexio_exit_code) 14)
|
||||||
|
#define TREXIO_LOCK_ERROR ((trexio_exit_code) 15)
|
||||||
|
#define TREXIO_UNLOCK_ERROR ((trexio_exit_code) 16)
|
||||||
|
#define TREXIO_FILE_ERROR ((trexio_exit_code) 17)
|
||||||
|
#define TREXIO_GROUP_READ_ERROR ((trexio_exit_code) 18)
|
||||||
|
#define TREXIO_GROUP_WRITE_ERROR ((trexio_exit_code) 19)
|
||||||
|
#define TREXIO_ELEM_READ_ERROR ((trexio_exit_code) 20)
|
||||||
|
#define TREXIO_ELEM_WRITE_ERROR ((trexio_exit_code) 21)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+begin_src f90 :tangle prefix_fortran.f90 :exports none
|
#+begin_src f90 :tangle prefix_fortran.f90 :exports none
|
||||||
@ -200,6 +210,15 @@ return '\n'.join(result)
|
|||||||
integer(trexio_exit_code), parameter :: TREXIO_ALLOCATION_FAILED = 10
|
integer(trexio_exit_code), parameter :: TREXIO_ALLOCATION_FAILED = 10
|
||||||
integer(trexio_exit_code), parameter :: TREXIO_HAS_NOT = 11
|
integer(trexio_exit_code), parameter :: TREXIO_HAS_NOT = 11
|
||||||
integer(trexio_exit_code), parameter :: TREXIO_INVALID_NUM = 12
|
integer(trexio_exit_code), parameter :: TREXIO_INVALID_NUM = 12
|
||||||
|
integer(trexio_exit_code), parameter :: TREXIO_NUM_ALREADY_EXISTS = 13
|
||||||
|
integer(trexio_exit_code), parameter :: TREXIO_OPEN_ERROR = 14
|
||||||
|
integer(trexio_exit_code), parameter :: TREXIO_LOCK_ERROR = 15
|
||||||
|
integer(trexio_exit_code), parameter :: TREXIO_UNLOCK_ERROR = 16
|
||||||
|
integer(trexio_exit_code), parameter :: TREXIO_FILE_ERROR = 17
|
||||||
|
integer(trexio_exit_code), parameter :: TREXIO_GROUP_READ_ERROR = 18
|
||||||
|
integer(trexio_exit_code), parameter :: TREXIO_GROUP_WRITE_ERROR = 19
|
||||||
|
integer(trexio_exit_code), parameter :: TREXIO_ELEM_READ_ERROR = 20
|
||||||
|
integer(trexio_exit_code), parameter :: TREXIO_ELEM_WRITE_ERROR = 21
|
||||||
#+end_src
|
#+end_src
|
||||||
:end:
|
:end:
|
||||||
|
|
||||||
|
@ -235,9 +235,8 @@ trexio_hdf5_write_$group_num$ (trexio_t* const file, const uint64_t num)
|
|||||||
if (infile_num != num) {
|
if (infile_num != num) {
|
||||||
|
|
||||||
if (infile_num != 0) {
|
if (infile_num != 0) {
|
||||||
printf("%lu -> %lu %s \n", num, infile_num,
|
|
||||||
"This variable already exists. Overwriting it is not supported");
|
return TREXIO_NUM_ALREADY_EXISTS;
|
||||||
return TREXIO_FAILURE;
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
#include "trexio_private.h"
|
#include "trexio_private.h"
|
||||||
#include "trexio_s.h"
|
#include "trexio_s.h"
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdint.h>
|
#include <inttypes.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -347,7 +347,7 @@ trexio_text_read_$group$ (trexio_text_t* const file)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = fscanf(f, "%lu\n", &($group$->dims_$group_dset$[i]));
|
rc = fscanf(f, "%" SCNu64 "\n", &($group$->dims_$group_dset$[i]));
|
||||||
assert(!(rc != 1));
|
assert(!(rc != 1));
|
||||||
if (rc != 1) {
|
if (rc != 1) {
|
||||||
FREE(buffer);
|
FREE(buffer);
|
||||||
@ -373,7 +373,7 @@ trexio_text_read_$group$ (trexio_text_t* const file)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = fscanf(f, "%lu", &($group$->$group_num$));
|
rc = fscanf(f, "%" SCNu64 "", &($group$->$group_num$));
|
||||||
assert(!(rc != 1));
|
assert(!(rc != 1));
|
||||||
if (rc != 1) {
|
if (rc != 1) {
|
||||||
FREE(buffer);
|
FREE(buffer);
|
||||||
@ -479,14 +479,14 @@ trexio_text_flush_$group$ (trexio_text_t* const file)
|
|||||||
if ($group$->rank_$group_dset$ != 0) size_$group_dset$ = 1;
|
if ($group$->rank_$group_dset$ != 0) size_$group_dset$ = 1;
|
||||||
|
|
||||||
for (unsigned int i=0; i<$group$->rank_$group_dset$; ++i){
|
for (unsigned int i=0; i<$group$->rank_$group_dset$; ++i){
|
||||||
fprintf(f, "dims_$group_dset$ %u %lu\n", i, $group$->dims_$group_dset$[i]);
|
fprintf(f, "dims_$group_dset$ %u %" PRIu64 "\n", i, $group$->dims_$group_dset$[i]);
|
||||||
size_$group_dset$ *= $group$->dims_$group_dset$[i];
|
size_$group_dset$ *= $group$->dims_$group_dset$[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
// END REPEAT GROUP_DSET
|
// END REPEAT GROUP_DSET
|
||||||
|
|
||||||
// START REPEAT GROUP_NUM
|
// START REPEAT GROUP_NUM
|
||||||
fprintf(f, "$group_num$ %lu\n", $group$->$group_num$);
|
fprintf(f, "$group_num$ %" PRIu64 "\n", $group$->$group_num$);
|
||||||
// END REPEAT GROUP_NUM
|
// END REPEAT GROUP_NUM
|
||||||
|
|
||||||
/* Write arrays */
|
/* Write arrays */
|
||||||
@ -758,7 +758,7 @@ rdm_t* trexio_text_read_rdm(trexio_text_t* const file) {
|
|||||||
assert (rc == 1);
|
assert (rc == 1);
|
||||||
assert (strcmp(buffer, "dim_one_e") == 0);
|
assert (strcmp(buffer, "dim_one_e") == 0);
|
||||||
|
|
||||||
rc = fscanf(f, "%lu", &(rdm->dim_one_e));
|
rc = fscanf(f, "%" SCNu64 "", &(rdm->dim_one_e));
|
||||||
assert (rc == 1);
|
assert (rc == 1);
|
||||||
|
|
||||||
/* Allocate arrays */
|
/* Allocate arrays */
|
||||||
@ -831,7 +831,7 @@ trexio_exit_code trexio_text_flush_rdm(trexio_text_t* const file) {
|
|||||||
fseek(f, 0L, SEEK_SET);
|
fseek(f, 0L, SEEK_SET);
|
||||||
|
|
||||||
/* Write the dimensioning variables */
|
/* Write the dimensioning variables */
|
||||||
fprintf(f, "num %lu\n", rdm->dim_one_e);
|
fprintf(f, "num %" PRIu64 "\n", rdm->dim_one_e);
|
||||||
|
|
||||||
/* Write arrays */
|
/* Write arrays */
|
||||||
fprintf(f, "one_e\n");
|
fprintf(f, "one_e\n");
|
||||||
@ -993,7 +993,7 @@ trexio_text_buffered_read_rdm_two_e(trexio_t* const file,
|
|||||||
fseek(f, (long) offset * line_length, SEEK_SET);
|
fseek(f, (long) offset * line_length, SEEK_SET);
|
||||||
|
|
||||||
for (uint64_t i=0 ; i<size ; ++i) {
|
for (uint64_t i=0 ; i<size ; ++i) {
|
||||||
int rc = fscanf(f, "%9ld %9ld %9ld %9ld %24le\n",
|
int rc = fscanf(f, "%9" SCNd64 " %9" SCNd64 " %9" SCNd64 " %9" SCNd64 " %24le\n",
|
||||||
&index[4*i],
|
&index[4*i],
|
||||||
&index[4*i+1],
|
&index[4*i+1],
|
||||||
&index[4*i+2],
|
&index[4*i+2],
|
||||||
@ -1032,7 +1032,7 @@ trexio_text_buffered_write_rdm_two_e(trexio_t* const file,
|
|||||||
fseek(f, (long) offset * line_length, SEEK_SET);
|
fseek(f, (long) offset * line_length, SEEK_SET);
|
||||||
|
|
||||||
for (uint64_t i=0 ; i<size ; ++i) {
|
for (uint64_t i=0 ; i<size ; ++i) {
|
||||||
int rc = fprintf(f, "%9ld %9ld %9ld %9ld %24le\n",
|
int rc = fprintf(f, "%9" PRId64 " %9" PRId64 " %9" PRId64 " %9" PRId64 " %24le\n",
|
||||||
index[4*i],
|
index[4*i],
|
||||||
index[4*i+1],
|
index[4*i+1],
|
||||||
index[4*i+2],
|
index[4*i+2],
|
||||||
|
@ -77,7 +77,7 @@ int test_h5write() {
|
|||||||
|
|
||||||
// should not work: try to overwrite the nucleus_num
|
// should not work: try to overwrite the nucleus_num
|
||||||
rc = trexio_write_nucleus_num(file,25);
|
rc = trexio_write_nucleus_num(file,25);
|
||||||
assert (rc != TREXIO_SUCCESS);
|
assert (rc == TREXIO_NUM_ALREADY_EXISTS);
|
||||||
|
|
||||||
// close current session
|
// close current session
|
||||||
rc = trexio_close(file);
|
rc = trexio_close(file);
|
||||||
|
@ -151,8 +151,8 @@ for fname in files_funcs_groups:
|
|||||||
std_dtype_out = '24.16e'
|
std_dtype_out = '24.16e'
|
||||||
std_dtype_in = 'lf'
|
std_dtype_in = 'lf'
|
||||||
elif params['dtype'] == 'int64_t':
|
elif params['dtype'] == 'int64_t':
|
||||||
std_dtype_out = 'ld'
|
std_dtype_out = '" PRId64 "'
|
||||||
std_dtype_in = 'ld'
|
std_dtype_in = '" SCNd64 "'
|
||||||
|
|
||||||
templine1 = templine2.replace('$group_dset_std_dtype_out$', std_dtype_out)
|
templine1 = templine2.replace('$group_dset_std_dtype_out$', std_dtype_out)
|
||||||
templine2 = templine1.replace('$group_dset_std_dtype_in$', std_dtype_in)
|
templine2 = templine1.replace('$group_dset_std_dtype_in$', std_dtype_in)
|
||||||
|
Loading…
Reference in New Issue
Block a user