Changeset 4a2f4bb in mainline
- Timestamp:
- 2006-01-25T21:18:38Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 2a003d5b
- Parents:
- 895be41
- Location:
- test/mm
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
test/mm/falloc1/test.c
r895be41 r4a2f4bb 34 34 #include <arch/types.h> 35 35 #include <debug.h> 36 #include <align.h> 36 37 37 38 #define MAX_FRAMES 1024 … … 48 49 49 50 ASSERT(TEST_RUNS > 1); 51 ASSERT(frames != NULL) 50 52 51 for (run =0;run<=TEST_RUNS;run++) {52 for (order =0;order<=MAX_ORDER;order++) {53 printf("Allocating %d frames blocks ... ", 1 <<order);53 for (run = 0; run < TEST_RUNS; run++) { 54 for (order = 0; order <= MAX_ORDER; order++) { 55 printf("Allocating %d frames blocks ... ", 1 << order); 54 56 allocated = 0; 55 for (i =0;i<MAX_FRAMES>>order;i++) {57 for (i = 0; i < MAX_FRAMES >> order; i++) { 56 58 frames[allocated] = frame_alloc(FRAME_NON_BLOCKING | FRAME_KA, order, &status); 57 59 58 if ( frames[allocated] % (FRAME_SIZE << order) != 0) {60 if (ALIGN_UP(frames[allocated], FRAME_SIZE << order) != frames[allocated]) { 59 61 panic("Test failed. Block at address %X (size %dK) is not aligned\n", frames[allocated], (FRAME_SIZE << order) >> 10); 60 62 } … … 68 70 } 69 71 70 printf("%d blocks al ocated.\n", allocated);72 printf("%d blocks allocated.\n", allocated); 71 73 72 74 if (run) { … … 74 76 panic("Test failed. Frame leak possible.\n"); 75 77 } 76 } else results[order] = allocated; 78 } else 79 results[order] = allocated; 77 80 78 81 printf("Deallocating ... "); 79 for (i =0;i<allocated;i++) {82 for (i = 0; i < allocated; i++) { 80 83 frame_free(frames[i]); 81 84 } … … 86 89 free(frames); 87 90 88 printf("Test passed \n");91 printf("Test passed.\n"); 89 92 } 90 93 -
test/mm/falloc2/test.c
r895be41 r4a2f4bb 37 37 #include <proc/thread.h> 38 38 #include <memstr.h> 39 #include <arch.h> 39 40 40 41 #define MAX_FRAMES 256 … … 49 50 static atomic_t thread_count; 50 51 51 void thread(void * arg) {52 int status, order, run, allocated,i; 53 54 __u8 val = *((__u8 *) arg);52 void thread(void * arg) 53 { 54 int status, order, run, allocated, i; 55 __u8 val = THREAD->tid % THREADS; 55 56 index_t k; 56 57 57 58 __address * frames = (__address *) malloc(MAX_FRAMES * sizeof(__address)); 59 ASSERT(frames != NULL); 58 60 59 for (run=0;run<THREAD_RUNS;run++) { 60 61 for (order=0;order<=MAX_ORDER;order++) { 62 printf("Thread #%d: Allocating %d frames blocks ... \n",val, 1<<order); 61 for (run = 0; run < THREAD_RUNS; run++) { 62 for (order = 0; order <= MAX_ORDER; order++) { 63 printf("Thread #%d: Allocating %d frames blocks ... \n", THREAD->tid, 1 << order); 63 64 allocated = 0; 64 for (i =0;i < (MAX_FRAMES >> order);i++) {65 frames[allocated] = frame_alloc(FRAME_NON_BLOCKING | FRAME_KA, order, &status);65 for (i = 0; i < (MAX_FRAMES >> order); i++) { 66 frames[allocated] = frame_alloc(FRAME_NON_BLOCKING | FRAME_KA, order, &status); 66 67 if (status == 0) { 67 memsetb(frames[allocated], (1 << order) * FRAME_SIZE, val);68 memsetb(frames[allocated], FRAME_SIZE << order, val); 68 69 allocated++; 69 70 } else { … … 71 72 } 72 73 } 73 74 printf("Thread #%d: %d blocks alocated.\n",val, allocated); 74 printf("Thread #%d: %d blocks allocated.\n", THREAD->tid, allocated); 75 75 76 printf("Thread #%d: Deallocating ... \n", val); 77 for (i=0;i<allocated;i++) { 78 79 for (k=0;k<=((FRAME_SIZE << order) - 1);k++) { 80 if ( ((char *) frames[i])[k] != val ) { 81 printf("Thread #%d: Unexpected data in block %P offset %X\n",val, frames[i], k); 76 printf("Thread #%d: Deallocating ... \n", THREAD->tid); 77 for (i = 0; i < allocated; i++) { 78 for (k = 0; k <= ((FRAME_SIZE << order) - 1); k++) { 79 if (((__u8 *) frames[i])[k] != val) { 80 printf("Thread #%d: Unexpected data (%d) in block %P offset %X\n", THREAD->tid, ((char *) frames[i])[k], frames[i], k); 82 81 failed(); 83 82 } 84 85 83 } 86 87 84 frame_free(frames[i]); 88 85 } … … 91 88 } 92 89 90 free(frames); 93 91 94 92 atomic_dec(&thread_count); 95 96 93 } 97 94 98 95 99 void failed(void) { 96 void failed(void) 97 { 100 98 panic("Test failed.\n"); 101 99 } 102 100 103 101 104 void test(void) { 102 void test(void) 103 { 105 104 int i; 106 105 107 106 atomic_set(&thread_count, THREADS); 108 107 109 for (i =1;i<=THREADS;i++) {108 for (i = 0; i < THREADS; i++) { 110 109 thread_t * thrd; 111 thrd = thread_create(thread, &i, TASK, 0); 112 if (thrd) thread_ready(thrd); else failed(); 110 thrd = thread_create(thread, NULL, TASK, 0); 111 if (thrd) 112 thread_ready(thrd); 113 else 114 failed(); 113 115 } 114 116 115 while (thread_count.count); 117 while (thread_count.count) 118 ; 116 119 117 printf("Test passed \n");120 printf("Test passed.\n"); 118 121 } 119
Note:
See TracChangeset
for help on using the changeset viewer.