]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
simplified BMK_benchFilesAdvanced() 3526/head
authorYann Collet <cyan@fb.com>
Mon, 6 Mar 2023 20:34:13 +0000 (12:34 -0800)
committerYann Collet <cyan@fb.com>
Mon, 6 Mar 2023 20:34:13 +0000 (12:34 -0800)
programs/benchzstd.c
programs/benchzstd.h
programs/zstdcli.c

index dd62d597a24494d5ba25f1d3edfe6b1ee54c63a1..9bc3628ee5fd27f8b7fe7acda1e66ba2c083a22f 100644 (file)
@@ -794,7 +794,7 @@ static int BMK_loadFiles(void* buffer, size_t bufferSize,
     return 0;
 }
 
-BMK_benchOutcome_t BMK_benchFilesAdvanced(
+int BMK_benchFilesAdvanced(
                         const char* const * fileNamesTable, unsigned nbFiles,
                         const char* dictFileName, int cLevel,
                         const ZSTD_compressionParameters* compressionParams,
@@ -809,19 +809,25 @@ BMK_benchOutcome_t BMK_benchFilesAdvanced(
     U64 const totalSizeToLoad = UTIL_getTotalFileSize(fileNamesTable, nbFiles);
 
     if (!nbFiles) {
-        RETURN_ERROR(14, BMK_benchOutcome_t, "No Files to Benchmark");
+        DISPLAYLEVEL(1, "No Files to Benchmark");
+        return 13;
     }
 
     if (cLevel > ZSTD_maxCLevel()) {
-        RETURN_ERROR(15, BMK_benchOutcome_t, "Invalid Compression Level");
+        DISPLAYLEVEL(1, "Invalid Compression Level");
+        return 14;
     }
 
     if (totalSizeToLoad == UTIL_FILESIZE_UNKNOWN) {
-        RETURN_ERROR(9, BMK_benchOutcome_t, "Error loading files");
+        DISPLAYLEVEL(1, "Error loading files");
+        return 15;
     }
 
     fileSizes = (size_t*)calloc(nbFiles, sizeof(size_t));
-    if (!fileSizes) RETURN_ERROR(12, BMK_benchOutcome_t, "not enough memory for fileSizes");
+    if (!fileSizes) {
+        DISPLAYLEVEL(1, "not enough memory for fileSizes");
+        return 16;
+    }
 
     /* Load dictionary */
     if (dictFileName != NULL) {
@@ -829,18 +835,21 @@ BMK_benchOutcome_t BMK_benchFilesAdvanced(
         if (dictFileSize == UTIL_FILESIZE_UNKNOWN) {
             DISPLAYLEVEL(1, "error loading %s : %s \n", dictFileName, strerror(errno));
             free(fileSizes);
-            RETURN_ERROR(9, BMK_benchOutcome_t, "benchmark aborted");
+            DISPLAYLEVEL(1, "benchmark aborted");
+            return 17;
         }
         if (dictFileSize > 64 MB) {
             free(fileSizes);
-            RETURN_ERROR(10, BMK_benchOutcome_t, "dictionary file %s too large", dictFileName);
+            DISPLAYLEVEL(1, "dictionary file %s too large", dictFileName);
+            return 18;
         }
         dictBufferSize = (size_t)dictFileSize;
         dictBuffer = malloc(dictBufferSize);
         if (dictBuffer==NULL) {
             free(fileSizes);
-            RETURN_ERROR(11, BMK_benchOutcome_t, "not enough memory for dictionary (%u bytes)",
+            DISPLAYLEVEL(1, "not enough memory for dictionary (%u bytes)",
                             (unsigned)dictBufferSize);
+            return 19;
         }
 
         {   int const errorCode = BMK_loadFiles(dictBuffer, dictBufferSize,
@@ -862,7 +871,8 @@ BMK_benchOutcome_t BMK_benchFilesAdvanced(
     if (!srcBuffer) {
         free(dictBuffer);
         free(fileSizes);
-        RETURN_ERROR(12, BMK_benchOutcome_t, "not enough memory");
+        DISPLAYLEVEL(1, "not enough memory for srcBuffer");
+        return 20;
     }
 
     /* Load input buffer */
@@ -890,12 +900,11 @@ _cleanUp:
     free(srcBuffer);
     free(dictBuffer);
     free(fileSizes);
-    return res;
+    return !BMK_isSuccessful_benchOutcome(res);
 }
 
 
-BMK_benchOutcome_t BMK_benchFiles(
-                    const char* const * fileNamesTable, unsigned nbFiles,
+int BMK_benchFiles(const char* const * fileNamesTable, unsigned nbFiles,
                     const char* dictFileName,
                     int cLevel, const ZSTD_compressionParameters* compressionParams,
                     int displayLevel)
index d0c73f83c1747e4fa669633163f789ce13035980..f14a681925ea9f32023e4358eb56a045d83f8edc 100644 (file)
@@ -81,21 +81,13 @@ BMK_benchResult_t BMK_extract_benchResult(BMK_benchOutcome_t outcome);
  *      2 : + result + interaction + warnings;
  *      3 : + information;
  *      4 : + debug
- * @return:
- *      a variant, which expresses either an error, or a valid result.
- *      Use BMK_isSuccessful_benchOutcome() to check if function was successful.
- *      If yes, extract the valid result with BMK_extract_benchResult(),
- *      it will contain :
- *          .cSpeed: compression speed in bytes per second,
- *          .dSpeed: decompression speed in bytes per second,
- *          .cSize : compressed size, in bytes
- *          .cMem  : memory budget required for the compression context
+ * @return: 0 on success, !0 on error
  */
-BMK_benchOutcome_t
-BMK_benchFiles( const char* const * fileNamesTable, unsigned nbFiles,
-                const char* dictFileName,
-                int cLevel, const ZSTD_compressionParameters* compressionParams,
-                int displayLevel);
+int BMK_benchFiles(
+            const char* const * fileNamesTable, unsigned nbFiles,
+            const char* dictFileName,
+            int cLevel, const ZSTD_compressionParameters* compressionParams,
+            int displayLevel);
 
 
 typedef enum {
@@ -126,8 +118,7 @@ BMK_advancedParams_t BMK_initAdvancedParams(void);
 /*! BMK_benchFilesAdvanced():
  *  Same as BMK_benchFiles(),
  *  with more controls, provided through advancedParams_t structure */
-BMK_benchOutcome_t
-BMK_benchFilesAdvanced(
+int BMK_benchFilesAdvanced(
                const char* const * fileNamesTable, unsigned nbFiles,
                const char* dictFileName,
                int cLevel, const ZSTD_compressionParameters* compressionParams,
index 38350eb7045f3cabd5d7cc691ef4a96c727290c5..b2842c520e176cfbff3c0b4c40154d68ff683c67 100644 (file)
@@ -1391,18 +1391,15 @@ int main(int argCount, const char* argv[])
                     int c;
                     DISPLAYLEVEL(3, "Benchmarking %s \n", filenames->fileNames[i]);
                     for(c = cLevel; c <= cLevelLast; c++) {
-                        BMK_benchOutcome_t const bo = BMK_benchFilesAdvanced(&filenames->fileNames[i], 1, dictFileName, c, &compressionParams, g_displayLevel, &benchParams);
-                        if (!BMK_isSuccessful_benchOutcome(bo)) return 1;
+                        operationResult = BMK_benchFilesAdvanced(&filenames->fileNames[i], 1, dictFileName, c, &compressionParams, g_displayLevel, &benchParams);
                 }   }
             } else {
                 for(; cLevel <= cLevelLast; cLevel++) {
-                    BMK_benchOutcome_t const bo = BMK_benchFilesAdvanced(filenames->fileNames, (unsigned)filenames->tableSize, dictFileName, cLevel, &compressionParams, g_displayLevel, &benchParams);
-                    if (!BMK_isSuccessful_benchOutcome(bo)) return 1;
+                    operationResult = BMK_benchFilesAdvanced(filenames->fileNames, (unsigned)filenames->tableSize, dictFileName, cLevel, &compressionParams, g_displayLevel, &benchParams);
             }   }
         } else {
             for(; cLevel <= cLevelLast; cLevel++) {
-                if ( BMK_syntheticTest(cLevel, compressibility, &compressionParams, g_displayLevel, &benchParams) )
-                    return 1;
+                operationResult = BMK_syntheticTest(cLevel, compressibility, &compressionParams, g_displayLevel, &benchParams);
         }   }
 
 #else