|
Packit |
dd8086 |
#ifdef HAVE_CONFIG_H
|
|
Packit |
dd8086 |
#include "config.h"
|
|
Packit |
dd8086 |
#define __CDIO_CONFIG_H__ 1
|
|
Packit |
dd8086 |
#endif
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
#ifdef HAVE_STDIO_H
|
|
Packit |
dd8086 |
#include <stdio.h>
|
|
Packit |
dd8086 |
#endif
|
|
Packit |
dd8086 |
#ifdef HAVE_STDLIB_H
|
|
Packit |
dd8086 |
#include <stdlib.h>
|
|
Packit |
dd8086 |
#endif
|
|
Packit |
dd8086 |
#ifdef HAVE_STRING_H
|
|
Packit |
dd8086 |
#include <string.h>
|
|
Packit |
dd8086 |
#endif
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
#include <cdio/logging.h>
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
char *last_debugmsg = NULL;
|
|
Packit |
dd8086 |
char *last_infomsg = NULL;
|
|
Packit |
dd8086 |
char *last_warnmsg = NULL;
|
|
Packit |
dd8086 |
char *last_errmsg = NULL;
|
|
Packit |
dd8086 |
char *last_assertmsg = NULL;
|
|
Packit |
dd8086 |
char *last_othermsg = NULL;
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
/* Here is an example of a custom log handler. */
|
|
Packit |
dd8086 |
static void
|
|
Packit |
dd8086 |
test_log_handler (cdio_log_level_t level, const char *message)
|
|
Packit |
dd8086 |
{
|
|
Packit |
dd8086 |
switch(level) {
|
|
Packit |
dd8086 |
case CDIO_LOG_DEBUG:
|
|
Packit |
dd8086 |
last_debugmsg = strdup(message);
|
|
Packit |
dd8086 |
return;
|
|
Packit |
dd8086 |
case CDIO_LOG_INFO:
|
|
Packit |
dd8086 |
last_infomsg = strdup(message);
|
|
Packit |
dd8086 |
return;
|
|
Packit |
dd8086 |
case CDIO_LOG_WARN:
|
|
Packit |
dd8086 |
last_warnmsg = strdup(message);
|
|
Packit |
dd8086 |
return;
|
|
Packit |
dd8086 |
case CDIO_LOG_ERROR:
|
|
Packit |
dd8086 |
last_errmsg = strdup(message);
|
|
Packit |
dd8086 |
return;
|
|
Packit |
dd8086 |
case CDIO_LOG_ASSERT:
|
|
Packit |
dd8086 |
last_assertmsg = strdup(message);
|
|
Packit |
dd8086 |
return;
|
|
Packit |
dd8086 |
default:
|
|
Packit |
dd8086 |
fprintf(stderr, "level %d message: %s should not happen\n",
|
|
Packit |
dd8086 |
level, message);
|
|
Packit |
dd8086 |
exit(20);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
int
|
|
Packit |
dd8086 |
main(int argc, const char *argv[])
|
|
Packit |
dd8086 |
{
|
|
Packit |
dd8086 |
const char *test_msg = "test message";
|
|
Packit |
dd8086 |
#ifndef HAVE_WIN32_CDROM
|
|
Packit |
dd8086 |
cdio_log_handler_t old_log_handler = (cdio_log_handler_t) NULL;
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
old_log_handler = cdio_log_set_handler(test_log_handler);
|
|
Packit |
dd8086 |
if (old_log_handler != cdio_default_log_handler) {
|
|
Packit |
dd8086 |
fprintf(stderr, "Should have gotten old log handler back %p vs %p\n",
|
|
Packit |
dd8086 |
(void *) old_log_handler,
|
|
Packit |
dd8086 |
(void *) cdio_default_log_handler);
|
|
Packit |
dd8086 |
exit(1);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
#else
|
|
Packit |
dd8086 |
cdio_log_set_handler(test_log_handler);
|
|
Packit |
dd8086 |
#endif
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
/* Check that calling each of the logger routine appears in the right variable,
|
|
Packit |
dd8086 |
based on the log level */
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
test_msg = "debug";
|
|
Packit |
dd8086 |
cdio_debug("%s", test_msg);
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
if (last_debugmsg != NULL) {
|
|
Packit |
dd8086 |
fprintf(stderr, "debug message should have been ignored due to default log level\n");
|
|
Packit |
dd8086 |
exit(2);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
cdio_loglevel_default = CDIO_LOG_DEBUG;
|
|
Packit |
dd8086 |
cdio_debug("%s", test_msg);
|
|
Packit |
dd8086 |
if (last_debugmsg == NULL ||
|
|
Packit |
dd8086 |
strncmp(test_msg, last_debugmsg, strlen(test_msg)) != 0) {
|
|
Packit |
dd8086 |
fprintf(stderr, "debug message %s did not get handled\n",
|
|
Packit |
dd8086 |
last_debugmsg);
|
|
Packit |
dd8086 |
free(last_debugmsg);
|
|
Packit |
dd8086 |
exit(2);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
free(last_debugmsg);
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
test_msg = "info";
|
|
Packit |
dd8086 |
cdio_info("%s", test_msg);
|
|
Packit |
dd8086 |
if (strncmp(test_msg, last_infomsg, strlen(test_msg)) != 0) {
|
|
Packit |
dd8086 |
fprintf(stderr, "info message %s did not get handled\n", last_infomsg);
|
|
Packit |
dd8086 |
free(last_infomsg);
|
|
Packit |
dd8086 |
exit(3);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
free(last_infomsg);
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
test_msg = "warn";
|
|
Packit |
dd8086 |
cdio_warn("%s", test_msg);
|
|
Packit |
dd8086 |
if (strncmp(test_msg, last_warnmsg, strlen(test_msg)) != 0) {
|
|
Packit |
dd8086 |
fprintf(stderr, "warn message %s did not get handled\n", last_warnmsg);
|
|
Packit |
dd8086 |
free(last_warnmsg);
|
|
Packit |
dd8086 |
exit(4);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
free(last_warnmsg);
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
test_msg = "error";
|
|
Packit |
dd8086 |
cdio_error("%s", test_msg);
|
|
Packit |
dd8086 |
if (strncmp(test_msg, last_errmsg, strlen(test_msg)) != 0) {
|
|
Packit |
dd8086 |
fprintf(stderr, "error message %s did not get handled\n", last_errmsg);
|
|
Packit |
dd8086 |
free(last_errmsg);
|
|
Packit |
dd8086 |
exit(5);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
free(last_errmsg);
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
/* Try using generic cdio_log routine */
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
test_msg = "debug via cdio_log";
|
|
Packit |
dd8086 |
cdio_log(CDIO_LOG_DEBUG, "%s", test_msg);
|
|
Packit |
dd8086 |
if (strncmp(test_msg, last_debugmsg, strlen(test_msg)) != 0) {
|
|
Packit |
dd8086 |
fprintf(stderr, "debug message %s did not get handled, phase 2\n", last_debugmsg);
|
|
Packit |
dd8086 |
free(last_debugmsg);
|
|
Packit |
dd8086 |
exit(6);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
free(last_debugmsg);
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
test_msg = "info via cdio_log";
|
|
Packit |
dd8086 |
cdio_log(CDIO_LOG_INFO, "%s", test_msg);
|
|
Packit |
dd8086 |
if (strncmp(test_msg, last_infomsg, strlen(test_msg)) != 0) {
|
|
Packit |
dd8086 |
fprintf(stderr, "info message %s did not get handled\n", last_infomsg);
|
|
Packit |
dd8086 |
free(last_infomsg);
|
|
Packit |
dd8086 |
exit(7);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
free(last_infomsg);
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
test_msg = "warn via cdio_log";
|
|
Packit |
dd8086 |
cdio_log(CDIO_LOG_WARN, "%s", test_msg);
|
|
Packit |
dd8086 |
if (strncmp(test_msg, last_warnmsg, strlen(test_msg)) != 0) {
|
|
Packit |
dd8086 |
fprintf(stderr, "warn message %s did not get handled\n", last_warnmsg);
|
|
Packit |
dd8086 |
free(last_warnmsg);
|
|
Packit |
dd8086 |
exit(8);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
free(last_warnmsg);
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
test_msg = "error via cdio_log";
|
|
Packit |
dd8086 |
cdio_log(CDIO_LOG_ERROR, "%s", test_msg);
|
|
Packit |
dd8086 |
if (strncmp(test_msg, last_errmsg, strlen(test_msg)) != 0) {
|
|
Packit |
dd8086 |
fprintf(stderr, "error message %s did not get handled\n", last_errmsg);
|
|
Packit |
dd8086 |
free(last_errmsg);
|
|
Packit |
dd8086 |
exit(9);
|
|
Packit |
dd8086 |
}
|
|
Packit |
dd8086 |
free(last_errmsg);
|
|
Packit |
dd8086 |
|
|
Packit |
dd8086 |
exit(0);
|
|
Packit |
dd8086 |
}
|