86 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <errno.h>
 | |
| #include <stdint.h>
 | |
| #include <stdio.h>
 | |
| #include <stdlib.h>
 | |
| #include <unistd.h>
 | |
| 
 | |
| #define MAX_ERROR 4
 | |
| static int errct;
 | |
| 
 | |
| /* test strtol */
 | |
| #define	TYPE        long
 | |
| #define	TYPEU       unsigned long
 | |
| #define	TYPE_FUNC	strtol
 | |
| #include "test45.h"
 | |
| #undef	TYPE
 | |
| #undef	TYPEU
 | |
| #undef	TYPE_FUNC
 | |
| 
 | |
| /* test strtoul */
 | |
| #define	TYPE        unsigned long
 | |
| #define	TYPEU       unsigned long
 | |
| #define	TYPE_FUNC	strtoul
 | |
| #include "test45.h"
 | |
| #undef	TYPE
 | |
| #undef	TYPEU
 | |
| #undef	TYPE_FUNC
 | |
| 
 | |
| #ifdef __LONG_LONG_SUPPORTED
 | |
| 
 | |
| /* test strtoll */
 | |
| #define	TYPE        long long
 | |
| #define	TYPEU       unsigned long long
 | |
| #define	TYPE_FUNC	strtoll
 | |
| #include "test45.h"
 | |
| #undef	TYPE
 | |
| #undef	TYPEU
 | |
| #undef	TYPE_FUNC
 | |
| 
 | |
| /* test strtoull */
 | |
| #define	TYPE        long long
 | |
| #define	TYPEU       unsigned long long
 | |
| #define	TYPE_FUNC	strtoull
 | |
| #include "test45.h"
 | |
| #undef	TYPE
 | |
| #undef	TYPEU
 | |
| #undef	TYPE_FUNC
 | |
| 
 | |
| #endif /* defined(__LONG_LONG_SUPPORTED) */
 | |
| 
 | |
| static void quit(void)
 | |
| {
 | |
| 	if (errct == 0) 
 | |
| 	{
 | |
| 		printf("ok\n");
 | |
| 		exit(0);
 | |
| 	} 
 | |
| 	else 
 | |
| 	{
 | |
| 		printf("%d errors\n", errct);
 | |
| 		exit(1);
 | |
| 	}
 | |
| }
 | |
| 
 | |
| int main(int argc, char **argv)
 | |
| {
 | |
| #ifdef __LONG_LONG_SUPPORTED
 | |
| 	printf("Test 45 (GCC) ");
 | |
| #else
 | |
| 	printf("Test 45 (ACK) ");
 | |
| #endif
 | |
| 	fflush(stdout);
 | |
| 
 | |
| 	/* run long/unsigned long tests */
 | |
| 	test_strtol();
 | |
| 	test_strtoul();
 | |
| 
 | |
| 	/* run long long/unsigned long long tests (GCC only) */
 | |
| #ifdef __LONG_LONG_SUPPORTED
 | |
| 	test_strtoll();
 | |
| 	test_strtoull();
 | |
| #endif /* defined(__LONG_LONG_SUPPORTED) */
 | |
| 
 | |
| 	quit();
 | |
| 	return -1; /* never happens */
 | |
| }
 | 
