mirror of
				https://github.com/libssh2/libssh2.git
				synced 2025-10-30 12:05:34 +03:00 
			
		
		
		
	- All files have prominent copyright and SPDX identifier - If not embedded in the file, in the .reuse/dep5 file - All used licenses are in LICENSES/ (not shipped in tarballs) - A new REUSE CI job verify that all files are OK Assisted-by: Viktor Szakats Closes #1084
		
			
				
	
	
		
			80 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* Copyright (C) Alexander Lamaison
 | |
|  * All rights reserved.
 | |
|  *
 | |
|  * Redistribution and use in source and binary forms,
 | |
|  * with or without modification, are permitted provided
 | |
|  * that the following conditions are met:
 | |
|  *
 | |
|  *   Redistributions of source code must retain the above
 | |
|  *   copyright notice, this list of conditions and the
 | |
|  *   following disclaimer.
 | |
|  *
 | |
|  *   Redistributions in binary form must reproduce the above
 | |
|  *   copyright notice, this list of conditions and the following
 | |
|  *   disclaimer in the documentation and/or other materials
 | |
|  *   provided with the distribution.
 | |
|  *
 | |
|  *   Neither the name of the copyright holder nor the names
 | |
|  *   of any other contributors may be used to endorse or
 | |
|  *   promote products derived from this software without
 | |
|  *   specific prior written permission.
 | |
|  *
 | |
|  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 | |
|  * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 | |
|  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 | |
|  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | |
|  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 | |
|  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 | |
|  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 | |
|  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 | |
|  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 | |
|  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 | |
|  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 | |
|  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
 | |
|  * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
 | |
|  * OF SUCH DAMAGE.
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-3-Clause
 | |
|  */
 | |
| 
 | |
| #include "runner.h"
 | |
| 
 | |
| int main(void)
 | |
| {
 | |
|     int exit_code;
 | |
|     int retries = 0, retry = 0;
 | |
| 
 | |
| #ifdef LIBSSH2_WINCNG
 | |
|     /* FIXME: Retry tests with WinCNG due to flakiness in hostkey
 | |
|        verification: https://github.com/libssh2/libssh2/issues/804 */
 | |
|     retries += 2;
 | |
| #endif
 | |
| 
 | |
|     do {
 | |
|         int skipped, rc;
 | |
|         LIBSSH2_SESSION *session = start_session_fixture(&skipped, &rc);
 | |
|         if(session) {
 | |
|             exit_code = (test(session) == 0) ? 0 : 1;
 | |
|         }
 | |
|         else if(skipped) {
 | |
|             fprintf(stderr, "Test skipped.\n");
 | |
|             exit_code = 0;
 | |
|         }
 | |
|         else {
 | |
|             exit_code = 1;
 | |
|         }
 | |
|         stop_session_fixture();
 | |
|         if(exit_code == 0 ||
 | |
| #ifdef LIBSSH2_WINCNG
 | |
|            rc != LIBSSH2_ERROR_KEY_EXCHANGE_FAILURE ||
 | |
| #endif
 | |
|            ++retry > retries) {
 | |
|             break;
 | |
|         }
 | |
|         fprintf(stderr, "Test failed (%d). Retrying... %d / %d\n",
 | |
|                         rc, retry, retries);
 | |
|     } while(1);
 | |
| 
 | |
|     return exit_code;
 | |
| }
 |