|  | @@ -2574,7 +2574,10 @@ int cmCTest::Run(std::vector<std::string>& args, std::string* output)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    bool listPresets =
 | 
	
		
			
				|  |  |      find(args.begin(), args.end(), "--list-presets") != args.end();
 | 
	
		
			
				|  |  | -  auto it = find(args.begin(), args.end(), "--preset");
 | 
	
		
			
				|  |  | +  auto it =
 | 
	
		
			
				|  |  | +    std::find_if(args.begin(), args.end(), [](std::string const& arg) -> bool {
 | 
	
		
			
				|  |  | +      return arg == "--preset" || cmHasLiteralPrefix(arg, "--preset=");
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  |    if (listPresets || it != args.end()) {
 | 
	
		
			
				|  |  |      std::string errormsg;
 | 
	
		
			
				|  |  |      bool success;
 | 
	
	
		
			
				|  | @@ -2583,7 +2586,10 @@ int cmCTest::Run(std::vector<std::string>& args, std::string* output)
 | 
	
		
			
				|  |  |        // If listing presets we don't need a presetName
 | 
	
		
			
				|  |  |        success = this->SetArgsFromPreset("", listPresets);
 | 
	
		
			
				|  |  |      } else {
 | 
	
		
			
				|  |  | -      if (++it != args.end()) {
 | 
	
		
			
				|  |  | +      if (cmHasLiteralPrefix(*it, "--preset=")) {
 | 
	
		
			
				|  |  | +        auto presetName = it->substr(9);
 | 
	
		
			
				|  |  | +        success = this->SetArgsFromPreset(presetName, listPresets);
 | 
	
		
			
				|  |  | +      } else if (++it != args.end()) {
 | 
	
		
			
				|  |  |          auto presetName = *it;
 | 
	
		
			
				|  |  |          success = this->SetArgsFromPreset(presetName, listPresets);
 | 
	
		
			
				|  |  |        } else {
 |