Subversion Repositories HelenOS

Rev

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

Rev 2020 Rev 2027
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
 
72
/* Data and methods for 'help' command. */
76
/* Data and methods for 'help' command. */
73
static int cmd_help(cmd_arg_t *argv);
77
static int cmd_help(cmd_arg_t *argv);
74
static cmd_info_t help_info = {
78
static cmd_info_t help_info = {
75
    .name = "help",
79
    .name = "help",
76
    .description = "List of supported commands.",
80
    .description = "List of supported commands.",
Line 856... Line 860...
856
   
860
   
857
    printf("*\t\tRun all safe tests\n");
861
    printf("*\t\tRun all safe tests\n");
858
    return 1;
862
    return 1;
859
}
863
}
860
 
864
 
-
 
865
static bool run_test(const test_t * test)
-
 
866
{
-
 
867
    printf("%s\t\t%s\n", test->name, test->desc);
-
 
868
#ifdef CONFIG_BENCH
-
 
869
    uint64_t t0 = get_cycle();
-
 
870
#endif
-
 
871
    char * ret = test->entry();
-
 
872
#ifdef CONFIG_BENCH
-
 
873
    uint64_t dt = get_cycle() - t0;
-
 
874
    printf("Time: %llu cycles\n", dt);
-
 
875
#endif
-
 
876
   
-
 
877
    if (ret == NULL) {
-
 
878
        printf("Test passed\n");
-
 
879
        return true;
-
 
880
    }
-
 
881
 
-
 
882
    printf("%s\n", ret);
-
 
883
    return false;
-
 
884
}
-
 
885
 
861
/** Command for returning kernel tests
886
/** Command for returning kernel tests
862
 *
887
 *
863
 * @param argv Argument vector.
888
 * @param argv Argument vector.
864
 *
889
 *
865
 * return Always 1.
890
 * return Always 1.
Line 869... Line 894...
869
    test_t *test;
894
    test_t *test;
870
   
895
   
871
    if (strcmp(argv->buffer, "*") == 0) {
896
    if (strcmp(argv->buffer, "*") == 0) {
872
        for (test = tests; test->name != NULL; test++) {
897
        for (test = tests; test->name != NULL; test++) {
873
            if (test->safe) {
898
            if (test->safe) {
-
 
899
                printf("\n");
874
                printf("\n%s\t\t%s\n\n", test->name, test->desc);
900
                if (!run_test(test))
875
                test->entry();
901
                    break;
876
            }
902
            }
877
        }
903
        }
878
    } else {
904
    } else {
879
        bool fnd = false;
905
        bool fnd = false;
880
       
906
       
881
        for (test = tests; test->name != NULL; test++) {
907
        for (test = tests; test->name != NULL; test++) {
882
            if (strcmp(test->name, argv->buffer) == 0) {
908
            if (strcmp(test->name, argv->buffer) == 0) {
883
                fnd = true;
909
                fnd = true;
884
                test->entry();
910
                run_test(test);
885
                break;
911
                break;
886
            }
912
            }
887
        }
913
        }
888
       
914
       
889
        if (!fnd)
915
        if (!fnd)
890
            printf("Unknown test.\n");
916
            printf("Unknown test\n");
891
    }
917
    }
892
   
918
   
893
    return 1;
919
    return 1;
894
}
920
}
895
#endif
921
#endif