Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • tests/heap.cfa

    r4962741 r5dc5da7  
    1010// Created On       : Tue Nov  6 17:54:56 2018
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Aug 10 09:57:01 2022
    13 // Update Count     : 86
     12// Last Modified On : Tue Dec 15 12:11:51 2020
     13// Update Count     : 79
    1414//
    1515
     
    2626//      return __CFA_DEFAULT_PREEMPTION__;
    2727// }
     28
     29size_t default_heap_expansion() {
     30        return 10 * 1024 * 1024;
     31} // default_heap_expansion
     32
     33size_t default_mmap_start() {
     34        return 512 * 1024 + 1;
     35} // default_mmap_start
    2836
    2937thread Worker {
     
    5866                        for ( k; i ) locns[i][k] = '\345';
    5967                } // for
    60                 for ( i; -~= NoOfAllocs - 1 ) {
     68                for ( i; NoOfAllocs - 1 -~= 0 ) {
    6169                        //sout | (void *)locns[i];
    6270                        for ( k; i ) if ( locns[i][k] != '\345' ) abort( "new/delete corrupt storage2" );
     
    9199
    92100        for ( i; NoOfMmaps ) {
    93                 size_t s = i + malloc_mmap_start();                     // cross over point
     101                size_t s = i + default_mmap_start();                    // cross over point
    94102                char * area = (char *)malloc( s );
    95103                area[0] = '\345'; area[s - 1] = '\345';                 // fill first/last
     
    99107
    100108        for ( i; NoOfMmaps ) {
    101                 size_t s = i + malloc_mmap_start();                     // cross over point
     109                size_t s = i + default_mmap_start();                    // cross over point
    102110                locns[i] = (char *)malloc( s );
    103111                locns[i][0] = '\345'; locns[i][s - 1] = '\345'; // fill first/last
     
    105113        } // for
    106114        for ( i; NoOfMmaps ) {
    107                 size_t s = i + malloc_mmap_start();                     // cross over point
     115                size_t s = i + default_mmap_start();                    // cross over point
    108116                if ( locns[i][0] != '\345' || locns[i][s - 1] != '\345' ||
    109117                         locns[i][malloc_usable_size( locns[i] ) - 1] != '\345' ) abort( "malloc/free corrupt storage" );
     
    143151
    144152        for ( i; NoOfMmaps ) {
    145                 size_t s = i + malloc_mmap_start();                     // cross over point
     153                size_t s = i + default_mmap_start();                    // cross over point
    146154                char * area = (char *)calloc( 1, s );
    147155                if ( area[0] != '\0' || area[s - 1] != '\0' ) abort( "calloc/free corrupt storage4.1" );
     
    154162
    155163        for ( i; NoOfMmaps ) {
    156                 size_t s = i + malloc_mmap_start();                     // cross over point
     164                size_t s = i + default_mmap_start();                    // cross over point
    157165                locns[i] = (char *)calloc( 1, s );
    158166                if ( locns[i][0] != '\0' || locns[i][s - 1] != '\0' ||
     
    163171        } // for
    164172        for ( i; NoOfMmaps ) {
    165                 size_t s = i + malloc_mmap_start();                     // cross over point
     173                size_t s = i + default_mmap_start();                    // cross over point
    166174                if ( locns[i][0] != '\345' || locns[i][s - 1] != '\345' ||
    167175                         locns[i][malloc_usable_size( locns[i] ) - 1] != '\345' ) abort( "calloc/free corrupt storage6" );
     
    190198                //sout | alignments[a];
    191199                for ( i; 1 ~ NoOfMmaps ) {
    192                         size_t s = i + malloc_mmap_start();             // cross over point
     200                        size_t s = i + default_mmap_start();            // cross over point
    193201                        char * area = (char *)memalign( a, s );
    194202                        //sout | i | area;
     
    224232        for ( i; 2 ~ NoOfAllocs ~ 12 ) {
    225233                // initial N byte allocation
    226                 size_t s = i + malloc_mmap_start();                     // cross over point
     234                size_t s = i + default_mmap_start();                    // cross over point
    227235                char * area = (char *)malloc( s );
    228236                area[0] = '\345'; area[s - 1] = '\345';                 // fill first/penultimate byte
     
    261269        for ( i; 2 ~ NoOfAllocs ~ 12 ) {
    262270                // initial N byte allocation
    263                 size_t s = i + malloc_mmap_start();                     // cross over point
     271                size_t s = i + default_mmap_start();                    // cross over point
    264272                char * area = (char *)malloc( s );
    265273                area[0] = '\345'; area[s - 1] = '\345';                 // fill first/penultimate byte
     
    299307        for ( i; 1 ~ 10_000 ~ 12 ) {
    300308                // initial N byte allocation
    301                 size_t s = i + malloc_mmap_start();                     // cross over point
     309                size_t s = i + default_mmap_start();                    // cross over point
    302310                char * area = (char *)calloc( 1, s );
    303311                if ( area[0] != '\0' || area[s - 1] != '\0' ||
     
    473481
    474482int main() {
    475         enum { NoOfWorkers = 4 };
     483        const unsigned int NoOfWorkers = 4;
    476484        {
    477485                processor processors[NoOfWorkers - 1] __attribute__(( unused )); // more than one processor
Note: See TracChangeset for help on using the changeset viewer.