#include "zstd_static.h" /* ZSTD_parameters */
#include "zbuff.h"
-#ifndef MIN
- #define MIN(a,b) ((a)<(b) ? (a) : (b))
-#endif
+#define ZBUFF_MIN(a,b) ((a)<(b) ? (a) : (b))
/*-*************************************
MEM_STATIC size_t ZBUFF_limitCopy(void* dst, size_t dstCapacity, const void* src, size_t srcSize)
{
- size_t length = MIN(dstCapacity, srcSize);
+ size_t length = ZBUFF_MIN(dstCapacity, srcSize);
memcpy(dst, src, length);
return length;
}
/* *************************************
* Includes
***************************************/
-#include "util.h" /* Compiler options, UTIL_GetFileSize, UTIL_HAS_CREATEFILELIST, UTIL_sleep */
+#include "util.h" /* Compiler options, UTIL_GetFileSize, 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, int recursive)
+ const char* dictFileName, int cLevel, int cLevelLast)
{
double const compressibility = (double)g_compressibilityDefault / 100;
if (nbFiles == 0)
BMK_syntheticTest(cLevel, cLevelLast, compressibility);
else
- {
-#ifdef UTIL_HAS_CREATEFILELIST
- if (recursive) {
- char* buf;
- const char** filenameTable;
- unsigned i;
- filenameTable = UTIL_createFileList(fileNamesTable, nbFiles, &buf, &nbFiles);
- 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
- (void)recursive;
BMK_benchFileTable(fileNamesTable, nbFiles, dictFileName, cLevel, cLevelLast);
-#endif
- }
return 0;
}
/* Main function */
int BMK_benchFiles(const char** fileNamesTable, unsigned nbFiles,
- const char* dictFileName, int cLevel, int cLevelLast, int recursive);
+ const char* dictFileName, int cLevel, int cLevelLast);
/* Set Parameters */
void BMK_SetNbIterations(unsigned nbLoops);
bufend = buf + LIST_SIZE_INCREASE;
for (i=0, pos=0, nbFiles=0; i<inputNamesNb; i++) {
- if (UTIL_doesFileExists(inputNames[i])) {
- // printf ("UTIL_doesFileExists=[%s]\n", inputNames[i]);
+ if (!UTIL_isDirectory(inputNames[i])) {
size_t len = strlen(inputNames[i]);
if (buf + pos + len >= bufend) {
ptrdiff_t newListSize = (bufend - buf) + LIST_SIZE_INCREASE;
return FUZ_rLogLength(seed, logLength);
}
+#define MIN(a,b) ( (a) < (b) ? (a) : (b) )
+
#define CHECK(cond, ...) if (cond) { DISPLAY("Error => "); DISPLAY(__VA_ARGS__); \
DISPLAY(" (seed %u, test nb %u) \n", seed, testNb); goto _output_error; }
DISPLAY( " -v : verbose mode\n");
DISPLAY( " -q : suppress warnings; specify twice to suppress errors too\n");
DISPLAY( " -c : force write to standard output, even if it is the console\n");
+#ifdef UTIL_HAS_CREATEFILELIST
+ DISPLAY( " -r : operate recursively on directories\n");
+#endif
#ifndef ZSTD_NOCOMPRESS
DISPLAY( "--ultra : enable ultra modes (requires more memory to decompress)\n");
#endif
DISPLAY( " -b# : benchmark file(s), using # compression level (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;
unsigned maxDictSize = g_defaultMaxDictSize;
unsigned dictCLevel = g_defaultDictCLevel;
unsigned dictSelect = g_defaultSelectivityLevel;
+#ifdef UTIL_HAS_CREATEFILELIST
+ const char** fileNamesTable = NULL;
+ char* fileNamesBuf;
+ unsigned fileNamesNb;
+#endif
/* init */
(void)recursive; (void)cLevelLast; (void)dictCLevel; /* not used when ZSTD_NOBENCH / ZSTD_NODICT set */
/* dictionary name */
case 'o': nextArgumentIsOutFileName=1; argument++; break;
+ /* recursive */
+ case 'r': recursive=1; argument++; break;
+
#ifndef ZSTD_NOBENCH
/* Benchmark */
case 'b': bench=1; argument++; break;
}
break;
- /* recursive */
- case 'r': recursive=1; argument++; break;
-
/* cut input into blocks (benchmark only) */
case 'B':
{ size_t bSize = 0;
/* Welcome message (if verbose) */
DISPLAYLEVEL(3, WELCOME_MESSAGE);
+#ifdef UTIL_HAS_CREATEFILELIST
+ if (recursive) {
+ fileNamesTable = UTIL_createFileList(filenameTable, filenameIdx, &fileNamesBuf, &fileNamesNb);
+ if (fileNamesTable) {
+ unsigned i;
+ for (i=0; i<fileNamesNb; i++) DISPLAYLEVEL(3, "%d %s\n", i, fileNamesTable[i]);
+ free((void*)filenameTable);
+ filenameTable = fileNamesTable;
+ filenameIdx = fileNamesNb;
+ }
+ }
+#endif
+
/* Check if benchmark is selected */
if (bench) {
#ifndef ZSTD_NOBENCH
BMK_setNotificationLevel(displayLevel);
- BMK_benchFiles(filenameTable, filenameIdx, dictFileName, cLevel, cLevelLast, recursive);
+ BMK_benchFiles(filenameTable, filenameIdx, dictFileName, cLevel, cLevelLast);
#endif
goto _end;
}
_end:
if (main_pause) waitEnter();
free(dynNameSpace);
- free((void*)filenameTable);
+#ifdef UTIL_HAS_CREATEFILELIST
+ if (fileNamesTable)
+ UTIL_freeFileList(fileNamesTable, fileNamesBuf);
+ else
+#endif
+ free((void*)filenameTable);
return operationResult;
}