mirror of
https://github.com/TREX-CoE/qmckl.git
synced 2024-12-22 20:36:01 +01:00
Working on tests for QMCKL_ERROR. #15
This commit is contained in:
parent
9479ec51ff
commit
97e74c6c3f
@ -293,8 +293,52 @@ qmckl_set_error(qmckl_context context,
|
|||||||
}
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
* Failing
|
* Get the error
|
||||||
|
|
||||||
|
Upon error, the error type and message can be obtained from the
|
||||||
|
context using ~qmckl_get_error~. The message and function name
|
||||||
|
is returned in the variables provided. Therefore, passing a
|
||||||
|
function name and message is mandatory.
|
||||||
|
|
||||||
|
# Header
|
||||||
|
#+begin_src c :comments org :tangle (eval h_func) :exports none
|
||||||
|
qmckl_exit_code
|
||||||
|
qmckl_get_error(qmckl_context context,
|
||||||
|
const qmckl_exit_code exit_code,
|
||||||
|
const char* function_name,
|
||||||
|
const char* message);
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
# Source
|
||||||
|
#+begin_src c :tangle (eval c)
|
||||||
|
qmckl_exit_code
|
||||||
|
qmckl_get_error(qmckl_context context,
|
||||||
|
const char* function_name,
|
||||||
|
const char* message)
|
||||||
|
{
|
||||||
|
/* Passing a function name and a message is mandatory. */
|
||||||
|
assert (function_name != NULL);
|
||||||
|
assert (message != NULL);
|
||||||
|
|
||||||
|
/* The context is assumed to exist. */
|
||||||
|
assert (qmckl_context_check(context) != QMCKL_NULL_CONTEXT);
|
||||||
|
|
||||||
|
qmckl_lock(context);
|
||||||
|
{
|
||||||
|
qmckl_context_struct* const ctx = (qmckl_context_struct* const) context;
|
||||||
|
assert (ctx != NULL); /* Impossible because the context is valid. */
|
||||||
|
|
||||||
|
strncpy(function_name, ctx->error.function, QMCKL_MAX_FUN_LEN-1);
|
||||||
|
strncpy(message , ctx->error.message , QMCKL_MAX_MSG_LEN-1);
|
||||||
|
}
|
||||||
|
qmckl_unlock(context);
|
||||||
|
|
||||||
|
return QMCKL_SUCCESS;
|
||||||
|
}
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
* Failing
|
||||||
|
|
||||||
To make a function fail, the ~qmckl_failwith~ function should be
|
To make a function fail, the ~qmckl_failwith~ function should be
|
||||||
called, such that information about the failure is stored in
|
called, such that information about the failure is stored in
|
||||||
the context. The desired exit code is given as an argument, as
|
the context. The desired exit code is given as an argument, as
|
||||||
@ -363,6 +407,8 @@ if (x < 0) {
|
|||||||
|
|
||||||
** Test
|
** Test
|
||||||
#+begin_src c :comments link :tangle (eval c_test)
|
#+begin_src c :comments link :tangle (eval c_test)
|
||||||
|
const char* function_name[QMCKL_MAX_FUN_LEN]={'q','m','c','k','l','_','t','r','a','n','s','p','o','s','e','\0'};
|
||||||
|
const char* message[QMCKL_MAX_FUN_LEN]={'S','u','c','c','e','s','s','\0'};
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
Loading…
Reference in New Issue
Block a user