Added log order scripts and more debug output
This commit is contained in:
68
log_manager/test/logorder.sh
Executable file
68
log_manager/test/logorder.sh
Executable file
@ -0,0 +1,68 @@
|
||||
#! /bin/bash
|
||||
|
||||
#create the logfile with flushes every seven writes
|
||||
|
||||
rm *.log
|
||||
|
||||
$PWD/testorder 200 0 8000
|
||||
|
||||
STARTS=`cat skygw_err1.log |tr -s ' '|grep -a -o 'start:[[:alnum:]]\+'|cut -d ':' -f 2`
|
||||
MESSAGES=`cat skygw_err1.log |tr -s ' '|grep -a -o 'message:[[:alnum:]]\+'|cut -d ':' -f 2`
|
||||
ENDS=`cat skygw_err1.log |tr -s ' '|grep -a -o 'end:[[:alnum:]]\+'|cut -d ':' -f 2`
|
||||
|
||||
prev=0
|
||||
error=0
|
||||
|
||||
for i in $STARTS
|
||||
do
|
||||
if [[ $i -le $prev ]]
|
||||
then
|
||||
error=1
|
||||
echo "start mismatch: $i was after $prev."
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ error -eq 0 ]]
|
||||
then
|
||||
echo "Block buffer starts were in order"
|
||||
else
|
||||
echo "Error: block buffers were written in the wrong order"
|
||||
fi
|
||||
|
||||
prev=0
|
||||
error=0
|
||||
|
||||
for i in $MESSAGES
|
||||
do
|
||||
if [[ $i -le $prev ]]
|
||||
then
|
||||
error=1
|
||||
echo "message mismatch: $i was after $prev."
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ error -eq 0 ]]
|
||||
then
|
||||
echo "Block buffer messages were in order"
|
||||
else
|
||||
echo "Error: block buffer messages were written in the wrong order"
|
||||
fi
|
||||
|
||||
prev=0
|
||||
error=0
|
||||
|
||||
for i in $ENDS
|
||||
do
|
||||
if [[ $i -le $prev ]]
|
||||
then
|
||||
error=1
|
||||
echo "end mismatch: $i was after $prev."
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ error -eq 0 ]]
|
||||
then
|
||||
echo "Block buffer ends were in order"
|
||||
else
|
||||
echo "Error: block buffers were written in the wrong order"
|
||||
fi
|
@ -15,6 +15,7 @@
|
||||
*
|
||||
* Copyright SkySQL Ab 2013
|
||||
*/
|
||||
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@ -25,18 +26,34 @@
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int iterations = 0, i, interval = 10;
|
||||
int block_size;
|
||||
int succp = 0, err = 0;
|
||||
char cwd[1024];
|
||||
char tmp[2048];
|
||||
char message[1024];
|
||||
char *message;
|
||||
char** optstr;
|
||||
long msg_index = 1;
|
||||
|
||||
|
||||
memset(cwd,0,1024);
|
||||
if( argc <3 ||
|
||||
getcwd(cwd,sizeof(cwd)) == NULL ||
|
||||
(optstr = malloc(sizeof(char*)*4)) == NULL){
|
||||
if( argc <4){
|
||||
fprintf(stderr,
|
||||
"Log Manager Log Order Test\n"
|
||||
"Writes an ascending number into the error log to determine if log writes are in order.\n"
|
||||
"Usage:\t testorder <iterations> <frequency of log flushes> <size of message in bytes>\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
block_size = atoi(argv[3]);
|
||||
if(block_size < 1){
|
||||
fprintf(stderr,"Message size too small, must be at least 1 byte long.");
|
||||
}
|
||||
|
||||
|
||||
if(getcwd(cwd,sizeof(cwd)) == NULL ||
|
||||
(optstr = (char**)malloc(sizeof(char*)*4)) == NULL ||
|
||||
(message = (char*)malloc(sizeof(char)*block_size))== NULL){
|
||||
fprintf(stderr,"Fatal Error, exiting...");
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -60,10 +77,9 @@ int main(int argc, char** argv)
|
||||
|
||||
for(i = 0;i<iterations;i++){
|
||||
|
||||
memset(message,' ',1024);
|
||||
sprintf(message,"message:%ld",msg_index++);
|
||||
message[1023] = '\0';
|
||||
|
||||
memset(message + strlen(message),' ',block_size - strlen(message));
|
||||
memset(message + block_size - 1,'\0',1);
|
||||
if(interval > 0 && i % interval == 0){
|
||||
err = skygw_log_write_flush(LOGFILE_ERROR, message);
|
||||
}else{
|
||||
@ -76,6 +92,7 @@ int main(int argc, char** argv)
|
||||
}
|
||||
|
||||
skygw_logmanager_done();
|
||||
free(message);
|
||||
free(optstr[0]);
|
||||
free(optstr[1]);
|
||||
free(optstr[2]);
|
||||
|
Reference in New Issue
Block a user