home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 3 / 3487 / tst.c < prev   
Encoding:
C/C++ Source or Header  |  1991-06-15  |  2.2 KB  |  118 lines

  1.  
  2. #include <stdio.h>
  3. #include <signal.h>
  4. #include <setjmp.h>
  5.  
  6. #ifdef __STDC__
  7. # include <stdlib.h>
  8. # include <memory.h>
  9. #else
  10. extern char *malloc();
  11. extern char *calloc();
  12. extern char *realloc();
  13. extern void free();
  14. extern void abort();
  15. extern char *memset();
  16. extern void exit();
  17. #endif
  18.  
  19. #include "malloc.h"
  20.  
  21. jmp_buf jb;
  22.  
  23.  
  24. void
  25. sigiot()
  26. {
  27.     signal(SIGIOT, sigiot);
  28.     MemChain();
  29.     longjmp(jb, 1);
  30. }
  31.  
  32.  
  33. main()
  34. {
  35.     char *ptr;
  36.  
  37.     signal(SIGIOT, sigiot);
  38.  
  39.     if (!setjmp(jb)) {
  40.     ptr = (char *) malloc(10);
  41.     (void) fprintf(stderr, "1. Malloc 10 ok\n");
  42.     }
  43.     else 
  44.     (void) fprintf(stderr, "1. Malloc 10 failed\n");
  45.  
  46.     if (!setjmp(jb)) {
  47.     malloc(0);
  48.     (void) fprintf(stderr, "2. Malloc 0 failed\n");
  49.     }
  50.     else 
  51.     (void) fprintf(stderr, "2. Malloc 0 ok\n");
  52.  
  53.     if (!setjmp(jb)) {
  54.     realloc(0, 20);
  55.     (void) fprintf(stderr, "3. Realloc null failed\n");
  56.     }
  57.     else 
  58.     (void) fprintf(stderr, "3. Realloc null ok\n");
  59.  
  60.     if (!setjmp(jb)) {
  61.     realloc(ptr, 0);
  62.     (void) fprintf(stderr, "4. Realloc 0 failed\n");
  63.     }
  64.     else 
  65.     (void) fprintf(stderr, "4. Realloc 0 ok\n");
  66.  
  67.     if (!setjmp(jb)) {
  68.     ptr = (char *) realloc(ptr, 40);
  69.     (void) fprintf(stderr, "5. Realloc valid ok\n");
  70.     }
  71.     else 
  72.     (void) fprintf(stderr, "5. Realloc valid failed\n");
  73.  
  74.     if (!setjmp(jb)) {
  75.     ptr = (char *) realloc(20, 40);
  76.     (void) fprintf(stderr, "6. Realloc invalid failed\n");
  77.     }
  78.     else 
  79.     (void) fprintf(stderr, "6. Realloc invalid ok\n");
  80.  
  81.     if (!setjmp(jb)) {
  82.     free(0);
  83.     (void) fprintf(stderr, "7. Free null failed\n");
  84.     }
  85.     else 
  86.     (void) fprintf(stderr, "7. Free null ok\n");
  87.  
  88.     if (!setjmp(jb)) {
  89.     free(ptr);
  90.     (void) fprintf(stderr, "8. Free valid ok\n");
  91.     }
  92.     else 
  93.     (void) fprintf(stderr, "8. Free valid failed\n");
  94.  
  95.     if (!setjmp(jb)) {
  96.     free(20);
  97.     (void) fprintf(stderr, "9. Free invalid failed\n");
  98.     }
  99.     else 
  100.     (void) fprintf(stderr, "9. Free invalid ok\n");
  101.  
  102.     if (!setjmp(jb)) {
  103.     free(ptr);
  104.     (void) fprintf(stderr, "10. Free freed failed\n");
  105.     }
  106.     else 
  107.     (void) fprintf(stderr, "10. Free freed ok\n");
  108.  
  109.     if (!setjmp(jb)) {
  110.     realloc(ptr, 20);
  111.     (void) fprintf(stderr, "11. Realloc freed failed\n");
  112.     }
  113.     else 
  114.     (void) fprintf(stderr, "11. Realloc freed ok\n");
  115.     exit(0);
  116. }
  117.  
  118.