Rev 2039 | Rev 2050 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2039 | Rev 2042 | ||
---|---|---|---|
Line 54... | Line 54... | ||
54 | #include <debug.h> |
54 | #include <debug.h> |
55 | #include <symtab.h> |
55 | #include <symtab.h> |
56 | #include <cpu.h> |
56 | #include <cpu.h> |
57 | #include <mm/tlb.h> |
57 | #include <mm/tlb.h> |
58 | #include <arch/mm/tlb.h> |
58 | #include <arch/mm/tlb.h> |
59 | #include <mm/as.h> |
- | |
60 | #include <mm/frame.h> |
59 | #include <mm/frame.h> |
61 | #include <main/version.h> |
60 | #include <main/version.h> |
62 | #include <mm/slab.h> |
61 | #include <mm/slab.h> |
63 | #include <proc/scheduler.h> |
62 | #include <proc/scheduler.h> |
64 | #include <proc/thread.h> |
63 | #include <proc/thread.h> |
Line 857... | Line 856... | ||
857 | 856 | ||
858 | printf("*\t\tRun all safe tests\n"); |
857 | printf("*\t\tRun all safe tests\n"); |
859 | return 1; |
858 | return 1; |
860 | } |
859 | } |
861 | 860 | ||
862 | static void test_wrapper(void *arg) |
861 | static bool run_test(const test_t *test) |
863 | { |
862 | { |
864 | test_t *test = (test_t *) arg; |
863 | printf("%s\t\t%s\n", test->name, test->desc); |
865 | 864 | ||
866 | /* Update and read thread accounting |
865 | /* Update and read thread accounting |
867 | for benchmarking */ |
866 | for benchmarking */ |
868 | ipl_t ipl = interrupts_disable(); |
867 | ipl_t ipl = interrupts_disable(); |
869 | spinlock_lock(&TASK->lock); |
868 | spinlock_lock(&TASK->lock); |
Line 883... | Line 882... | ||
883 | 882 | ||
884 | printf("Time: %llu cycles\n", dt); |
883 | printf("Time: %llu cycles\n", dt); |
885 | 884 | ||
886 | if (ret == NULL) { |
885 | if (ret == NULL) { |
887 | printf("Test passed\n"); |
886 | printf("Test passed\n"); |
888 | // return true; |
887 | return true; |
889 | return; |
- | |
890 | } |
888 | } |
891 | 889 | ||
892 | printf("%s\n", ret); |
890 | printf("%s\n", ret); |
893 | // return false; |
- | |
894 | } |
- | |
895 | - | ||
896 | static bool run_test(const test_t *test) |
- | |
897 | { |
- | |
898 | printf("%s\t\t%s\n", test->name, test->desc); |
- | |
899 | - | ||
900 | /* Create separate task and thread |
- | |
901 | for the test */ |
- | |
902 | task_t *ta = task_create(AS_KERNEL, "test"); |
- | |
903 | if (ta == NULL) { |
- | |
904 | printf("Unable to create test task\n"); |
- | |
905 | return false; |
891 | return false; |
906 | } |
- | |
907 | - | ||
908 | thread_t *t = thread_create(test_wrapper, (void *) test, ta, 0, "test_main"); |
- | |
909 | if (t == NULL) { |
- | |
910 | printf("Unable to create test main thread\n"); |
- | |
911 | task_destroy(ta); |
- | |
912 | return false; |
- | |
913 | } |
- | |
914 | - | ||
915 | /* Run the test */ |
- | |
916 | thread_ready(t); |
- | |
917 | thread_join(t); |
- | |
918 | thread_detach(t); |
- | |
919 | - | ||
920 | return true; |
- | |
921 | } |
892 | } |
922 | 893 | ||
923 | /** Command for returning kernel tests |
894 | /** Command for returning kernel tests |
924 | * |
895 | * |
925 | * @param argv Argument vector. |
896 | * @param argv Argument vector. |