- x64
environment:
matrix:
- - PlatformToolset: v100
+# - PlatformToolset: v100
- PlatformToolset: v110
- PlatformToolset: v120
- PlatformToolset: v140
/* *************************************
* 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 <stdlib.h> /* malloc, free */
#include <string.h> /* memset */
#include <stdio.h> /* fprintf, fopen, ftello64 */
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;
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<nbFiles; i++) DISPLAYLEVEL(3, "%d %s\n", i, filenameTable[i]);
- BMK_benchFileTable(filenameTable, nbFiles, dictFileName, cLevel, cLevelLast);
- UTIL_freeFileList(filenameTable, buf);
+ if (recursive) {
+ char* buf;
+ const char** filenameTable;
+ unsigned i;
+ nbFiles = UTIL_createFileList(fileNamesTable, nbFiles, MAX_LIST_SIZE, &filenameTable, &buf);
+ if (filenameTable) {
+ for (i=0; i<nbFiles; i++) DISPLAYLEVEL(3, "%d %s\n", i, filenameTable[i]);
+ BMK_benchFileTable(filenameTable, nbFiles, dictFileName, cLevel, cLevelLast);
+ UTIL_freeFileList(filenameTable, buf);
+ }
}
+ else BMK_benchFileTable(fileNamesTable, nbFiles, dictFileName, cLevel, cLevelLast);
#else
BMK_benchFileTable(fileNamesTable, nbFiles, dictFileName, cLevel, cLevelLast);
#endif
/* Main function */
int BMK_benchFiles(const char** fileNamesTable, unsigned nbFiles,
- const char* dictFileName, int cLevel, int cLevelLast);
+ const char* dictFileName, int cLevel, int cLevelLast, int recursive);
/* Set Parameters */
void BMK_SetNbIterations(unsigned nbLoops);
#include <stdlib.h> /* malloc, free */
#include <string.h> /* memset */
#include <stdio.h> /* fprintf, fopen, ftello64 */
+#include <time.h> /* clock_t, clock, CLOCKS_PER_SEC */
#include "mem.h" /* read */
#include "error_private.h"
# 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 <unistd.h>
# include <sys/resource.h> /* setpriority */
# include <time.h> /* clock_t, nanosleep, clock, CLOCKS_PER_SEC */
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 <dirent.h> /* opendir, readdir */
# include <limits.h> /* PATH_MAX */
/*-************************************
* Compiler Options
**************************************/
-#define _CRT_SECURE_NO_WARNINGS /* Visual : removes warning from strcpy */
#define _POSIX_SOURCE 1 /* triggers fileno() within <stdio.h> on unix */
/*-************************************
* Includes
**************************************/
-#include <stdio.h> /* fprintf, getchar */
-#include <stdlib.h> /* exit, calloc, free */
+#include "util.h" /* Compiler options, UTIL_HAS_CREATEFILELIST */
#include <string.h> /* strcmp, strlen */
#include <ctype.h> /* toupper */
#include "fileio.h"
#endif
#include "zstd_static.h" /* ZSTD_maxCLevel, ZSTD version numbers */
#ifndef ZSTD_NODICT
-# include "dibio.h" /* BMK_benchFiles, BMK_SetNbIterations */
+# include "dibio.h"
#endif
#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;
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];
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;
/* 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;
}
break;
+ /* recursive */
+ case 'r': recursive=1; argument++; break;
+
/* cut input into blocks (benchmark only) */
case 'B':
{ size_t bSize = 0;
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 */
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;
}