]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
[pzstd] Turn on warnings + quiet them
authorNick Terrell <terrelln@fb.com>
Thu, 22 Sep 2016 23:12:29 +0000 (16:12 -0700)
committerNick Terrell <terrelln@fb.com>
Thu, 22 Sep 2016 23:12:29 +0000 (16:12 -0700)
contrib/pzstd/Makefile
contrib/pzstd/Pzstd.cpp
contrib/pzstd/test/Makefile
contrib/pzstd/test/OptionsTest.cpp
contrib/pzstd/test/PzstdTest.cpp
contrib/pzstd/test/RoundTripTest.cpp
contrib/pzstd/utils/FileSystem.h

index 40fce267eb7933b6358da8fc6259d82531f27d5b..e30be0beddcc6ffc3ab4fcca2f9af2db22a11c03 100644 (file)
@@ -87,19 +87,27 @@ googletest32:
        @mkdir -p googletest/build
        @cd googletest/build && cmake .. -DCMAKE_CXX_FLAGS=-m32 && make
 
-test: libzstd.a Pzstd.o Options.o SkippableFrame.o
+googletest-mingw64:
+       $(RM) -rf googletest
+       git clone https://github.com/google/googletest
+       mkdir -p googletest/build
+       cd googletest/build && cmake -G "MSYS Makefiles" .. && $(MAKE)
+
+test:
+       $(MAKE) libzstd.a
+       $(MAKE) pzstd MOREFLAGS="-Wall -Wextra -pedantic -Werror"
        $(MAKE) -C utils/test clean
-       $(MAKE) -C utils/test test
+       $(MAKE) -C utils/test test MOREFLAGS="-Wall -Wextra -pedantic -Werror"
        $(MAKE) -C test clean
-       $(MAKE) -C test test
+       $(MAKE) -C test test MOREFLAGS="-Wall -Wextra -pedantic -Werror"
 
 test32:
-       $(MAKE) clean
-       $(MAKE) pzstd MOREFLAGS="-m32"
+       $(MAKE) libzstd.a MOREFLAGS="-m32"
+       $(MAKE) pzstd MOREFLAGS="-m32 -Wall -Wextra -pedantic -Werror"
        $(MAKE) -C utils/test clean
-       $(MAKE) -C utils/test test MOREFLAGS="-m32"
+       $(MAKE) -C utils/test test MOREFLAGS="-m32 -Wall -Wextra -pedantic -Werror"
        $(MAKE) -C test clean
-       $(MAKE) -C test test MOREFLAGS="-m32"
+       $(MAKE) -C test test MOREFLAGS="-m32 -Wall -Wextra -pedantic -Werror"
 
 
 clean:
index bf42fe81ee5517f18d7ac01271c22bfe400ac0b2..ccd4f6266483803fda99413dd45bb7c7de8acb57 100644 (file)
@@ -55,7 +55,6 @@ static std::uintmax_t fileSizeOrZero(const std::string &file) {
 static size_t handleOneInput(const Options &options,
                              const std::string &inputFile,
                              FILE* inputFd,
-                             const std::string &outputFile,
                              FILE* outputFd,
                              ErrorHolder &errorHolder) {
   auto inputSize = fileSizeOrZero(inputFile);
@@ -186,7 +185,7 @@ int pzstdMain(const Options &options) {
     }
     auto closeOutputGuard = makeScopeGuard([&] { std::fclose(outputFd); });
     // (de)compress the file
-    handleOneInput(options, input, inputFd, outputFile, outputFd, errorHolder);
+    handleOneInput(options, input, inputFd, outputFd, errorHolder);
     if (errorHolder.hasError()) {
       continue;
     }
index 5fd167d18577d521229fbc98de5fa8a4fc3cfb4e..4f6ba99970105f208230caf4965a57f6b2b4d069 100644 (file)
@@ -21,19 +21,19 @@ ZSTDDIR = ../../../lib
 # Set GTEST_INC and GTEST_LIB to work with your install of gtest
 GTEST_INC ?= -isystem $(PZSTDDIR)/googletest/googletest/include
 GTEST_LIB ?= -L $(PZSTDDIR)/googletest/build/googlemock/gtest
-
-CPPFLAGS = -I$(PZSTDDIR) $(GTEST_INC) $(GTEST_LIB) -I$(ZSTDDIR) -I$(ZSTDDIR)/common -I$(PROGDIR) -I.
+GTEST_FLAGS = $(GTEST_INC) $(GTEST_LIB)
+CPPFLAGS = -I$(PZSTDDIR) -I$(ZSTDDIR) -I$(ZSTDDIR)/common -I$(PROGDIR) -I.
 
 CXXFLAGS  ?= -O3
-CXXFLAGS  += -std=c++11
+CXXFLAGS  += -std=c++11 -Wno-deprecated-declarations
 CXXFLAGS  += $(MOREFLAGS)
 FLAGS    = $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS)
 
 datagen.o: $(PROGDIR)/datagen.*
-       $(CXX) $(FLAGS) $(PROGDIR)/datagen.c -c -o $@
+       $(CC) $(CPPFLAGS) -O3 $(MOREFLAGS) $(LDFLAGS) -Wno-long-long -Wno-variadic-macros $(PROGDIR)/datagen.c -c -o $@
 
 %: %.cpp *.h datagen.o
-       $(CXX) $(FLAGS) $@.cpp datagen.o $(PZSTDDIR)/Pzstd.o $(PZSTDDIR)/SkippableFrame.o $(PZSTDDIR)/Options.o $(PZSTDDIR)/libzstd.a -o $@$(EXT) -lgtest -lgtest_main -lpthread
+       $(CXX) $(FLAGS) $@.cpp datagen.o $(PZSTDDIR)/Pzstd.o $(PZSTDDIR)/SkippableFrame.o $(PZSTDDIR)/Options.o $(PZSTDDIR)/libzstd.a -o $@$(EXT) $(GTEST_FLAGS) -lgtest -lgtest_main -lpthread
 
 .PHONY: test clean
 
index 8871dc3fb72162ae033ed200a09062672435c777..e7d4b2b3ec3e67d076555c2d63bafd59aa572881 100644 (file)
@@ -73,10 +73,7 @@ const char nullOutput[] = "nul";
 const char nullOutput[] = "/dev/null";
 #endif
 
-const auto autoMode = Options::WriteMode::Auto;
-const auto regMode = Options::WriteMode::Regular;
-const auto sparseMode = Options::WriteMode::Sparse;
-const auto success = Options::Status::Success;
+constexpr auto autoMode = Options::WriteMode::Auto;
 } // anonymous namespace
 
 #define EXPECT_SUCCESS(...) EXPECT_EQ(Options::Status::Success, __VA_ARGS__)
index b8e0dbd2d604d59babb987adb8822641165a02b1..c53c4d182f2df41aff41ed5056b1d94624c1c90d 100644 (file)
@@ -7,7 +7,9 @@
  * of patent rights can be found in the PATENTS file in the same directory.
  */
 #include "Pzstd.h"
+extern "C" {
 #include "datagen.h"
+}
 #include "test/RoundTrip.h"
 #include "utils/ScopeGuard.h"
 
@@ -25,11 +27,14 @@ TEST(Pzstd, SmallSizes) {
   std::fprintf(stderr, "Pzstd.SmallSizes seed: %u\n", seed);
   std::mt19937 gen(seed);
 
-  for (unsigned len = 1; len < 1028; ++len) {
+  for (unsigned len = 1; len < 256; ++len) {
+    if (len % 16 == 0) {
+      std::fprintf(stderr, "%u / 16\n", len / 16);
+    }
     std::string inputFile = std::tmpnam(nullptr);
     auto guard = makeScopeGuard([&] { std::remove(inputFile.c_str()); });
     {
-      static uint8_t buf[1028];
+      static uint8_t buf[256];
       RDG_genBuffer(buf, len, 0.5, 0.0, gen());
       auto fd = std::fopen(inputFile.c_str(), "wb");
       auto written = std::fwrite(buf, 1, len, fd);
@@ -37,8 +42,8 @@ TEST(Pzstd, SmallSizes) {
       ASSERT_EQ(written, len);
     }
     for (unsigned headers = 0; headers <= 1; ++headers) {
-      for (unsigned numThreads = 1; numThreads <= 4; numThreads *= 2) {
-        for (unsigned level = 1; level <= 8; level *= 8) {
+      for (unsigned numThreads = 1; numThreads <= 2; ++numThreads) {
+        for (unsigned level = 1; level <= 4; level *= 4) {
           auto errorGuard = makeScopeGuard([&] {
             std::fprintf(stderr, "pzstd headers: %u\n", headers);
             std::fprintf(stderr, "# threads: %u\n", numThreads);
@@ -111,7 +116,10 @@ TEST(Pzstd, ExtremelyLargeSize) {
     for (size_t i = 0; i < (1 << 6) + 1; ++i) {
       RDG_genBuffer(buf.get(), kLength, 0.5, 0.0, gen());
       auto written = std::fwrite(buf.get(), 1, kLength, fd);
-      ASSERT_EQ(written, kLength);
+      if (written != kLength) {
+        std::fprintf(stderr, "Failed to write file, skipping test\n");
+        return;
+      }
     }
   }
 
@@ -119,6 +127,9 @@ TEST(Pzstd, ExtremelyLargeSize) {
   options.overwrite = true;
   options.inputFiles = {inputFile};
   options.compressionLevel = 1;
+  if (options.numThreads == 0) {
+    options.numThreads = 1;
+  }
   ASSERT_TRUE(roundTrip(options));
 }
 
index 01c1c8113bd9452ca98680968b75ec10960967e3..ed2ea770c5232a761379ab5e1b94faf72d31b44d 100644 (file)
@@ -6,7 +6,9 @@
  * LICENSE file in the root directory of this source tree. An additional grant
  * of patent rights can be found in the PATENTS file in the same directory.
  */
+extern "C" {
 #include "datagen.h"
+}
 #include "Options.h"
 #include "test/RoundTrip.h"
 #include "utils/ScopeGuard.h"
@@ -46,14 +48,12 @@ string generateInputFile(Generator& gen) {
 template <typename Generator>
 Options generateOptions(Generator& gen, const string& inputFile) {
   Options options;
-  options.inputFile = inputFile;
+  options.inputFiles = {inputFile};
   options.overwrite = true;
 
-  std::bernoulli_distribution pzstdHeaders{0.75};
   std::uniform_int_distribution<unsigned> numThreads{1, 32};
   std::uniform_int_distribution<unsigned> compressionLevel{1, 10};
 
-  options.pzstdHeaders = pzstdHeaders(gen);
   options.numThreads = numThreads(gen);
   options.compressionLevel = compressionLevel(gen);
 
@@ -61,7 +61,7 @@ Options generateOptions(Generator& gen, const string& inputFile) {
 }
 }
 
-int main(int argc, char** argv) {
+int main() {
   std::mt19937 gen(std::random_device{}());
 
   auto newlineGuard = makeScopeGuard([] { std::fprintf(stderr, "\n"); });
@@ -77,8 +77,6 @@ int main(int argc, char** argv) {
         std::fprintf(stderr, "numThreads: %u\n", options.numThreads);
         std::fprintf(stderr, "level: %u\n", options.compressionLevel);
         std::fprintf(stderr, "decompress? %u\n", (unsigned)options.decompress);
-        std::fprintf(
-            stderr, "pzstd headers? %u\n", (unsigned)options.pzstdHeaders);
         std::fprintf(stderr, "file: %s\n", inputFile.c_str());
         return 1;
       }
index c9c2b5b05e6da2bada03443f914744dce22be7ff..7d597047fd1fc91b718d0e47ef74ed44260f118e 100644 (file)
 
 namespace pzstd {
 
+// using file_status = ... causes gcc to emit a false positive warning
 #if defined(_MSC_VER)
-using file_status = struct ::_stat64;
+typedef struct ::_stat64 file_status;
 #else
-using file_status = struct ::stat;
+typedef struct ::stat file_status;
 #endif
 
 /// http://en.cppreference.com/w/cpp/filesystem/status