Ignore:
Timestamp:
Jan 24, 2000, 7:19:01 PM (26 years ago)
Author:
bird
Message:

Heapchanges: Heap is splitted into a swappable and a resident. The heaps
are dynamically growable.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/win32k/misc/heaptest.c

    r2508 r2511  
    1 /* $Id: heaptest.c,v 1.4 2000-01-24 03:05:13 bird Exp $
     1/* $Id: heaptest.c,v 1.5 2000-01-24 18:18:59 bird Exp $
    22 *
    33 * Test of resident and swappable heaps.
     
    1313*   Defined Constants
    1414*******************************************************************************/
    15 #define NUMBER_OF_POINTERS      1024
    16 #define RANDOMTEST_ITERATIONS   65536*2
    17 #define Int3()          __interrupt(3)
    18 
     15#define NUMBER_OF_POINTERS      16384
     16#define RANDOMTEST_ITERATIONS   65536
     17#define EXTRA_HEAPCHECK
    1918
    2019/*******************************************************************************
     
    2524#include "smalloc.h"
    2625#include "macros.h"
     26#include "asmutils.h"
    2727#include <stdio.h>
    2828#include <stdlib.h>
    2929#include <memory.h>
    30 #include <builtin.h>
    3130
    3231
     
    4342    unsigned      crealloc;
    4443    int           i;
    45     int           fResTests = 0;
    46     int           fResSimple = 0;
    47     int           fResRandom = 0;
     44    int           fResTests = 1;
     45    int           fResSimple = 1;
     46    int           fResRandom = 1;
    4847    int           fSwpTests = 1;
    49     int           fSwpSimple = 0;
     48    int           fSwpSimple = 1;
    5049    int           fSwpRandom = 1;
    5150    enum   {malloc,realloc, free, unknown} enmLast = unknown;
     
    9897                        break;
    9998                }
    100                 memset(apv[i], 0xA, MIN(acb[i],16));
     99                memset(apv[i], 0xA, acb[i]);
    101100                cb += acb[i];
    102101            }
     
    113112                if (cb != ((acb[i] + 3) & ~3) && (cb < ((acb[i] + 3) & ~3) || cb > 52 + ((acb[i] + 3) & ~3)) )
    114113                    printf("size of avp[%d] (%d) != acb[%d] (%d)\n", i, cb, i, acb[i]);
     114                memset(apv[i], 0xF, acb[i]);
    115115                rfree(apv[i]);
    116116                enmLast = free;
     
    179179                            break;
    180180                        }
    181                         memset(apv[j], 0xA, MIN(acb[j],16));
     181                        memset(apv[j], 0xA, acb[j]);
    182182                        cAllocations++;
    183183                        cb += acb[j];
     
    236236                            apv[j] = pv;
    237237                            acb[j] = cb;
     238                            memset(apv[j], 0xB, acb[j]);
    238239                        }
    239240                        else
    240241                        {   /* free */
     242                            memset(apv[j], 0xF, acb[j]);
    241243                            rfree(apv[j]);
    242244                            enmLast = free;
     
    247249                    }
    248250                }
     251                #ifdef EXTRA_HEAPCHECK
    249252                _res_heap_check();
     253                #endif
    250254                if (RANDOMTEST_ITERATIONS/2 == i)
    251255                    _res_dump_subheaps();
     
    277281    if (fSwpTests)
    278282    {
     283        printf("\nSwappable heap tests\nSwappable heap tests\n");
    279284        if (fSwpSimple)
    280285        {
     
    282287             * Simple allocation test.
    283288             */
     289            printf("\nSimple swappable heap tests\nSimple swappable heap tests\n");
    284290            for (i = 0; i < NUMBER_OF_POINTERS; i++)
    285291            {
     
    299305                        break;
    300306                }
    301                 memset(apv[i], 0xA, MIN(acb[i],16));
     307                memset(apv[i], 0xA, acb[i]);
    302308                cb += acb[i];
    303309            }
     
    314320                if (cb != ((acb[i] + 3) & ~3) && (cb < ((acb[i] + 3) & ~3) || cb > 52 + ((acb[i] + 3) & ~3)) )
    315321                    printf("size of avp[%d] (%d) != acb[%d] (%d)\n", i, cb, i, acb[i]);
     322                memset(apv[i], 0xF, acb[i]);
    316323                sfree(apv[i]);
    317324                enmLast = free;
     
    340347             */
    341348            printf("\n"
    342                    "Random allocation and freeing test:\n");
     349                   "Random allocation and freeing test (swappable)\n"
     350                   "Random allocation and freeing test (swappable)\n"
     351                   );
    343352            for (i = 0; i < NUMBER_OF_POINTERS; i++)
    344353                apv[i] = NULL, acb[i] = 0;
     
    380389                            break;
    381390                        }
    382                         memset(apv[j], 0xA, MIN(acb[j],16));
     391                        memset(apv[j], 0xA, acb[j]);
    383392                        cAllocations++;
    384393                        cb += acb[j];
     
    437446                            apv[j] = pv;
    438447                            acb[j] = cb;
     448                            memset(apv[j], 0xB, acb[j]);
    439449                        }
    440450                        else
    441451                        {   /* free */
     452                            memset(apv[j], 0xF, acb[j]);
    442453                            sfree(apv[j]);
    443454                            enmLast = free;
     
    448459                    }
    449460                }
     461                #ifdef EXTRA_HEAPCHECK
    450462                _swp_heap_check();
     463                #endif
    451464                if (RANDOMTEST_ITERATIONS/2 == i)
     465                {
    452466                    _swp_dump_subheaps();
     467                    _res_dump_subheaps();
     468                }
    453469                if ((i % 2048) == 0)
    454470                    printf("i=%d cAllocations=%d\n", i, cAllocations);
     
    459475            printf("_swp_dump_subheaps:\n");
    460476            _swp_dump_subheaps();
     477            printf("_res_dump_subheaps:\n");
     478            _res_dump_subheaps();
    461479
    462480            printf("_swp_memfree - before heapmin: %d\n", _swp_memfree());
     
    466484            printf("_swp_dump_subheaps:\n");
    467485            _swp_dump_subheaps();
     486            printf("_res_dump_subheaps:\n");
     487            _res_dump_subheaps();
    468488        } /* fSwpRandom */
    469489    }
Note: See TracChangeset for help on using the changeset viewer.