Demo of use of errors in applications.
This commit is contained in:
parent
d162584b11
commit
9f9ab1dc66
17
demos/err/Makefile
Normal file
17
demos/err/Makefile
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Minimal makefile to generate error codes and link a test app
|
||||||
|
SRC= main.c
|
||||||
|
OBJ= main.o
|
||||||
|
HEADER=test_err.h
|
||||||
|
ERROBJ= test_err.o
|
||||||
|
CC=gcc
|
||||||
|
CFLAGS=-I../../include
|
||||||
|
LDFLAGS=-L../.. -lcrypto
|
||||||
|
|
||||||
|
PERL=perl
|
||||||
|
|
||||||
|
testapp: $(OBJ) $(ERROBJ) $(HEADER)
|
||||||
|
$(CC) -o testapp $(OBJ) $(ERROBJ) $(LDFLAGS)
|
||||||
|
|
||||||
|
errors:
|
||||||
|
$(PERL) ../../util/mkerr.pl -conf test_err.ec \
|
||||||
|
-nostatic -write $(SRC)
|
12
demos/err/README
Normal file
12
demos/err/README
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
This directory contains a simple example of how to use the ERR functions of
|
||||||
|
OpenSSL to add error codes to an external application.
|
||||||
|
|
||||||
|
To test it first do "make errors". This will build error codes and add them
|
||||||
|
to the header files. It will also create some functions to load error codes.
|
||||||
|
Notice how "test_err.h" is updated after this call and the C source file
|
||||||
|
"test_err.c" is created. These names are in the test_err.ec file passed to the
|
||||||
|
mkerr.pl script.
|
||||||
|
|
||||||
|
Then do "make" which will build the test application.
|
||||||
|
|
19
demos/err/main.c
Normal file
19
demos/err/main.c
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#include <openssl/err.h>
|
||||||
|
|
||||||
|
#include "test_err.h"
|
||||||
|
|
||||||
|
/* Simple error test routine */
|
||||||
|
|
||||||
|
void a_test_function(void)
|
||||||
|
{
|
||||||
|
TESTerr(TEST_F_A_TEST_FUNCTION, TEST_R_TEST_REASON_CODE);
|
||||||
|
TESTerr(TEST_F_A_TEST_FUNCTION, TEST_R_ANOTHER_TEST_REASON_CODE);
|
||||||
|
ERR_add_error_data(1, "some additional error data");
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
ERR_load_TEST_strings();
|
||||||
|
a_test_function();
|
||||||
|
ERR_print_errors_fp(stderr);
|
||||||
|
}
|
3
demos/err/test_err.ec
Normal file
3
demos/err/test_err.ec
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Details: name of library, header file to use and
|
||||||
|
# file to output error codes to.
|
||||||
|
L TEST test_err.h test_err.c
|
24
demos/err/test_err.h
Normal file
24
demos/err/test_err.h
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
/* Demo of use of error library */
|
||||||
|
|
||||||
|
#ifndef TEST_ERR_H
|
||||||
|
#define TEST_ERR_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Test library name */
|
||||||
|
|
||||||
|
#define TEST_LIB_NAME "demo test library routines"
|
||||||
|
|
||||||
|
/* Normal header details go here */
|
||||||
|
|
||||||
|
/* Prototypes are picked up by the error script to generate strings for
|
||||||
|
* function names.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void a_test_function(void);
|
||||||
|
|
||||||
|
/* Everything after this point is auto generated when you do
|
||||||
|
* "make errors"
|
||||||
|
*/
|
Loading…
x
Reference in New Issue
Block a user