Log manager erroneously wrote string termination character after every log message.

Added a few trivial test cases.
This commit is contained in:
vraatikka
2013-07-26 15:21:54 +03:00
parent 4a4383f6aa
commit 2f189cb153
2 changed files with 25 additions and 7 deletions

View File

@ -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.
*/ */

View File

@ -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;
} }