Subversion Repositories HelenOS

Rev

Rev 2027 | Rev 2039 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2027 Rev 2030
Line 67... Line 67...
67
 
67
 
68
#ifdef CONFIG_TEST
68
#ifdef CONFIG_TEST
69
#include <test.h>
69
#include <test.h>
70
#endif
70
#endif
71
 
71
 
72
#ifdef CONFIG_BENCH
-
 
73
#include <arch/cycle.h>
-
 
74
#endif
-
 
75
 
-
 
76
/* Data and methods for 'help' command. */
72
/* Data and methods for 'help' command. */
77
static int cmd_help(cmd_arg_t *argv);
73
static int cmd_help(cmd_arg_t *argv);
78
static cmd_info_t help_info = {
74
static cmd_info_t help_info = {
79
    .name = "help",
75
    .name = "help",
80
    .description = "List of supported commands.",
76
    .description = "List of supported commands.",
Line 863... Line 859...
863
}
859
}
864
 
860
 
865
static bool run_test(const test_t * test)
861
static bool run_test(const test_t * test)
866
{
862
{
867
    printf("%s\t\t%s\n", test->name, test->desc);
863
    printf("%s\t\t%s\n", test->name, test->desc);
-
 
864
   
-
 
865
    /* Update and read thread accounting
868
#ifdef CONFIG_BENCH
866
       for benchmarking */
-
 
867
    ipl_t ipl = interrupts_disable();
-
 
868
    spinlock_lock(&THREAD->lock);
-
 
869
    thread_update_accounting();
869
    uint64_t t0 = get_cycle();
870
    uint64_t t0 = THREAD->cycles;
-
 
871
    spinlock_unlock(&THREAD->lock);
-
 
872
    interrupts_restore(ipl);
870
#endif
873
   
-
 
874
    /* Execute the test */
871
    char * ret = test->entry();
875
    char * ret = test->entry();
-
 
876
   
-
 
877
    /* Update and read thread accounting */
872
#ifdef CONFIG_BENCH
878
    ipl = interrupts_disable();
-
 
879
    spinlock_lock(&THREAD->lock);
-
 
880
    thread_update_accounting();
873
    uint64_t dt = get_cycle() - t0;
881
    uint64_t dt = THREAD->cycles - t0;
-
 
882
    spinlock_unlock(&THREAD->lock);
-
 
883
    interrupts_restore(ipl);
-
 
884
   
874
    printf("Time: %llu cycles\n", dt);
885
    printf("Time: %llu cycles\n", dt);
875
#endif
-
 
876
   
886
   
877
    if (ret == NULL) {
887
    if (ret == NULL) {
878
        printf("Test passed\n");
888
        printf("Test passed\n");
879
        return true;
889
        return true;
880
    }
890
    }