swapforth

Форк
0
/
errorreport.fth 
74 строки · 2.6 Кб
1
\ To collect and report on the number of errors resulting from running the 
2
\ ANS Forth and Forth 2012 test programs
3

4
\ This program was written by Gerry Jackson in 2015, and is in the public
5
\ domain - it can be distributed and/or modified in any way but please
6
\ retain this notice.
7

8
\ This program is distributed in the hope that it will be useful,
9
\ but WITHOUT ANY WARRANTY; without even the implied warranty of
10
\ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11

12
\ ------------------------------------------------------------------------------
13
\ This file is INCLUDED after Core tests are complete and only uses Core words
14
\ already tested. The purpose of this file is to count errors in test results
15
\ and present them as a summary at the end of the tests.
16

17
DECIMAL
18

19
VARIABLE CORE-ERRORS        VARIABLE CORE-EXT-ERRORS
20
VARIABLE DOUBLE-ERRORS      VARIABLE EXCEPTION-ERRORS
21
VARIABLE FACILITY-ERRORS    VARIABLE FILE-ERRORS
22
VARIABLE LOCALS-ERRORS      VARIABLE MEMORY-ERRORS
23
VARIABLE SEARCHORDER-ERRORS VARIABLE STRING-ERRORS
24
VARIABLE TOOLS-ERRORS       VARIABLE PREV-ERRORS
25

26
: INIT-ERRORS  ( -- )
27
   #ERRORS @
28
   DUP CORE-ERRORS ! PREV-ERRORS !    \ #ERRORS is in file tester.fr
29
   0 CORE-EXT-ERRORS !   0 DOUBLE-ERRORS !       0 EXCEPTION-ERRORS !
30
   0 FACILITY-ERRORS !   0 FILE-ERRORS !         0 LOCALS-ERRORS !
31
   0 MEMORY-ERRORS !     0 SEARCHORDER-ERRORS !  0 STRING-ERRORS !
32
   0 TOOLS-ERRORS !
33
;
34

35
INIT-ERRORS
36

37
\ SET-ERROR-COUNT called at the end of each test file with address of its
38
\ own error variable
39
: SET-ERROR-COUNT  ( ad -- )
40
   #ERRORS @ PREV-ERRORS @ - SWAP !
41
   #ERRORS @ PREV-ERRORS !
42
;
43

44
\ Report summary of errors
45

46
25 CONSTANT MARGIN
47

48
: SHOW-ERROR-COUNT  ( ad caddr u -- )
49
   CR SWAP OVER TYPE MARGIN - ABS
50
   >R @ ?DUP IF R> .R ELSE R> 1- SPACES [CHAR] - EMIT THEN
51
;
52

53
: HLINE  ( -- )  CR ." ---------------------------"  ;
54

55
: REPORT-ERRORS
56
   HLINE
57
   CR 8 SPACES ." Error Report"
58
   CR ." Word Set" 13 SPACES ." Errors"
59
   HLINE
60
   CORE-ERRORS S" Core" SHOW-ERROR-COUNT
61
   CORE-EXT-ERRORS S" Core extension" SHOW-ERROR-COUNT
62
   DOUBLE-ERRORS S" Double number" SHOW-ERROR-COUNT
63
   EXCEPTION-ERRORS S" Exception" SHOW-ERROR-COUNT
64
   FACILITY-ERRORS S" Facility" SHOW-ERROR-COUNT
65
   FILE-ERRORS S" File-access" SHOW-ERROR-COUNT
66
   LOCALS-ERRORS S" Locals"    SHOW-ERROR-COUNT
67
   MEMORY-ERRORS S" Memory-allocation" SHOW-ERROR-COUNT
68
   TOOLS-ERRORS S" Programming-tools" SHOW-ERROR-COUNT
69
   SEARCHORDER-ERRORS S" Search-order" SHOW-ERROR-COUNT
70
   STRING-ERRORS S" String" SHOW-ERROR-COUNT
71
   HLINE
72
   #ERRORS S" Total" SHOW-ERROR-COUNT
73
   HLINE CR CR
74
;

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.