Log manager erroneously wrote string termination character after every log message.
Added a few trivial test cases.
This commit is contained in:
@ -538,7 +538,7 @@ static int logmanager_write_log(
|
|||||||
} else {
|
} else {
|
||||||
snprintf(wp, str_len, str);
|
snprintf(wp, str_len, str);
|
||||||
}
|
}
|
||||||
wp[str_len-2]='\n';
|
wp[str_len-1]='\n';
|
||||||
|
|
||||||
/** lock-free unregistration */
|
/** lock-free unregistration */
|
||||||
blockbuf_unregister(bb);
|
blockbuf_unregister(bb);
|
||||||
@ -836,9 +836,9 @@ int skygw_log_write_flush(
|
|||||||
len = vsnprintf(NULL, 0, str, valist);
|
len = vsnprintf(NULL, 0, str, valist);
|
||||||
va_end(valist);
|
va_end(valist);
|
||||||
/**
|
/**
|
||||||
* Add one for line feed and one for '\0'.
|
* Add one for line feed.
|
||||||
*/
|
*/
|
||||||
len += 2;
|
len += 1;
|
||||||
/**
|
/**
|
||||||
* Write log string to buffer and add to file write list.
|
* Write log string to buffer and add to file write list.
|
||||||
*/
|
*/
|
||||||
@ -887,9 +887,9 @@ int skygw_log_write(
|
|||||||
len = vsnprintf(NULL, 0, str, valist);
|
len = vsnprintf(NULL, 0, str, valist);
|
||||||
va_end(valist);
|
va_end(valist);
|
||||||
/**
|
/**
|
||||||
* Add one for line feed and one for '\0'.
|
* Add one for line feed.
|
||||||
*/
|
*/
|
||||||
len += 2;
|
len += 1;
|
||||||
/**
|
/**
|
||||||
* Write log string to buffer and add to file write list.
|
* Write log string to buffer and add to file write list.
|
||||||
*/
|
*/
|
||||||
|
@ -40,6 +40,9 @@ static void* thr_run_morelog(void* data);
|
|||||||
#define NTHR 256
|
#define NTHR 256
|
||||||
#define NITER 100
|
#define NITER 100
|
||||||
|
|
||||||
|
#define TEST1
|
||||||
|
#define TEST2
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
int err = 0;
|
int err = 0;
|
||||||
@ -60,6 +63,18 @@ int main(int argc, char* argv[])
|
|||||||
|
|
||||||
r = skygw_logmanager_init(NULL, argc, argv);
|
r = skygw_logmanager_init(NULL, argc, argv);
|
||||||
ss_dassert(r);
|
ss_dassert(r);
|
||||||
|
|
||||||
|
skygw_logmanager_init(NULL, argc, argv);
|
||||||
|
logstr = ("First write with flush.");
|
||||||
|
err = skygw_log_write_flush(NULL, LOGFILE_ERROR, logstr);
|
||||||
|
|
||||||
|
logstr = ("Second write, no flush.");
|
||||||
|
err = skygw_log_write(NULL, LOGFILE_ERROR, logstr);
|
||||||
|
|
||||||
|
logstr = ("Third write, no flush. Next flush only.");
|
||||||
|
err = skygw_log_write(NULL, LOGFILE_ERROR, logstr);
|
||||||
|
|
||||||
|
err = skygw_log_flush(LOGFILE_ERROR);
|
||||||
|
|
||||||
logstr = "My name is %s %d years and %d months.";
|
logstr = "My name is %s %d years and %d months.";
|
||||||
err = skygw_log_write(NULL, LOGFILE_TRACE, logstr, "TraceyTracey", 3, 7);
|
err = skygw_log_write(NULL, LOGFILE_TRACE, logstr, "TraceyTracey", 3, 7);
|
||||||
@ -98,6 +113,8 @@ int main(int argc, char* argv[])
|
|||||||
err = skygw_log_write(NULL, LOGFILE_MESSAGE, logstr);
|
err = skygw_log_write(NULL, LOGFILE_MESSAGE, logstr);
|
||||||
skygw_logmanager_done(NULL);
|
skygw_logmanager_done(NULL);
|
||||||
|
|
||||||
|
#if defined(TEST1)
|
||||||
|
|
||||||
mes = skygw_message_init();
|
mes = skygw_message_init();
|
||||||
mtx = simple_mutex_init(NULL, strdup("testmtx"));
|
mtx = simple_mutex_init(NULL, strdup("testmtx"));
|
||||||
/** Test starts */
|
/** Test starts */
|
||||||
@ -140,7 +157,8 @@ int main(int argc, char* argv[])
|
|||||||
for (i=0; i<NTHR; i++) {
|
for (i=0; i<NTHR; i++) {
|
||||||
free(thr[i]);
|
free(thr[i]);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
#if defined(TEST2)
|
||||||
fprintf(stderr, "\nStarting test #2 \n");
|
fprintf(stderr, "\nStarting test #2 \n");
|
||||||
|
|
||||||
/** 2 */
|
/** 2 */
|
||||||
@ -194,7 +212,7 @@ int main(int argc, char* argv[])
|
|||||||
/** Test ended here */
|
/** Test ended here */
|
||||||
skygw_message_done(mes);
|
skygw_message_done(mes);
|
||||||
simple_mutex_done(mtx);
|
simple_mutex_done(mtx);
|
||||||
|
#endif
|
||||||
fprintf(stderr, ".. done.\n");
|
fprintf(stderr, ".. done.\n");
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user