The tests are taken almost verbatim from the open source project PicoC. It can be found at https://code.google.com/p/picoc/. The tests range from very simple/trivial ones to more complicated. My view is that the more tests the better. Without tests like this I was very reluctant to make any changes to tcc for the fear of breaking things. The tests pass on Win32, OSX, Linux x86 and x86_64. One or two tests fail on each platform due to differences in the runtime library.
		
			
				
	
	
		
			50 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <stdio.h>
 | |
| #include <math.h>
 | |
| 
 | |
| int main()
 | |
| {
 | |
|    // variables
 | |
|    float a = 12.34 + 56.78;
 | |
|    printf("%f\n", a);
 | |
| 
 | |
|    // infix operators
 | |
|    printf("%f\n", 12.34 + 56.78);
 | |
|    printf("%f\n", 12.34 - 56.78);
 | |
|    printf("%f\n", 12.34 * 56.78);
 | |
|    printf("%f\n", 12.34 / 56.78);
 | |
| 
 | |
|    // comparison operators
 | |
|    printf("%d %d %d %d %d %d\n", 12.34 < 56.78, 12.34 <= 56.78, 12.34 == 56.78, 12.34 >= 56.78, 12.34 > 56.78, 12.34 != 56.78);
 | |
|    printf("%d %d %d %d %d %d\n", 12.34 < 12.34, 12.34 <= 12.34, 12.34 == 12.34, 12.34 >= 12.34, 12.34 > 12.34, 12.34 != 12.34);
 | |
|    printf("%d %d %d %d %d %d\n", 56.78 < 12.34, 56.78 <= 12.34, 56.78 == 12.34, 56.78 >= 12.34, 56.78 > 12.34, 56.78 != 12.34);
 | |
| 
 | |
|    // assignment operators
 | |
|    a = 12.34;
 | |
|    a += 56.78;
 | |
|    printf("%f\n", a);
 | |
| 
 | |
|    a = 12.34;
 | |
|    a -= 56.78;
 | |
|    printf("%f\n", a);
 | |
| 
 | |
|    a = 12.34;
 | |
|    a *= 56.78;
 | |
|    printf("%f\n", a);
 | |
| 
 | |
|    a = 12.34;
 | |
|    a /= 56.78;
 | |
|    printf("%f\n", a);
 | |
| 
 | |
|    // prefix operators
 | |
|    printf("%f\n", +12.34);
 | |
|    printf("%f\n", -12.34);
 | |
| 
 | |
|    // type coercion
 | |
|    a = 2;
 | |
|    printf("%f\n", a);
 | |
|    printf("%f\n", sin(2));
 | |
| 
 | |
|    return 0;
 | |
| }
 | |
| 
 | |
| /* vim: set expandtab ts=4 sw=3 sts=3 tw=80 :*/
 |