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…
Reference in New Issue
Block a user