Make nightly build test works.
authorbatt <batt@38d2e660-2303-0410-9eaa-f027e97ec537>
Fri, 17 Apr 2009 14:00:57 +0000 (14:00 +0000)
committerbatt <batt@38d2e660-2303-0410-9eaa-f027e97ec537>
Fri, 17 Apr 2009 14:00:57 +0000 (14:00 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@2541 38d2e660-2303-0410-9eaa-f027e97ec537

26 files changed:
bertos/cpu/arm/hw/switch_arm.S
bertos/cpu/avr/hw/switch_avr.S
bertos/drv/dataflash.h
bertos/drv/dataflash_hwtest.c
bertos/drv/flash25_hwtest.c
bertos/drv/mcp41.c
bertos/drv/phase.c
bertos/drv/phase.h
bertos/drv/pwm.h
bertos/drv/pwm_hwtest.c
bertos/fs/battfs.c
bertos/hw/hw_phase.h
bertos/hw/hw_sipo.h
bertos/kern/kfile.h
bertos/kern/kfile_test.c
bertos/kern/monitor.h
bertos/kern/msg.h
bertos/kern/msg_test.c
bertos/kern/sem.h
bertos/kern/signal.h
bertos/kern/signal_test.c
examples/test/armtest.mk
examples/test/avrtest.mk
test/get_source_list.sh
test/nightly_test.sh
wizard/srctemplates/main.c

index 38ceff8e32d0aff19f3e548509508e9d789e0093..0e7d697205189a6deb043e3a208aa16270cbe16d 100644 (file)
@@ -1,2 +1,6 @@
-#warning This file is deprecated, use switch_ctx_arm.S
-#include "switch_ctx_arm.S"
+#include <cfg/cfg_arch.h>
+
+#if !(ARCH & ARCH_NIGHTTEST)
+       #warning This file is deprecated, use switch_ctx_arm.S
+       #include "switch_ctx_arm.S"
+#endif
index e6d0edfa4875ed6010e849b161b8b0dfddcfc16f..8de975fce005ae34c489be3d1bc6310921e41756 100644 (file)
@@ -1,2 +1,6 @@
-#warning This file is deprecated, use switch_ctx_avr.S
-#include "switch_ctx_avr.S"
+#include <cfg/cfg_arch.h>
+
+#if !(ARCH & ARCH_NIGHTTEST)
+       #warning This file is deprecated, use switch_ctx_avr.S
+       #include "switch_ctx_avr.S"
+#endif
index 4b4e994ddd862f6f8db990a24e559026eb6de810..dd805ad25d25759993fc1ea2549819404ab1c4f5 100644 (file)
@@ -197,7 +197,9 @@ bool dataflash_diskInit(struct BattFsSuper *d, DataFlash *fd, pgcnt_t *page_arra
  *
  * (see drv/datafalsh_test.c for more detail)
  */
-int dataflash_testSetUp(void);
+int dataflash_testSetup(void);
+/* For backward compatibility */
+#define dataflash_testSetUp() dataflash_testSetup()
 int dataflash_testRun(void);
 int dataflash_testTearDown(void);
 
index 8c46215008b3230b42432b5fc03a49792d698501..3edf8111ac94b2ce546726b1c851a0c0dcb7f66e 100644 (file)
@@ -108,9 +108,9 @@ static uint8_t save_buf[DATAFLASH_TEST_STR_LEN];
  * Setup all needed to test dataflash memory
  *
  */
-int dataflash_testSetUp(void)
+int dataflash_testSetup(void)
 {
-        kfile_testSetUp();
+        kfile_testSetup();
         LOG_INFO("KFILE setup..ok\n");
 
         LOG_INFO("Check if kernel is enable (if enable you should see the assert message.)\n");
@@ -173,7 +173,7 @@ int dataflash_testRun(void)
         LOG_INFO("Run KFILE test.\n");
 
         SILENT_ASSERT("bertos/drv/dataflash.c:405: Assertion failed: fd->fd.seek_pos + size <= fd->fd.size");
-        if (kfile_testRun(&dflash_fd.fd, test_buf, save_buf, sizeof(test_buf)) != EOF)
+        if (kfile_testRunGeneric(&dflash_fd.fd, test_buf, save_buf, sizeof(test_buf)) != EOF)
         {
                 LOG_INFO("KFILE test..ok\n");
         }
@@ -212,7 +212,7 @@ int main(void)
        proc_init();
     #endif
 
-       if (!dataflash_testSetUp())
+       if (!dataflash_testSetup())
        {
                        LOG_INFO("DATAFLASH setup..ok\n");
        }
index 814c1648b88b097fcebb53704a21db16c68985c7..1297feeaecf6fcbef82f698217321a243340e251 100644 (file)
@@ -75,7 +75,7 @@ bool flash25_test(KFile *channel)
         * Launche a kfile test interface.
         */
        kprintf("Kfile test start..\n");
-       if (!kfile_testRun(&fd.fd, test_buf, NULL, sizeof(test_buf)))
+       if (!kfile_testRunGeneric(&fd.fd, test_buf, NULL, sizeof(test_buf)))
                return false;
 
        return true;
index 02cff086bb2a9ca7dcd1e3b4358066f0f21a5f0e..bfa8fd4ebac7935544e66976c5c3b5001d7d9d6b 100644 (file)
@@ -57,7 +57,6 @@ void mcp41_setResistance(Mcp41Dev dev, mcp41_res_t res)
        kfile_putc(MCP41_WRITE_DATA, ch);
        kfile_putc(((MCP41_HW_MAX * (uint32_t)res)  + (MCP41_MAX / 2)) / MCP41_MAX, ch);
        kfile_flush(ch);
-       ser_drain(spi_ser);
 
        MCP41_OFF(dev);
 }
index d6c0c73e7345ef7b6a8ec585cff1e9b5efbf2824..3a400a369c1a023c1e39449ad34a62ed38bd8852 100644 (file)
@@ -50,9 +50,6 @@
 
 #include <math.h>
 
-#warning TODO:Generalize this moduele for all target supported.
-
-#if 0
 /** Array  of triacs */
 static Triac triacs[TRIAC_CNT];
 
@@ -183,7 +180,7 @@ void phase_init(void)
                triacs[dev].running = false;
                SET_TRIAC_DDR(dev);
                TRIAC_OFF(dev);
-               timer_set_event_softint(&triacs[dev].timer, (Hook)phase_softint, (void *)dev);
+               timer_setSoftint(&triacs[dev].timer, (Hook)phase_softint, (void *)dev);
        }
        IRQ_SAVE_DISABLE(flags);
 
@@ -192,5 +189,4 @@ void phase_init(void)
        DB(phase_initialized = true;)
        IRQ_RESTORE(flags);
 }
-#endif
 
index cf40b9c50d698998ce245341c2be5d99d0f4a8cc..52bc067d5149c41e9060562e7388f8cc2301b23b 100644 (file)
@@ -31,7 +31,7 @@
  *
  * \version $Id$
  *
- * \brief Phase control driver, to manage triac swicth.
+ * \brief Phase partialization driver with TRIACs.
  *
  * \version $Id$
  * \author Francesco Sacchi <batt@develer.com>
index 7db37d3831bfa38aa63560bf171c175275a04710..87ec1b4d492efd06baf92c671dc8755bcb35f812 100644 (file)
@@ -84,8 +84,10 @@ void pwm_init(void);
  *
  * See pwm_test.c for implemntation of these functions.
  */
-int pwm_testRun(void);
-int pwm_testSetUp(void);
+void pwm_testRun(void);
+int pwm_testSetup(void);
+/* For backward compatibility */
+#define pwm_testSetUp() pwm_testSetup()
 int pwm_testTearDown(void);
 
 #endif /* DRV_PWM_H */
index f66fe660e558cb4f9958d91553709e31870bb655..12a941ddb4377fbc025595853affc4001969da33 100644 (file)
@@ -118,7 +118,7 @@ static PwmTest pwm_test_cfg[PWM_CNT] =
  * Setup all needed to test PWM on AT91
  *
  */
-int pwm_testSetUp(void)
+int pwm_testSetup(void)
 {
        LOG_INFO("Init pwm..");
        pwm_init();
@@ -132,12 +132,12 @@ int pwm_testSetUp(void)
  * Test suit for genation of pwm waveform.
  *
  */
-int pwm_testRun(void)
+void NORETURN pwm_testRun(void)
 {
         pwm_duty_t duty = 0;
         int delay = 0;
 
-        pwm_testSetUp();
+        pwm_testSetup();
 
         LOG_INFO("\n\n===== BeRTOS PWM test =====\n\n");
 
@@ -203,8 +203,6 @@ int pwm_testRun(void)
                 }
                 delay++;
         }
-
-               return 0;
 }
 
 /**
@@ -226,14 +224,14 @@ int pwm_testTearDown(void)
 #if 0
 int main(void)
 {
-        IRQ_ENABLE;
+       IRQ_ENABLE;
        kdbg_init();
 
        pwm_testRun();
 
-        for(;;)
-        {
-        }
+       for(;;)
+       {
+       }
 
 }
 #endif
index 6fd6ec8215ae244af81149efed55d8cd9c7fa55f..4f4d48920e659051212f0dbc32fcba8da5e095f1 100644 (file)
@@ -32,7 +32,7 @@
  *
  * \brief BattFS: a filesystem for embedded platforms (implementation).
  *
- * \version $Id:$
+ * \version $Id$
  *
  * \author Francesco Sacchi <batt@develer.com>
  *
index 62228ceee857d74a16a52be25221d43380775de9..170e3da9004bf62530241cd0631ddbc1c93ff70f 100644 (file)
@@ -46,6 +46,9 @@
 
 #warning TODO:This is an example implementation, you must implement it!
 
+#define TRIAC_MAX_DUTY  100
+#define TRIAC_MAX_POWER 100
+
 #define PHASE_HW_INIT  do { /* Implement me! */ }while (0)
 
 INLINE void TRIAC_OFF(TriacDev i)
@@ -65,5 +68,16 @@ INLINE void TRIAC_ON(TriacDev i)
                (void)i;
 }
 
+INLINE void SET_TRIAC_DDR(TriacDev i)
+{
+               /* Implement me! */
+
+               //Only for test remove when implement this function
+               (void)i;
+}
+
+void zerocross_isr(void);
+#define DEFINE_ZEROCROSS_ISR() void zerocross_isr(void)
+
 
 #endif /* HW_PHASE_H */
index 82dce48828f18e1b55c428b5c1224fdeb66afad4..ad02c57e0ed75cd139b17d9c112fce17405fd4bc 100644 (file)
@@ -50,8 +50,8 @@
  * Define the macros needed to set the serial input bit of SIPO device
  * low or high.
  */
-#define SIPO_SI_HIGH()/* Implement me! */
-#define SIPO_SI_LOW() /* Implement me! */
+#define SIPO_SI_HIGH() do { /* Implement me! */ } while (0)
+#define SIPO_SI_LOW()  do { /* Implement me! */ } while (0)
 
 /**
  * Drive pin to load the bit, presented in serial-in pin,
index 5d3ebc677a52cc2ada60d446d72d12f603fb4d4a..9f1dd28360efeb064744d3ea556fa0f4fc53534b 100644 (file)
@@ -279,6 +279,7 @@ INLINE void kfile_clearerr(struct KFile *fd)
  * Kfile test function.
  */
 int kfile_testSetup(void);
+int kfile_testRun(void);
 int kfile_testRunGeneric(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t size);
 int kfile_testTearDown(void);
 
index fc760cb5373a67865100c2b857e898f9489919ed..52afa98a60ab0fd948c358bfec34bc32f2c0b8b9 100644 (file)
@@ -96,7 +96,7 @@ static size_t fake_read(KFile *fd, void *buf, size_t size)
 
 static size_t fake_write(KFile *fd, const void *buf, size_t size)
 {
-       fake_t *src = (fake_t *)buf;
+       const fake_t *src = (const fake_t *)buf;
        size_t wr_len;
 
        wr_len = MIN((kfile_off_t)size, fd->size - fd->seek_pos);
@@ -109,14 +109,14 @@ static size_t fake_write(KFile *fd, const void *buf, size_t size)
        return wr_len;
 }
 
-int fake_flush(KFile *fd)
+static int fake_flush(KFile *fd)
 {
        (void)fd;
 
        return 0;
 }
 
-void fake_kfileInit(void)
+static void fake_kfileInit(void)
 {
        // Setup data flash programming functions.
        fd.reopen = kfile_genericReopen;
@@ -136,12 +136,11 @@ void fake_kfileInit(void)
  */
 static void init_testBuf(void)
 {
-       #include <stdlib.h>
 
        kprintf("Init fake buffer..\n");
        for (int i = 0; i < BUF_TEST_LEN; i++)
        {
-               test_disk[i] = random();
+               test_disk[i] = i;
                kprintf("%d ", test_disk[i]);
        }
        kprintf("\nend\n");
index ec297b783f47be3864f1593bbaeb8cbde65363f2..e2a4742ab4e030721ec9df585062117a7d08cf8b 100644 (file)
@@ -48,8 +48,6 @@
 
 #include <cpu/types.h>
 
-#if CONFIG_KERN_MONITOR
-
 /**
  * Start the kernel monitor. It is a special process which checks every second the stacks of the
  * running processes trying to detect stack overflows.
@@ -77,6 +75,4 @@ size_t monitor_checkStack(cpu_stack_t *stack_base, size_t stack_size);
 /** Print a report of the stack status through kdebug */
 void monitor_report(void);
 
-
-#endif /* CONFIG_KERN_MONITOR */
 #endif /* KERN_MONITOR_H */
index 05bbd7ef18c174782f6f368b3c3f7e2f595179cc..acd99c599edb0deb75893a0bb208bfd943511df7 100644 (file)
@@ -283,4 +283,8 @@ INLINE void msg_reply(Msg *msg)
        msg_put(msg->replyPort, msg);
 }
 
+int msg_testRun(void);
+int msg_testSetup(void);
+int msg_testTearDown(void);
+
 #endif /* KERN_MSG_H */
index 638eeddd2ede6aea9cf6c1473144bb7e982591a1..2cc34eeed467fe365a4b11c8a4139841ac83d75f 100644 (file)
 
 #include <kern/msg.h>
 #include <kern/proc.h>
-#include <kern/irq.h>
+#include <kern/signal.h>
+
+#include <mware/event.h>
 
 #include <drv/timer.h>
 
+/*
+ * In the nightly build test, signals are disables, so this
+ * code won't compile.
+ * Since this code is used when we run "make check" it will be
+ * compiled and therefor tested there.
+ */
+#if CONFIG_KERN_SIGNALS
+
+
 // Global settings for the test.
 #define MAX_GLOBAL_COUNT            11040
 #define TEST_TIME_OUT_MS               10
 /*
  * These macros generate the code needed to create the test process functions.
  */
-#define RECV_PROC(num, sig) static void receiver_proc##num(void) \
-    { \
-        TestMsg *rec_msg; \
-               for (;;) \
-        { \
-            sig_wait(sig); \
-            kprintf("Proc[%d]..get message\n", num); \
-            rec_msg = containerof(msg_get(&test_port##num), TestMsg, msg); \
-                       timer_delay(rec_msg->delay); \
-            rec_msg->result += rec_msg->val;  \
-            kprintf("Proc[%d]..process message val[%d],delay[%d],res[%d]\n", num, rec_msg->val, rec_msg->delay, rec_msg->result); \
-            msg_reply(&rec_msg->msg); \
-            kprintf("Proc[%d] reply\n", num); \
-        } \
-    }
+#define RECV_PROC(num, sig) \
+static void receiver_proc##num(void) \
+{ \
+       TestMsg *rec_msg; \
+       for (;;) \
+       { \
+               sig_wait(sig); \
+               kprintf("Proc[%d]..get message\n", num); \
+               rec_msg = containerof(msg_get(&test_port##num), TestMsg, msg); \
+               timer_delay(rec_msg->delay); \
+               rec_msg->result += rec_msg->val; \
+               kprintf("Proc[%d]..process message val[%d],delay[%d],res[%d]\n", num, rec_msg->val, rec_msg->delay, rec_msg->result); \
+               msg_reply(&rec_msg->msg); \
+               kprintf("Proc[%d] reply\n", num); \
+       } \
+}
 
 #define SEND_MSG(num) \
        do { \
 
 #define RECV_STACK(num) static cpu_stack_t receiver_stack##num[CONFIG_KERN_MINSTACKSIZE / sizeof(cpu_stack_t)]
 #define RECV_INIT_PROC(num) proc_new(receiver_proc##num, NULL, sizeof(receiver_stack##num), receiver_stack##num)
-#define RECV_INIT_MSG(num, proc,sig) msg_initPort(&test_port##num, event_createSignal(proc, sig))
+#define RECV_INIT_MSG(num, proc, sig) msg_initPort(&test_port##num, event_createSignal(proc, sig))
 
 // A test message with the parameters and a result.
 typedef struct
@@ -268,3 +280,5 @@ int msg_testTearDown(void)
 }
 
 TEST_MAIN(msg);
+
+#endif /* CONFIG_KERN_SIGNALS */
index 71c6273a96fb4cf9fe2e3d8d40c930717cde9a53..1e3ef205642ca0e0c085724d7ada2d335fa1f8f3 100644 (file)
@@ -71,4 +71,8 @@ void sem_obtain(struct Semaphore *s);
 void sem_release(struct Semaphore *s);
 /* \} */
 
+int sem_testRun(void);
+int sem_testSetup(void);
+int sem_testTearDown(void);
+
 #endif /* KERN_SEM_H */
index de3dc5ec7e80385b1e25f8860c36dc5284a5051d..1118af8a54ee7b9d2511f084c758a1889dc0afeb 100644 (file)
@@ -56,6 +56,9 @@ void sig_signal(struct Process *proc, sigmask_t sig);
 sigmask_t sig_wait(sigmask_t sigs);
 sigmask_t sig_waitTimeout(sigmask_t sigs, ticks_t timeout);
 
+int signal_testRun(void);
+int signal_testSetup(void);
+int signal_testTearDown(void);
 
 /**
  * \name Signal definitions
index ed799bcffc24fe8313b127961d1efa29a42bf203..f2a4acfc62d22fd098393fa98322b4cd24b97103 100644 (file)
@@ -75,7 +75,8 @@ sigmask_t sig_to_slave;
 /*
  * These macros generate the code needed to create the test process functions.
  */
-#define PROC_TEST_SLAVE(index, signal) static void proc_test##index(void) \
+#define PROC_TEST_SLAVE(index, signal) \
+static void NORETURN proc_test##index(void) \
 { \
        for(;;) \
        { \
index 9d2bc1aa8cdfce589bd55848d0b89fd6bb703585..5c778376af06a8cf24a8bf895c8893aec39db934 100644 (file)
@@ -25,7 +25,7 @@ armtest_CPPASRC = $(arm_ASRC)
 armtest_PREFIX = arm-none-eabi-
 
 armtest_CPPAFLAGS = -O0 -g -gdwarf-2 -g -gen-debug
-armtest_CPPFLAGS = -O0 -D'ARCH=ARCH_NIGHTTEST' -D__ARM_AT91SAM7S256__ -g3 -gdwarf-2 -fverbose-asm -Iexamples/test -Ibertos/cpu/arm
+armtest_CPPFLAGS = -O0 -D'ARCH=ARCH_NIGHTTEST' -D__ARM_AT91SAM7S256__ -D'CPU_FREQ=(48023000UL)' -g3 -gdwarf-2 -fverbose-asm -Iexamples/test -Ibertos/cpu/arm
 armtest_LDFLAGS = -nostartfiles -T bertos/cpu/arm/scripts/at91sam7_256_rom.ld -Wl,--no-warn-mismatch
 
 armtest_CPU = arm7tdmi
index c2d3adb375de56a8f4fcf12ea3b87e8444c77174..5d7883d34178bda489deb33a12ea797505f52bfa 100644 (file)
@@ -28,5 +28,5 @@ avrtest_CPPASRC = $(avr_ASRC)
 avrtest_PCSRC += bertos/mware/formatwr.c
 
 avrtest_PREFIX = avr-
-avrtest_CPPFLAGS = -D'ARCH=ARCH_NIGHTTEST' -Iexamples/test -Ibertos/cpu/avr
+avrtest_CPPFLAGS = -D'ARCH=ARCH_NIGHTTEST' -D'CPU_FREQ=(12288000UL)' -Iexamples/test -Ibertos/cpu/avr
 avrtest_CFLAGS = -Os -mcall-prologues -fno-strict-aliasing
index 8e9bcd6031dbbfed481bca127a33951ef17ac2cd..c9795979f4e44fe105fe360757823bd1c6a21003 100755 (executable)
@@ -38,6 +38,7 @@ CPU_DIR="${BERTOS_DIR}/cpu"
 #Directory to exclude
 OS_DIR="${BERTOS_DIR}/os"
 EMUL_DIR="${BERTOS_DIR}/emul"
+WIZARD_DIR="./wizard"
 APP_DIR="./examples"
 
 if [ $# \< 2 ] ; then
@@ -48,7 +49,7 @@ if [ $# \< 2 ] ; then
 fi
 CPU_TARGET=$1
 #Create a list of source file without a cpu specific source
-GEN_SRC=`find . \( -name \.svn -prune -o -path $COPY_DIR -prune -o -path $CPU_DIR -prune -o -path $APP_DIR  -prune -o -path $OS_DIR -prune -o -path $EMUL_DIR -prune \) -o -name *.${2} -print | xargs`
+GEN_SRC=`find . \( -name \.svn -prune -o -path $COPY_DIR -prune -o -path $CPU_DIR -prune -o -path $APP_DIR  -prune -o -path $OS_DIR -prune -o -path $WIZARD_DIR -prune -o -path $EMUL_DIR -prune \) -o -name *.${2} -print | xargs`
 
 #Select c and asm sources for selected cpu target
 TRG_SRC=`find ${CPU_DIR}/$CPU_TARGET -name \.svn -prune -o -name *.${2} -print | xargs`
index eadccd3cf24c142f7bf8fdc6c89a1114ec8d889f..d7916d12a8ad9719b13a272efa54fbb4ad039023 100755 (executable)
@@ -39,7 +39,7 @@ OPTS=1
 if [ $# = 1 ] ; then
        if [ $1 = "-h" ] ; then
                printf "Nightly test help.\n"
-               printf "\t--no-silent disable the silent of the TODO/FIXME warning message.\n"
+               printf "\t--no-silent disable the silent of the TODO/FIXME warning messages.\n"
                exit 1
        elif [ $1 = "--no-silent" ] ; then
                OPTS=0
@@ -49,14 +49,14 @@ fi
 if [ $OPTS = 1 ] ; then
 #Copy BeRTOS sources
 printf "Starting nightlytest..\n"
-       printf "Silent mode enable, removing the TODO/FIXME message warning.\n"
+       printf "Silent mode enable, removing the TODO/FIXME message warnings.\n"
        cp -R $BERTOS_DIR $BERTOS_DIR_BAK || exit 1
 
        #Strip away TODOs and FIXME
        find $BERTOS_DIR -name "*.[ch]" | xargs perl -p -i -e 's/^\s*#warning\s*(TODO|FIXME).*//g;'
 fi
 
-#Cpu target that we want to test
+#Cpu targets that we want to test
 TRG="avr arm"
 
 for i in $TRG ;
index 288b7f258234eaec69b02d4e6fa4d61fea3b74f8..0a2fa1ab521d1fa3b78727f5ef1cfa9c5276522b 100644 (file)
@@ -3,4 +3,5 @@
 int main(void)
 {
     return 0;
-}
\ No newline at end of file
+}
+