diff --git a/appveyor.yml b/appveyor.yml index 93c8c9301..df8d15572 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -7,7 +7,7 @@ platform: - x64 environment: matrix: - - PlatformToolset: v100 +# - PlatformToolset: v100 - PlatformToolset: v110 - PlatformToolset: v120 - PlatformToolset: v140 diff --git a/programs/bench.c b/programs/bench.c index 4a3a4b6e1..f97e9bb98 100644 --- a/programs/bench.c +++ b/programs/bench.c @@ -26,7 +26,7 @@ /* ************************************* * Includes ***************************************/ -#include "util.h" /* Compiler options, UTIL_GetFileSize, UTIL_createFileList, UTIL_sleep */ +#include "util.h" /* Compiler options, UTIL_GetFileSize, UTIL_HAS_CREATEFILELIST, UTIL_sleep */ #include /* malloc, free */ #include /* memset */ #include /* fprintf, fopen, ftello64 */ @@ -501,7 +501,7 @@ static void BMK_syntheticTest(int cLevel, int cLevelLast, double compressibility int BMK_benchFiles(const char** fileNamesTable, unsigned nbFiles, - const char* dictFileName, int cLevel, int cLevelLast) + const char* dictFileName, int cLevel, int cLevelLast, int recursive) { double const compressibility = (double)g_compressibilityDefault / 100; @@ -510,15 +510,18 @@ int BMK_benchFiles(const char** fileNamesTable, unsigned nbFiles, else { #ifdef UTIL_HAS_CREATEFILELIST - char* buf; - const char** filenameTable; - unsigned i; - nbFiles = UTIL_createFileList(fileNamesTable, nbFiles, MAX_LIST_SIZE, &filenameTable, &buf); - if (filenameTable) { - for (i=0; i /* malloc, free */ #include /* memset */ #include /* fprintf, fopen, ftello64 */ +#include /* clock_t, clock, CLOCKS_PER_SEC */ #include "mem.h" /* read */ #include "error_private.h" diff --git a/programs/util.h b/programs/util.h index 25eb31d22..7f7384383 100644 --- a/programs/util.h +++ b/programs/util.h @@ -85,7 +85,7 @@ extern "C" { # define SET_HIGH_PRIORITY SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS) # define UTIL_sleep(s) Sleep(1000*s) # define UTIL_sleepMilli(milli) Sleep(milli) -#elif (defined(__unix__) || defined(__unix) || (defined(__APPLE__) && defined(__MACH__))) +#elif (defined(__unix__) || defined(__unix) || defined(__midipix__) || (defined(__APPLE__) && defined(__MACH__))) # include # include /* setpriority */ # include /* clock_t, nanosleep, clock, CLOCKS_PER_SEC */ @@ -255,7 +255,7 @@ next: return nbFiles; } -#elif (defined(__unix__) || defined(__unix) || (defined(__APPLE__) && defined(__MACH__))) && defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200112L) /* snprintf, opendir */ +#elif (defined(__unix__) || defined(__unix) || defined(__midipix__) || (defined(__APPLE__) && defined(__MACH__))) && defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200112L) /* snprintf, opendir */ # define UTIL_HAS_CREATEFILELIST # include /* opendir, readdir */ # include /* PATH_MAX */ diff --git a/programs/zstdcli.c b/programs/zstdcli.c index 98e6c0d3a..5d00e81d5 100644 --- a/programs/zstdcli.c +++ b/programs/zstdcli.c @@ -31,15 +31,13 @@ /*-************************************ * Compiler Options **************************************/ -#define _CRT_SECURE_NO_WARNINGS /* Visual : removes warning from strcpy */ #define _POSIX_SOURCE 1 /* triggers fileno() within on unix */ /*-************************************ * Includes **************************************/ -#include /* fprintf, getchar */ -#include /* exit, calloc, free */ +#include "util.h" /* Compiler options, UTIL_HAS_CREATEFILELIST */ #include /* strcmp, strlen */ #include /* toupper */ #include "fileio.h" @@ -48,7 +46,7 @@ #endif #include "zstd_static.h" /* ZSTD_maxCLevel, ZSTD version numbers */ #ifndef ZSTD_NODICT -# include "dibio.h" /* BMK_benchFiles, BMK_SetNbIterations */ +# include "dibio.h" #endif @@ -148,8 +146,11 @@ static int usage_advanced(const char* programName) #ifndef ZSTD_NOBENCH DISPLAY( "Benchmark arguments :\n"); DISPLAY( " -b# : benchmark file(s), using # compression level (default : 1) \n"); - DISPLAY( " -r# : test all compression levels from -bX to # (default: 1)\n"); + DISPLAY( " -e# : test all compression levels from -bX to # (default: 1)\n"); DISPLAY( " -i# : iteration loops [1-9](default : 3)\n"); +#ifdef UTIL_HAS_CREATEFILELIST + DISPLAY( " -r : operate recursively on directories\n"); +#endif DISPLAY( " -B# : cut file into independent blocks of size # (default: no block)\n"); #endif return 0; @@ -188,6 +189,7 @@ int main(int argCount, const char** argv) nextArgumentIsMaxDict=0; unsigned cLevel = 1; unsigned cLevelLast = 1; + unsigned recursive = 0; const char** filenameTable = (const char**)malloc(argCount * sizeof(const char*)); /* argCount >= 1 */ unsigned filenameIdx = 0; const char* programName = argv[0]; @@ -199,7 +201,7 @@ int main(int argCount, const char** argv) unsigned dictSelect = g_defaultSelectivityLevel; /* init */ - (void)cLevelLast; (void)dictCLevel; /* not used when ZSTD_NOBENCH / ZSTD_NODICT set */ + (void)recursive; (void)cLevelLast; (void)dictCLevel; /* not used when ZSTD_NOBENCH / ZSTD_NODICT set */ (void)decode; (void)cLevel; /* not used when ZSTD_NOCOMPRESS set */ if (filenameTable==NULL) { DISPLAY("not enough memory\n"); exit(1); } displayOut = stderr; @@ -294,6 +296,17 @@ int main(int argCount, const char** argv) /* Benchmark */ case 'b': bench=1; argument++; break; + /* range bench (benchmark only) */ + case 'e': + /* compression Level */ + argument++; + if ((*argument>='0') && (*argument<='9')) { + cLevelLast = 0; + while ((*argument >= '0') && (*argument <= '9')) + cLevelLast *= 10, cLevelLast += *argument++ - '0'; + } + break; + /* Modify Nb Iterations (benchmark only) */ case 'i': { U32 iters= 0; @@ -305,6 +318,9 @@ int main(int argCount, const char** argv) } break; + /* recursive */ + case 'r': recursive=1; argument++; break; + /* cut input into blocks (benchmark only) */ case 'B': { size_t bSize = 0; @@ -318,17 +334,6 @@ int main(int argCount, const char** argv) BMK_SetBlockSize(bSize); } break; - - /* range bench (benchmark only) */ - case 'r': - /* compression Level */ - argument++; - if ((*argument>='0') && (*argument<='9')) { - cLevelLast = 0; - while ((*argument >= '0') && (*argument <= '9')) - cLevelLast *= 10, cLevelLast += *argument++ - '0'; - } - break; #endif /* ZSTD_NOBENCH */ /* Selection level */ @@ -390,7 +395,7 @@ int main(int argCount, const char** argv) if (bench) { #ifndef ZSTD_NOBENCH BMK_setNotificationLevel(displayLevel); - BMK_benchFiles(filenameTable, filenameIdx, dictFileName, cLevel, cLevelLast); + BMK_benchFiles(filenameTable, filenameIdx, dictFileName, cLevel, cLevelLast, recursive); #endif goto _end; }