home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume5 / smallc / part3 / vax / optest.c < prev    next >
Encoding:
C/C++ Source or Header  |  1986-11-30  |  2.2 KB  |  101 lines

  1. #include <stdio.h>
  2. #define    chkstk    1
  3. #define    NOSUP    1
  4. int address;
  5. int ret;
  6. int locaddr;
  7. int i;
  8. int *temp;
  9. #ifdef    vax
  10. #define INTSIZE 4
  11. #else
  12. #define    INTSIZE    2
  13. #endif
  14. int    fred[30];
  15. main(){
  16.     int x;
  17.     puts("Starting test");
  18.     i = 1;
  19.     address = &x;
  20.     locaddr = 0;
  21.     address = address + INTSIZE;
  22.     temp = address;
  23.     ret = *temp;
  24.     fred[3] = 3;
  25.     test(fred[3], 3, "fred[3] = 3");
  26.     test(INTSIZE, sizeof(int), "INTSIZE");
  27.     test(sizeof(char), 1, "sizeof char");
  28.     test(1 + 4, 1,  "(should fail) 1+4");
  29.     test(1022 + 5, 1027, "1022 + 5");
  30.     test(4 + 5, 9, "4 + 5");
  31.     test(1022 * 3, 3066, "1022 * 3");
  32.     test(4 * - 1, -4, "4 * - 1");
  33.     test(4 * 5, 20, "4 * 5");
  34.     test(1000 - 999, 1, "1000 - 999");
  35.     test(1000 - 1200, -200, "1000 - 1200");
  36.     test(-1 - -1, 0, "-1 - -1");
  37.     test(4 >> 2, 1, "4 >> 2");
  38.     test(1234 >> 1, 617, "1234 >> 1");
  39.     test(4 << 2, 16, "4 << 2");
  40.     test(1000 << 1, 2000, "1000 << 1");
  41.     test(1001 % 10, 1, "1001 % 10");
  42.     test(3 % 10, 3, "3 % 10");
  43.     test(10 % 4, 2, "10 % 4");
  44.     test(1000 / 5, 200, "1000 / 5");
  45.     test(3 / 10, 0, "3 / 10");
  46.     test(10 / 3, 3, "10 / 3");
  47.     test(1000 == 32767, 0, "1000 == 32767");
  48.     test(1000 == 1000, 1, "1000 == 1000");
  49.     test(1 != 0, 1, "1 != 0");
  50.     test(1 < -1, 0, "1 < -1");
  51.     test(1 < 2, 1, "1 < 2");
  52.     test(1 != 1, 0, "1 != 1");
  53.     test(2 && 1, 1, "2 && 1");
  54.     test(0 && 1, 0, "0 && 1");
  55.     test(1 && 0, 0, "1 && 0");
  56.     test(0 && 0, 0, "0 && 0");
  57.     test(1000 || 1, 1, "1000 || 1");
  58.     test(1000 || 0, 1, "1000 || 0");
  59.     test(0 || 1, 1, "0 || 1");
  60.     test(0 || 0, 0, "0 || 0");
  61.     test(!2, 0, "!2");
  62.     test(!0, 1, "!0");
  63.     test(~1, -2, "~1");
  64.     test(2 ^ 1, 3, "2 ^ 1");
  65.     test(0 ^ 0, 0, "0 ^ 0");
  66.     test(1 ^ 1, 0, "1 ^ 1");
  67.     test(5 ^ 6, 3, "5 ^ 6");
  68.     test((0 < 1) ? 1 : 0, 1, "(0 < 1) ? 1 : 0");
  69.     test((1000 > 1000) ? 0: 1, 1, "(1000 > 1000) ? 0 : 1");
  70.     puts("ending test");
  71.     }
  72. test(t, real, testn) int t; char *testn; int real;{
  73.     if (t != real) {
  74.         fputs(testn, stdout);
  75.         fputs(" failed\n", stdout);
  76.         fputs("Should be: ", stdout);
  77.         printn(real, 10, stdout);
  78.         fputs(" was: ", stdout);
  79.         printn(t, 10, stdout);
  80.         putchar('\n');
  81.         prompt();
  82.         }
  83.     if (*temp != ret) {
  84.         puts("retst");
  85.         prompt();
  86.     }
  87. #ifdef    chkstk
  88.     if (locaddr == 0) locaddr = &t;
  89.     else if (locaddr != &t) {
  90.         puts("locst during");
  91.         puts(testn);
  92.         prompt();
  93.     }
  94. #endif
  95. }
  96. prompt() {
  97.     puts("hit any key to continue");
  98.     getchar();
  99. }
  100.  
  101.