From 2a533ff9cc524f98aa158d4d8682e1b60e1873da Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sat, 26 Feb 2011 15:31:35 +0000 Subject: [PATCH] Increased coverage, reports. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/stable_2.2.x@2772 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- docs/reports/coverage.txt | 2 +- docs/reports/kernel.txt | 78 +++++++++++++++---------------- os/kernel/include/chmempools.h | 2 +- test/testmbox.c | 85 +++++++++++++++++++++++++++------- 4 files changed, 108 insertions(+), 59 deletions(-) diff --git a/docs/reports/coverage.txt b/docs/reports/coverage.txt index dc63a753e..c84386d9d 100644 --- a/docs/reports/coverage.txt +++ b/docs/reports/coverage.txt @@ -53,7 +53,7 @@ Lines executed:100.00% of 32 ../../os/kernel/src/chmsg.c:creating `chmsg.c.gcov' File `../../os/kernel/src/chmboxes.c' -Lines executed:100.00% of 65 +Lines executed:100.00% of 94 ../../os/kernel/src/chmboxes.c:creating `chmboxes.c.gcov' File `../../os/kernel/src/chqueues.c' diff --git a/docs/reports/kernel.txt b/docs/reports/kernel.txt index 45f9776d0..de511243f 100644 --- a/docs/reports/kernel.txt +++ b/docs/reports/kernel.txt @@ -2,13 +2,13 @@ Platform : PowerPC OS Setup : Full kernel Compiler : powerpc-eabi-gcc (Sourcery G++ Lite 4.4-79) 4.4.1 Options : -O2 -DCH_OPTIMIZE_SPEED=TRUE -Kernel Size = 11404 +Kernel Size = 11736 Platform : PowerPC OS Setup : Full kernel Compiler : powerpc-eabi-gcc (Sourcery G++ Lite 4.4-79) 4.4.1 Options : -O2 -DCH_OPTIMIZE_SPEED=FALSE -Kernel Size = 10956 +Kernel Size = 11288 Platform : PowerPC OS Setup : Minimal kernel @@ -20,13 +20,13 @@ Platform : PowerPC OS Setup : Full kernel Compiler : powerpc-eabi-gcc (Sourcery G++ Lite 4.4-79) 4.4.1 Options : -Os -DCH_OPTIMIZE_SPEED=TRUE -Kernel Size = 9936 +Kernel Size = 10260 Platform : PowerPC OS Setup : Full kernel Compiler : powerpc-eabi-gcc (Sourcery G++ Lite 4.4-79) 4.4.1 Options : -Os -DCH_OPTIMIZE_SPEED=FALSE -Kernel Size = 9444 +Kernel Size = 9768 Platform : PowerPC OS Setup : Minimal kernel @@ -38,103 +38,103 @@ Platform : ARM Cortex-M3 OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -O2 -mthumb -DCH_OPTIMIZE_SPEED=TRUE -Kernel Size = 6024 +Kernel Size = 6172 Platform : ARM Cortex-M3 OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -O2 -mthumb -DCH_OPTIMIZE_SPEED=FALSE -Kernel Size = 5524 +Kernel Size = 5672 Platform : ARM Cortex-M3 OS Setup : Minimal kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -O2 -mthumb -Kernel Size = 1428 +Kernel Size = 1432 Platform : ARM Cortex-M3 OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -Os -mthumb -DCH_OPTIMIZE_SPEED=TRUE -Kernel Size = 5428 +Kernel Size = 5568 Platform : ARM Cortex-M3 OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -Os -mthumb -DCH_OPTIMIZE_SPEED=FALSE -Kernel Size = 5024 +Kernel Size = 5160 Platform : ARM Cortex-M3 OS Setup : Minimal kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -Os -mthumb -Kernel Size = 1244 +Kernel Size = 1248 Platform : ARM Cortex-M3 OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -Os -mthumb -ffixed-r7 -DCH_CURRP_REGISTER_CACHE=\"r7\" -DCH_OPTIMIZE_SPEED=TRUE -Kernel Size = 5212 +Kernel Size = 5352 Platform : ARM Cortex-M3 OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -Os -mthumb -ffixed-r7 -DCH_CURRP_REGISTER_CACHE=\"r7\" -DCH_OPTIMIZE_SPEED=FALSE -Kernel Size = 4828 +Kernel Size = 4968 Platform : ARM Cortex-M3 OS Setup : Minimal kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -Os -mthumb -ffixed-r7 -DCH_CURRP_REGISTER_CACHE=\"r7\" -Kernel Size = 1196 +Kernel Size = 1200 Platform : ARM Cortex-M0 OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -O2 -mthumb -DCH_OPTIMIZE_SPEED=TRUE -Kernel Size = 5280 +Kernel Size = 5408 Platform : ARM Cortex-M0 OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -O2 -mthumb -DCH_OPTIMIZE_SPEED=FALSE -Kernel Size = 5084 +Kernel Size = 5212 Platform : ARM Cortex-M0 OS Setup : Minimal kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -O2 -mthumb -Kernel Size = 1304 +Kernel Size = 1276 Platform : ARM Cortex-M0 OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -Os -mthumb -DCH_OPTIMIZE_SPEED=TRUE -Kernel Size = 4852 +Kernel Size = 4968 Platform : ARM Cortex-M0 OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -Os -mthumb -DCH_OPTIMIZE_SPEED=FALSE -Kernel Size = 4692 +Kernel Size = 4808 Platform : ARM Cortex-M0 OS Setup : Minimal kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -Os -mthumb -Kernel Size = 1180 +Kernel Size = 1152 Platform : ARM7TDMI (ARM mode) OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -O2 -DCH_OPTIMIZE_SPEED=TRUE -Kernel Size = 8748 +Kernel Size = 8988 Platform : ARM7TDMI (ARM mode) OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -O2 -DCH_OPTIMIZE_SPEED=FALSE -Kernel Size = 8288 +Kernel Size = 8528 Platform : ARM7TDMI (ARM mode) OS Setup : Minimal kernel @@ -146,13 +146,13 @@ Platform : ARM7TDMI (ARM mode) OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -Os -DCH_OPTIMIZE_SPEED=TRUE -Kernel Size = 8100 +Kernel Size = 8344 Platform : ARM7TDMI (ARM mode) OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -Os -DCH_OPTIMIZE_SPEED=FALSE -Kernel Size = 7744 +Kernel Size = 7988 Platform : ARM7TDMI (ARM mode) OS Setup : Minimal kernel @@ -164,13 +164,13 @@ Platform : ARM7TDMI (ARM mode) OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -O2 -ffixed-r7 -DCH_CURRP_REGISTER_CACHE=\"r7\" -DCH_OPTIMIZE_SPEED=TRUE -Kernel Size = 8464 +Kernel Size = 8704 Platform : ARM7TDMI (ARM mode) OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -O2 -ffixed-r7 -DCH_CURRP_REGISTER_CACHE=\"r7\" -DCH_OPTIMIZE_SPEED=FALSE -Kernel Size = 8020 +Kernel Size = 8260 Platform : ARM7TDMI (ARM mode) OS Setup : Minimal kernel @@ -182,13 +182,13 @@ Platform : ARM7TDMI (ARM mode) OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -Os -ffixed-r7 -DCH_CURRP_REGISTER_CACHE=\"r7\" -DCH_OPTIMIZE_SPEED=TRUE -Kernel Size = 7808 +Kernel Size = 8052 Platform : ARM7TDMI (ARM mode) OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -Os -ffixed-r7 -DCH_CURRP_REGISTER_CACHE=\"r7\" -DCH_OPTIMIZE_SPEED=FALSE -Kernel Size = 7472 +Kernel Size = 7716 Platform : ARM7TDMI (ARM mode) OS Setup : Minimal kernel @@ -200,13 +200,13 @@ Platform : ARM7TDMI (THUMB mode) OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -O2 -mthumb -DCH_OPTIMIZE_SPEED=TRUE -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING -Kernel Size = 5844 +Kernel Size = 6012 Platform : ARM7TDMI (THUMB mode) OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -O2 -mthumb -DCH_OPTIMIZE_SPEED=FALSE -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING -Kernel Size = 5636 +Kernel Size = 5804 Platform : ARM7TDMI (THUMB mode) OS Setup : Minimal kernel @@ -218,13 +218,13 @@ Platform : ARM7TDMI (THUMB mode) OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -Os -mthumb -DCH_OPTIMIZE_SPEED=TRUE -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING -Kernel Size = 5428 +Kernel Size = 5584 Platform : ARM7TDMI (THUMB mode) OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -Os -mthumb -DCH_OPTIMIZE_SPEED=FALSE -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING -Kernel Size = 5244 +Kernel Size = 5400 Platform : ARM7TDMI (THUMB mode) OS Setup : Minimal kernel @@ -236,13 +236,13 @@ Platform : ARM7TDMI (THUMB mode) OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -O2 -mthumb -ffixed-r7 -DCH_CURRP_REGISTER_CACHE=\"r7\" -DCH_OPTIMIZE_SPEED=TRUE -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING -Kernel Size = 5688 +Kernel Size = 5856 Platform : ARM7TDMI (THUMB mode) OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -O2 -mthumb -ffixed-r7 -DCH_CURRP_REGISTER_CACHE=\"r7\" -DCH_OPTIMIZE_SPEED=FALSE -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING -Kernel Size = 5492 +Kernel Size = 5656 Platform : ARM7TDMI (THUMB mode) OS Setup : Minimal kernel @@ -254,13 +254,13 @@ Platform : ARM7TDMI (THUMB mode) OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -Os -mthumb -ffixed-r7 -DCH_CURRP_REGISTER_CACHE=\"r7\" -DCH_OPTIMIZE_SPEED=TRUE -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING -Kernel Size = 5216 +Kernel Size = 5372 Platform : ARM7TDMI (THUMB mode) OS Setup : Full kernel Compiler : arm-none-eabi-gcc (GCC) 4.5.2 Options : -Os -mthumb -ffixed-r7 -DCH_CURRP_REGISTER_CACHE=\"r7\" -DCH_OPTIMIZE_SPEED=FALSE -DTHUMB -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING -Kernel Size = 5056 +Kernel Size = 5216 Platform : ARM7TDMI (THUMB mode) OS Setup : Minimal kernel @@ -272,13 +272,13 @@ Platform : MSP430 OS Setup : Full kernel Compiler : msp430-gcc (GCC) 3.2.3 Options : -O2 -DCH_OPTIMIZE_SPEED=TRUE -Kernel Size = 5708 +Kernel Size = 5880 Platform : MSP430 OS Setup : Full kernel Compiler : msp430-gcc (GCC) 3.2.3 Options : -O2 -DCH_OPTIMIZE_SPEED=FALSE -Kernel Size = 5304 +Kernel Size = 5476 Platform : MSP430 OS Setup : Minimal kernel @@ -290,13 +290,13 @@ Platform : MSP430 OS Setup : Full kernel Compiler : msp430-gcc (GCC) 3.2.3 Options : -Os -DCH_OPTIMIZE_SPEED=TRUE -Kernel Size = 5648 +Kernel Size = 5820 Platform : MSP430 OS Setup : Full kernel Compiler : msp430-gcc (GCC) 3.2.3 Options : -Os -DCH_OPTIMIZE_SPEED=FALSE -Kernel Size = 5264 +Kernel Size = 5436 Platform : MSP430 OS Setup : Minimal kernel diff --git a/os/kernel/include/chmempools.h b/os/kernel/include/chmempools.h index 8e35ab9c3..9a64fb667 100644 --- a/os/kernel/include/chmempools.h +++ b/os/kernel/include/chmempools.h @@ -66,7 +66,7 @@ typedef struct { * @param[in] provider memory provider function for the memory pool */ #define _MEMORYPOOL_DATA(name, size, provider) \ - {NULL, MEM_ALIGN_SIZE(size), provider} + {NULL, MEM_ALIGN_NEXT(size), provider} /** * @brief Static memory pool initializer in hungry mode. diff --git a/test/testmbox.c b/test/testmbox.c index 23ad3c9c2..0de4aa288 100644 --- a/test/testmbox.c +++ b/test/testmbox.c @@ -107,46 +107,95 @@ static void mbox1_execute(void) { */ msg1 = chMBPost(&mb1, 'X', 1); test_assert(4, msg1 == RDY_TIMEOUT, "wrong wake-up message"); + msg1 = chMBPostI(&mb1, 'X'); + test_assert(5, msg1 == RDY_TIMEOUT, "wrong wake-up message"); + msg1 = chMBPostAhead(&mb1, 'X', 1); + test_assert(6, msg1 == RDY_TIMEOUT, "wrong wake-up message"); + msg1 = chMBPostAheadI(&mb1, 'X'); + test_assert(7, msg1 == RDY_TIMEOUT, "wrong wake-up message"); /* * Testing final conditions. */ - test_assert(5, chMBGetFreeCountI(&mb1) == 0, "still empty"); - test_assert(6, chMBGetUsedCountI(&mb1) == MB_SIZE, "not full"); - test_assert(7, mb1.mb_rdptr == mb1.mb_wrptr, "pointers not aligned"); + test_assert(8, chMBGetFreeCountI(&mb1) == 0, "still empty"); + test_assert(9, chMBGetUsedCountI(&mb1) == MB_SIZE, "not full"); + test_assert(10, mb1.mb_rdptr == mb1.mb_wrptr, "pointers not aligned"); /* * Testing dequeuing. */ for (i = 0; i < MB_SIZE; i++) { - msg1 = chMBFetch(&mb1, &msg2, TIME_INFINITE); - test_assert(8, msg1 == RDY_OK, "wrong wake-up message"); + msg1 = chMBFetch(&mb1, &msg2, TIME_INFINITE); + test_assert(11, msg1 == RDY_OK, "wrong wake-up message"); test_emit_token(msg2); } - test_assert_sequence(9, "ABCDE"); + test_assert_sequence(12, "ABCDE"); /* * Testing buffer circularity. */ msg1 = chMBPost(&mb1, 'B' + i, TIME_INFINITE); - test_assert(10, msg1 == RDY_OK, "wrong wake-up message"); + test_assert(13, msg1 == RDY_OK, "wrong wake-up message"); msg1 = chMBFetch(&mb1, &msg2, TIME_INFINITE); - test_assert(11, msg1 == RDY_OK, "wrong wake-up message"); - test_assert(12, mb1.mb_buffer == mb1.mb_wrptr, "write pointer not aligned to base"); - test_assert(13, mb1.mb_buffer == mb1.mb_rdptr, "read pointer not aligned to base"); + test_assert(14, msg1 == RDY_OK, "wrong wake-up message"); + test_assert(15, mb1.mb_buffer == mb1.mb_wrptr, "write pointer not aligned to base"); + test_assert(16, mb1.mb_buffer == mb1.mb_rdptr, "read pointer not aligned to base"); /* * Testing fetch timeout. */ msg1 = chMBFetch(&mb1, &msg2, 1); - test_assert(14, msg1 == RDY_TIMEOUT, "wrong wake-up message"); + test_assert(17, msg1 == RDY_TIMEOUT, "wrong wake-up message"); + msg1 = chMBFetchI(&mb1, &msg2); + test_assert(18, msg1 == RDY_TIMEOUT, "wrong wake-up message"); /* * Testing final conditions. */ - test_assert(15, chMBGetFreeCountI(&mb1) == MB_SIZE, "not empty"); - test_assert(16, chMBGetUsedCountI(&mb1) == 0, "still full"); - test_assert(17, mb1.mb_rdptr == mb1.mb_wrptr, "pointers not aligned"); + test_assert(19, chMBGetFreeCountI(&mb1) == MB_SIZE, "not empty"); + test_assert(20, chMBGetUsedCountI(&mb1) == 0, "still full"); + test_assert(21, mb1.mb_rdptr == mb1.mb_wrptr, "pointers not aligned"); + + /* + * Testing I-Class. + */ + msg1 = chMBPostI(&mb1, 'A'); + test_assert(22, msg1 == RDY_OK, "wrong wake-up message"); + msg1 = chMBPostI(&mb1, 'B'); + test_assert(23, msg1 == RDY_OK, "wrong wake-up message"); + msg1 = chMBPostI(&mb1, 'C'); + test_assert(24, msg1 == RDY_OK, "wrong wake-up message"); + msg1 = chMBPostI(&mb1, 'D'); + test_assert(25, msg1 == RDY_OK, "wrong wake-up message"); + msg1 = chMBPostI(&mb1, 'E'); + test_assert(26, msg1 == RDY_OK, "wrong wake-up message"); + test_assert(27, mb1.mb_rdptr == mb1.mb_wrptr, "pointers not aligned"); + for (i = 0; i < MB_SIZE; i++) { + msg1 = chMBFetchI(&mb1, &msg2); + test_assert(28, msg1 == RDY_OK, "wrong wake-up message"); + test_emit_token(msg2); + } + test_assert_sequence(29, "ABCDE"); + test_assert(30, mb1.mb_rdptr == mb1.mb_wrptr, "pointers not aligned"); + + msg1 = chMBPostAheadI(&mb1, 'E'); + test_assert(31, msg1 == RDY_OK, "wrong wake-up message"); + msg1 = chMBPostAheadI(&mb1, 'D'); + test_assert(32, msg1 == RDY_OK, "wrong wake-up message"); + msg1 = chMBPostAheadI(&mb1, 'C'); + test_assert(33, msg1 == RDY_OK, "wrong wake-up message"); + msg1 = chMBPostAheadI(&mb1, 'B'); + test_assert(34, msg1 == RDY_OK, "wrong wake-up message"); + msg1 = chMBPostAheadI(&mb1, 'A'); + test_assert(35, msg1 == RDY_OK, "wrong wake-up message"); + test_assert(36, mb1.mb_rdptr == mb1.mb_wrptr, "pointers not aligned"); + for (i = 0; i < MB_SIZE; i++) { + msg1 = chMBFetchI(&mb1, &msg2); + test_assert(37, msg1 == RDY_OK, "wrong wake-up message"); + test_emit_token(msg2); + } + test_assert_sequence(38, "ABCDE"); + test_assert(39, mb1.mb_rdptr == mb1.mb_wrptr, "pointers not aligned"); /* * Testing reset. @@ -156,10 +205,10 @@ static void mbox1_execute(void) { /* * Re-testing final conditions. */ - test_assert(18, chMBGetFreeCountI(&mb1) == MB_SIZE, "not empty"); - test_assert(19, chMBGetUsedCountI(&mb1) == 0, "still full"); - test_assert(20, mb1.mb_buffer == mb1.mb_wrptr, "write pointer not aligned to base"); - test_assert(21, mb1.mb_buffer == mb1.mb_rdptr, "read pointer not aligned to base"); + test_assert(40, chMBGetFreeCountI(&mb1) == MB_SIZE, "not empty"); + test_assert(41, chMBGetUsedCountI(&mb1) == 0, "still full"); + test_assert(42, mb1.mb_buffer == mb1.mb_wrptr, "write pointer not aligned to base"); + test_assert(43, mb1.mb_buffer == mb1.mb_rdptr, "read pointer not aligned to base"); } ROMCONST struct testcase testmbox1 = {