]> gitweb.factorcode.org Git - factor.git/blob - core/classes/error/error-tests.factor
Switch to https urls
[factor.git] / core / classes / error / error-tests.factor
1 ! Copyright (C) 2015 Doug Coleman.
2 ! See https://factorcode.org/license.txt for BSD license.
3 USING: accessors classes classes.error classes.tuple
4 compiler.units effects eval generic kernel tools.test words ;
5 IN: classes.error.tests
6
7 ! Test error classes
8 ERROR: error-class-test a b c ;
9
10 { "( a b c -- * )" } [ \ error-class-test stack-effect effect>string ] unit-test
11 { f } [ \ error-class-test "inline" word-prop ] unit-test
12
13 [ "IN: classes.error.tests ERROR: error-x ; : error-x 3 ;" eval( -- ) ]
14 [ error>> error>> redefine-error? ] must-fail-with
15
16 DEFER: error-y
17
18 { } [ [ \ error-y dup class? [ forget-class ] [ drop ] if ] with-compilation-unit ] unit-test
19
20 { } [ "IN: classes.error.tests GENERIC: error-y ( a -- b )" eval( -- ) ] unit-test
21
22 { f } [ \ error-y tuple-class? ] unit-test
23
24 { f } [ \ error-y error-class? ] unit-test
25
26 { t } [ \ error-y generic? ] unit-test
27
28 { } [ "IN: classes.error.tests ERROR: error-y ;" eval( -- ) ] unit-test
29
30 { t } [ \ error-y tuple-class? ] unit-test
31
32 { t } [ \ error-y error-class? ] unit-test
33
34 { f } [ \ error-y generic? ] unit-test
35
36 ERROR: base-error x y ;
37 ERROR: derived-error < base-error z ;
38
39 { ( x y z -- * ) } [ \ derived-error stack-effect ] unit-test