Add command-line switch to support Travis-CI
Add command-line switch '--no-prompt' to fullbench and fuzzer. '--no-prompt' enables : - Throtting stdout to satisfy Travis-CI's stdout limit (10MB). - Prevent Travis-CI's build timeouts and ignore pause by getchar(). http://docs.travis-ci.com/user/build-configuration/#Build-Timeouts
This commit is contained in:
parent
a674c55bd9
commit
0390c7dd9d
@ -50,6 +50,7 @@
|
||||
#include <stdio.h> // fprintf, fopen, ftello64
|
||||
#include <sys/types.h> // stat64
|
||||
#include <sys/stat.h> // stat64
|
||||
#include <string.h> // strcmp
|
||||
|
||||
// Use ftime() if gettimeofday() is not available on your target
|
||||
#if defined(BMK_LEGACY_TIMER)
|
||||
@ -138,6 +139,7 @@ struct chunkParameters
|
||||
// MACRO
|
||||
//**************************************
|
||||
#define DISPLAY(...) fprintf(stderr, __VA_ARGS__)
|
||||
#define PROGRESS(...) no_prompt ? 0 : DISPLAY(__VA_ARGS__)
|
||||
|
||||
|
||||
|
||||
@ -151,6 +153,7 @@ static int compressionTest = 1;
|
||||
static int decompressionTest = 1;
|
||||
static int compressionAlgo = ALL_COMPRESSORS;
|
||||
static int decompressionAlgo = ALL_DECOMPRESSORS;
|
||||
static int no_prompt = 0;
|
||||
|
||||
void BMK_SetBlocksize(int bsize)
|
||||
{
|
||||
@ -478,7 +481,7 @@ int fullSpeedBench(char** fileNamesTable, int nbFiles)
|
||||
double averageTime;
|
||||
int milliTime;
|
||||
|
||||
DISPLAY("%1i-%-19.19s : %9i ->\r", loopNb, cName, (int)benchedSize);
|
||||
PROGRESS("%1i-%-19.19s : %9i ->\r", loopNb, cName, (int)benchedSize);
|
||||
{ size_t i; for (i=0; i<benchedSize; i++) compressed_buff[i]=(char)i; } // warmimg up memory
|
||||
|
||||
nb_loops = 0;
|
||||
@ -502,7 +505,7 @@ int fullSpeedBench(char** fileNamesTable, int nbFiles)
|
||||
if (averageTime < bestTime) bestTime = averageTime;
|
||||
cSize=0; for (chunkNb=0; chunkNb<nbChunks; chunkNb++) cSize += chunkP[chunkNb].compressedSize;
|
||||
ratio = (double)cSize/(double)benchedSize*100.;
|
||||
DISPLAY("%1i-%-19.19s : %9i -> %9i (%5.2f%%),%7.1f MB/s\r", loopNb, cName, (int)benchedSize, (int)cSize, ratio, (double)benchedSize / bestTime / 1000.);
|
||||
PROGRESS("%1i-%-19.19s : %9i -> %9i (%5.2f%%),%7.1f MB/s\r", loopNb, cName, (int)benchedSize, (int)cSize, ratio, (double)benchedSize / bestTime / 1000.);
|
||||
}
|
||||
|
||||
if (ratio<100.)
|
||||
@ -547,7 +550,7 @@ int fullSpeedBench(char** fileNamesTable, int nbFiles)
|
||||
int milliTime;
|
||||
U32 crcDecoded;
|
||||
|
||||
DISPLAY("%1i-%-24.24s :%10i ->\r", loopNb, dName, (int)benchedSize);
|
||||
PROGRESS("%1i-%-24.24s :%10i ->\r", loopNb, dName, (int)benchedSize);
|
||||
|
||||
nb_loops = 0;
|
||||
milliTime = BMK_GetMilliStart();
|
||||
@ -567,7 +570,7 @@ int fullSpeedBench(char** fileNamesTable, int nbFiles)
|
||||
averageTime = (double)milliTime / nb_loops;
|
||||
if (averageTime < bestTime) bestTime = averageTime;
|
||||
|
||||
DISPLAY("%1i-%-24.24s :%10i -> %7.1f MB/s\r", loopNb, dName, (int)benchedSize, (double)benchedSize / bestTime / 1000.);
|
||||
PROGRESS("%1i-%-24.24s :%10i -> %7.1f MB/s\r", loopNb, dName, (int)benchedSize, (double)benchedSize / bestTime / 1000.);
|
||||
|
||||
// CRC Checking
|
||||
crcDecoded = XXH32(orig_buff, (int)benchedSize, 0);
|
||||
@ -658,6 +661,11 @@ int main(int argc, char** argv)
|
||||
char* argument = argv[i];
|
||||
|
||||
if(!argument) continue; // Protection if argument empty
|
||||
if (!strcmp(argument, "--no-prompt"))
|
||||
{
|
||||
no_prompt = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Decode command (note : aggregated commands are allowed)
|
||||
if (argument[0]=='-')
|
||||
|
@ -34,6 +34,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h> // fgets, sscanf
|
||||
#include <sys/timeb.h> // timeb
|
||||
#include <string.h> // strcmp
|
||||
#include "lz4.h"
|
||||
#include "lz4hc.h"
|
||||
|
||||
@ -121,8 +122,8 @@ int FUZ_SecurityTest()
|
||||
}
|
||||
|
||||
|
||||
//int main(int argc, char *argv[]) {
|
||||
int main() {
|
||||
int main(int argc, char** argv) {
|
||||
const int no_prompt = (argc > 1) && (!strcmp(argv[1], "--no-prompt"));
|
||||
unsigned long long bytes = 0;
|
||||
unsigned long long cbytes = 0;
|
||||
unsigned long long hcbytes = 0;
|
||||
@ -136,14 +137,14 @@ int main() {
|
||||
int i, j, k, ret, len, lenHC, attemptNb;
|
||||
char userInput[30] = {0};
|
||||
# define FUZ_CHECKTEST(cond, message) if (cond) { printf("Test %i : %s : seed %u, cycle %i \n", testNb, message, seed, attemptNb); goto _output_error; }
|
||||
# define FUZ_DISPLAYTEST testNb++; printf("%2i\b\b", testNb);
|
||||
# define FUZ_DISPLAYTEST testNb++; no_prompt ? 0 : printf("%2i\b\b", testNb);
|
||||
void* stateLZ4 = malloc(LZ4_sizeofState());
|
||||
void* stateLZ4HC = malloc(LZ4_sizeofStateHC());
|
||||
|
||||
printf("starting LZ4 fuzzer (%s)\n", LZ4_VERSION);
|
||||
printf("Select an Initialisation number (default : random) : ");
|
||||
fflush(stdout);
|
||||
if ( fgets(userInput, sizeof userInput, stdin) )
|
||||
if ( no_prompt || fgets(userInput, sizeof userInput, stdin) )
|
||||
{
|
||||
if ( sscanf(userInput, "%u", &seed) == 1 ) {}
|
||||
else seed = FUZ_GetMilliSpan(timestamp);
|
||||
@ -160,7 +161,17 @@ int main() {
|
||||
{
|
||||
int testNb = 0;
|
||||
|
||||
// note : promptThrottle is throtting stdout to prevent
|
||||
// Travis-CI's output limit (10MB) and false hangup detection.
|
||||
const int promptThrottle = (attemptNb % (NB_ATTEMPTS / 100) == 0);
|
||||
if (!no_prompt || attemptNb == 0 || promptThrottle)
|
||||
{
|
||||
printf("\r%7i /%7i - ", attemptNb, NB_ATTEMPTS);
|
||||
if (no_prompt)
|
||||
{
|
||||
fflush(stdout);
|
||||
}
|
||||
}
|
||||
|
||||
for (j = 0; j < NUM_SEQ; j++) {
|
||||
seeds[j] = FUZ_rand(&randState) << 8;
|
||||
@ -293,10 +304,10 @@ int main() {
|
||||
printf("all tests completed successfully \n");
|
||||
printf("compression ratio: %0.3f%%\n", (double)cbytes/bytes*100);
|
||||
printf("HC compression ratio: %0.3f%%\n", (double)hcbytes/bytes*100);
|
||||
getchar();
|
||||
if(!no_prompt) getchar();
|
||||
return 0;
|
||||
|
||||
_output_error:
|
||||
getchar();
|
||||
if(!no_prompt) getchar();
|
||||
return 1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user