1*b30d1939SAndy Fiddamanref -D_def_map_ast=1 2*b30d1939SAndy Fiddamanhdr float,floatingpoint,math,values 3*b30d1939SAndy Fiddamansys filio,ioctl 4*b30d1939SAndy Fiddamanlib qfrexp,qldexp 5*b30d1939SAndy Fiddamankey signed 6*b30d1939SAndy Fiddaman 7*b30d1939SAndy Fiddamantst - note{ number of bits in pointer }end output{ 8*b30d1939SAndy Fiddaman #include <stdio.h> 9*b30d1939SAndy Fiddaman int 10*b30d1939SAndy Fiddaman main() 11*b30d1939SAndy Fiddaman { 12*b30d1939SAndy Fiddaman printf("#define _ptr_bits %d\n", sizeof(char*) * 8); 13*b30d1939SAndy Fiddaman return 0; 14*b30d1939SAndy Fiddaman } 15*b30d1939SAndy Fiddaman}end 16*b30d1939SAndy Fiddaman 17*b30d1939SAndy Fiddamantst tmp_rmfail note{ open files cannot be removed }end execute{ 18*b30d1939SAndy Fiddaman #include <string.h> 19*b30d1939SAndy Fiddaman #include <time.h> 20*b30d1939SAndy Fiddaman int 21*b30d1939SAndy Fiddaman main() 22*b30d1939SAndy Fiddaman { 23*b30d1939SAndy Fiddaman #if !_UWIN 24*b30d1939SAndy Fiddaman int n; 25*b30d1939SAndy Fiddaman char* s; 26*b30d1939SAndy Fiddaman FILE* fr; 27*b30d1939SAndy Fiddaman FILE* fw; 28*b30d1939SAndy Fiddaman char file[16]; 29*b30d1939SAndy Fiddaman static char data[] = "0123456789"; 30*b30d1939SAndy Fiddaman s = file; 31*b30d1939SAndy Fiddaman *s++ = '1'; 32*b30d1939SAndy Fiddaman *s++ = 'F'; 33*b30d1939SAndy Fiddaman *s++ = 'F'; 34*b30d1939SAndy Fiddaman *s++ = '3'; 35*b30d1939SAndy Fiddaman n = (int)time(0); 36*b30d1939SAndy Fiddaman *s++ = (n & 0xF) + 'A'; 37*b30d1939SAndy Fiddaman *s++ = ((n >> 4) & 0xF) + 'A'; 38*b30d1939SAndy Fiddaman *s++ = ((n >> 8) & 0xF) + 'A'; 39*b30d1939SAndy Fiddaman *s++ = ((n >> 12) & 0xF) + 'A'; 40*b30d1939SAndy Fiddaman *s++ = '.'; 41*b30d1939SAndy Fiddaman *s++ = 'T'; 42*b30d1939SAndy Fiddaman *s++ = 'M'; 43*b30d1939SAndy Fiddaman *s++ = 'P'; 44*b30d1939SAndy Fiddaman *s = 0; 45*b30d1939SAndy Fiddaman remove(file); 46*b30d1939SAndy Fiddaman if (!(fw = fopen(file, "w"))) 47*b30d1939SAndy Fiddaman return 0; 48*b30d1939SAndy Fiddaman if (!(fr = fopen(file, "r"))) 49*b30d1939SAndy Fiddaman { 50*b30d1939SAndy Fiddaman fclose(fw); 51*b30d1939SAndy Fiddaman remove(file); 52*b30d1939SAndy Fiddaman return 0; 53*b30d1939SAndy Fiddaman } 54*b30d1939SAndy Fiddaman if (remove(file) < 0) 55*b30d1939SAndy Fiddaman { 56*b30d1939SAndy Fiddaman fclose(fr); 57*b30d1939SAndy Fiddaman fclose(fw); 58*b30d1939SAndy Fiddaman remove(file); 59*b30d1939SAndy Fiddaman return 0; 60*b30d1939SAndy Fiddaman } 61*b30d1939SAndy Fiddaman if (fwrite(data, sizeof(data), 1, fw) != 1) 62*b30d1939SAndy Fiddaman return 0; 63*b30d1939SAndy Fiddaman fclose(fw); 64*b30d1939SAndy Fiddaman if (fread(file, sizeof(data), 1, fr) != 1) 65*b30d1939SAndy Fiddaman return 0; 66*b30d1939SAndy Fiddaman fclose(fr); 67*b30d1939SAndy Fiddaman if (strcmp(file, data) != 0) 68*b30d1939SAndy Fiddaman return 0; 69*b30d1939SAndy Fiddaman #endif 70*b30d1939SAndy Fiddaman return 1; 71*b30d1939SAndy Fiddaman } 72*b30d1939SAndy Fiddaman}end 73*b30d1939SAndy Fiddaman 74*b30d1939SAndy Fiddamanmore void_int note{ voidptr is larger than int }end execute{ 75*b30d1939SAndy Fiddaman int 76*b30d1939SAndy Fiddaman main() 77*b30d1939SAndy Fiddaman { 78*b30d1939SAndy Fiddaman return sizeof(char*) > sizeof(int) ? 0 : 1; 79*b30d1939SAndy Fiddaman } 80*b30d1939SAndy Fiddaman}end 81*b30d1939SAndy Fiddaman 82*b30d1939SAndy Fiddamanmore long_int note{ long is larger than int }end execute{ 83*b30d1939SAndy Fiddaman int 84*b30d1939SAndy Fiddaman main() 85*b30d1939SAndy Fiddaman { 86*b30d1939SAndy Fiddaman return sizeof(long) > sizeof(int) ? 0 : 1; 87*b30d1939SAndy Fiddaman } 88*b30d1939SAndy Fiddaman}end 89*b30d1939SAndy Fiddaman 90*b30d1939SAndy Fiddamantst vax_asm note{ register layout ok for vax string operations }end execute{ 91*b30d1939SAndy Fiddaman int 92*b30d1939SAndy Fiddaman main() 93*b30d1939SAndy Fiddaman { 94*b30d1939SAndy Fiddaman #ifndef vax 95*b30d1939SAndy Fiddaman return absurd = -1; 96*b30d1939SAndy Fiddaman #else 97*b30d1939SAndy Fiddaman register int r11, r10, r9, r8, r7, r6; 98*b30d1939SAndy Fiddaman r11 = r10 = r9 = r8 = r7 = r6 = -1; 99*b30d1939SAndy Fiddaman asm("clrw r11"); 100*b30d1939SAndy Fiddaman asm("clrw r10"); 101*b30d1939SAndy Fiddaman asm("clrw r9"); 102*b30d1939SAndy Fiddaman asm("clrw r8"); 103*b30d1939SAndy Fiddaman asm("clrw r7"); 104*b30d1939SAndy Fiddaman asm("clrw r6"); 105*b30d1939SAndy Fiddaman if(sizeof(int) != sizeof(char*) || r11 || r10 || r9 || r8 || r7 || r6 ) 106*b30d1939SAndy Fiddaman return -1; 107*b30d1939SAndy Fiddaman return 0; 108*b30d1939SAndy Fiddaman #endif 109*b30d1939SAndy Fiddaman } 110*b30d1939SAndy Fiddaman}end 111*b30d1939SAndy Fiddaman 112*b30d1939SAndy Fiddamantst lib_cvt note{ native floating point conversions ok }end link{ 113*b30d1939SAndy Fiddaman _BEGIN_EXTERNS_ 114*b30d1939SAndy Fiddaman extern char* ecvt _ARG_((double, int, int*, int*)); 115*b30d1939SAndy Fiddaman extern char* fcvt _ARG_((double, int, int*, int*)); 116*b30d1939SAndy Fiddaman extern double strtod _ARG_((const char*, char**)); 117*b30d1939SAndy Fiddaman _END_EXTERNS_ 118*b30d1939SAndy Fiddaman int 119*b30d1939SAndy Fiddaman main() 120*b30d1939SAndy Fiddaman { 121*b30d1939SAndy Fiddaman ecvt(0.0, 0, 0, 0); 122*b30d1939SAndy Fiddaman fcvt(0.0, 0, 0, 0); 123*b30d1939SAndy Fiddaman strtod(0, 0); 124*b30d1939SAndy Fiddaman return 0; 125*b30d1939SAndy Fiddaman } 126*b30d1939SAndy Fiddaman}end 127*b30d1939SAndy Fiddaman 128*b30d1939SAndy Fiddamantst xopen_stdio note{ Stdio fseek/fflush are X/Open-compliant }end execute{ 129*b30d1939SAndy Fiddaman #define Failed(file) (unlink(file),1) 130*b30d1939SAndy Fiddaman int 131*b30d1939SAndy Fiddaman main(argc, argv) 132*b30d1939SAndy Fiddaman int argc; 133*b30d1939SAndy Fiddaman char** argv; 134*b30d1939SAndy Fiddaman { FILE *f1, *f2; 135*b30d1939SAndy Fiddaman char file[1024], buf[1024], *f, *t; 136*b30d1939SAndy Fiddaman int i, fd; 137*b30d1939SAndy Fiddaman 138*b30d1939SAndy Fiddaman /* create file */ 139*b30d1939SAndy Fiddaman for(f = argv[0], t = file; (*t = *f++) != 0; ) 140*b30d1939SAndy Fiddaman t++; 141*b30d1939SAndy Fiddaman *t++ = '.'; *t++ = 'D'; *t++ = 0; 142*b30d1939SAndy Fiddaman if((fd = creat(file,0666)) < 0) 143*b30d1939SAndy Fiddaman return 1; 144*b30d1939SAndy Fiddaman 145*b30d1939SAndy Fiddaman for (i = 0; i < sizeof(buf); ++i) 146*b30d1939SAndy Fiddaman buf[i] = '0' + (i%10); 147*b30d1939SAndy Fiddaman for (i = 0; i < 16; ++i) 148*b30d1939SAndy Fiddaman if (write(fd,buf,sizeof(buf)) != sizeof(buf)) 149*b30d1939SAndy Fiddaman return Failed(file); 150*b30d1939SAndy Fiddaman close(fd); 151*b30d1939SAndy Fiddaman 152*b30d1939SAndy Fiddaman if(!(f1 = fopen(file,"r+")) || 153*b30d1939SAndy Fiddaman (fd = dup(fileno(f1))) < 0 || 154*b30d1939SAndy Fiddaman !(f2 = fdopen(fd,"r+")) ) 155*b30d1939SAndy Fiddaman return Failed(file); 156*b30d1939SAndy Fiddaman 157*b30d1939SAndy Fiddaman if(fread(buf, 1, 7, f2) != 7 || ftell(f2) != 7) 158*b30d1939SAndy Fiddaman return Failed(file); 159*b30d1939SAndy Fiddaman 160*b30d1939SAndy Fiddaman if(fseek(f1, 1010, 0) < 0 || ftell(f1) != 1010) 161*b30d1939SAndy Fiddaman return Failed(file); 162*b30d1939SAndy Fiddaman 163*b30d1939SAndy Fiddaman fflush(f2); /* this should set the seek location to 1010 */ 164*b30d1939SAndy Fiddaman if(ftell(f2) != 1010) 165*b30d1939SAndy Fiddaman return Failed(file); 166*b30d1939SAndy Fiddaman 167*b30d1939SAndy Fiddaman unlink(file); 168*b30d1939SAndy Fiddaman return 0; 169*b30d1939SAndy Fiddaman } 170*b30d1939SAndy Fiddaman}end 171