|  | @@ -38,6 +38,7 @@ DEFINE_string(directory, "", "Use this directory as test data");
 | 
	
		
			
				|  |  |  class FuzzerCorpusTest : public ::testing::TestWithParam<std::string> {};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  TEST_P(FuzzerCorpusTest, RunOneExample) {
 | 
	
		
			
				|  |  | +  gpr_log(GPR_DEBUG, "Example file: %s", GetParam().c_str());
 | 
	
		
			
				|  |  |    grpc_slice buffer;
 | 
	
		
			
				|  |  |    squelch = false;
 | 
	
		
			
				|  |  |    leak_check = false;
 | 
	
	
		
			
				|  | @@ -62,10 +63,14 @@ class ExampleGenerator
 | 
	
		
			
				|  |  |        if (!FLAGS_directory.empty()) {
 | 
	
		
			
				|  |  |          DIR* dp;
 | 
	
		
			
				|  |  |          struct dirent* ep;
 | 
	
		
			
				|  |  | -        dp = opendir("./");
 | 
	
		
			
				|  |  | +        dp = opendir(FLAGS_directory.c_str());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          if (dp != NULL) {
 | 
	
		
			
				|  |  | -          while ((ep = readdir(dp)) != nullptr) examples_.push_back(ep->d_name);
 | 
	
		
			
				|  |  | +          while ((ep = readdir(dp)) != nullptr) {
 | 
	
		
			
				|  |  | +            if (ep->d_type == DT_REG) {
 | 
	
		
			
				|  |  | +              examples_.push_back(FLAGS_directory + "/" + ep->d_name);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |            (void)closedir(dp);
 | 
	
		
			
				|  |  |          } else {
 | 
	
	
		
			
				|  | @@ -84,18 +89,13 @@ class ExampleIterator
 | 
	
		
			
				|  |  |   public:
 | 
	
		
			
				|  |  |    ExampleIterator(const ExampleGenerator& base_,
 | 
	
		
			
				|  |  |                    std::vector<std::string>::const_iterator begin)
 | 
	
		
			
				|  |  | -      : base_(base_), begin_(begin), current_(begin), current_string_(NULL) {}
 | 
	
		
			
				|  |  | +      : base_(base_), begin_(begin), current_(begin) {}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  ~ExampleIterator() { delete current_string_; }
 | 
	
		
			
				|  |  |    virtual const ExampleGenerator* BaseGenerator() const { return &base_; }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  virtual void Advance() {
 | 
	
		
			
				|  |  | -    current_++;
 | 
	
		
			
				|  |  | -    delete current_string_;
 | 
	
		
			
				|  |  | -    current_string_ = NULL;
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | +  virtual void Advance() { current_++; }
 | 
	
		
			
				|  |  |    virtual ExampleIterator* Clone() const { return new ExampleIterator(*this); }
 | 
	
		
			
				|  |  | -  virtual const std::string* Current() const;
 | 
	
		
			
				|  |  | +  virtual const std::string* Current() const { return &*current_; }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    virtual bool Equals(const ParamIteratorInterface<std::string>& other) const {
 | 
	
		
			
				|  |  |      return &base_ == other.BaseGenerator() &&
 | 
	
	
		
			
				|  | @@ -104,15 +104,11 @@ class ExampleIterator
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |   private:
 | 
	
		
			
				|  |  |    ExampleIterator(const ExampleIterator& other)
 | 
	
		
			
				|  |  | -      : base_(other.base_),
 | 
	
		
			
				|  |  | -        begin_(other.begin_),
 | 
	
		
			
				|  |  | -        current_(other.current_),
 | 
	
		
			
				|  |  | -        current_string_(NULL) {}
 | 
	
		
			
				|  |  | +      : base_(other.base_), begin_(other.begin_), current_(other.current_) {}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    const ExampleGenerator& base_;
 | 
	
		
			
				|  |  |    const std::vector<std::string>::const_iterator begin_;
 | 
	
		
			
				|  |  |    std::vector<std::string>::const_iterator current_;
 | 
	
		
			
				|  |  | -  mutable const std::string* current_string_;
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ::testing::internal::ParamIteratorInterface<std::string>*
 | 
	
	
		
			
				|  | @@ -133,6 +129,7 @@ INSTANTIATE_TEST_CASE_P(
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  int main(int argc, char** argv) {
 | 
	
		
			
				|  |  |    grpc_test_init(argc, argv);
 | 
	
		
			
				|  |  | +  ::gflags::ParseCommandLineFlags(&argc, &argv, true);
 | 
	
		
			
				|  |  |    ::testing::InitGoogleTest(&argc, argv);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    return RUN_ALL_TESTS();
 |