Expect some failures to signal errors on fp exception traps on arm64.
authorTaylor R Campbell <campbell@mumble.net>
Thu, 30 May 2019 05:29:56 +0000 (05:29 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Sun, 30 Jun 2019 14:07:49 +0000 (14:07 +0000)
tests/runtime/test-arith.scm

index 4c1763f6495d574721df326f143d7bb818509d77..3f9cc35c6956944afc5d8cb021eb47fa10970a48 100644 (file)
@@ -77,6 +77,11 @@ USA.
 (define assert-inexact
   (predicate-assertion inexact? "inexact"))
 
+(define (assert-flo-error procedure)
+  (if (flo:have-trap-enable/disable?)
+      (assert-error procedure)
+      (expect-failure (lambda () (assert-error procedure)))))
+
 (define (assert-no-except/yes-traps procedure)
   (assert-eqv
    (flo:preserving-environment
@@ -836,7 +841,7 @@ USA.
     (let ((x (identity-procedure (flo:snan 4321)))
           (x* (flo:qnan 4321)))
       (assert-eqv-nan (no-traps (lambda () (sqrt x))) x*)
-      (assert-error (lambda () (yes-traps (lambda () (sqrt x)))))
+      (assert-flo-error (lambda () (yes-traps (lambda () (sqrt x)))))
       (assert-only-except/no-traps (flo:exception:invalid-operation)
                                    (lambda () (sqrt x)))
       (let ((x+0i (make-rectangular x +0.))
@@ -847,10 +852,10 @@ USA.
         (assert-eqv-nan (no-traps (lambda () (real-part (sqrt x-0i)))) x*)
         (assert-eqv-nan (no-traps (lambda () (real-part (sqrt xi+0)))) x*)
         (assert-eqv-nan (no-traps (lambda () (real-part (sqrt xi-0)))) x*)
-        (assert-error (lambda () (yes-traps (lambda () (sqrt x+0i)))))
-        (assert-error (lambda () (yes-traps (lambda () (sqrt x-0i)))))
-        (assert-error (lambda () (yes-traps (lambda () (sqrt xi+0)))))
-        (assert-error (lambda () (yes-traps (lambda () (sqrt xi-0)))))
+        (assert-flo-error (lambda () (yes-traps (lambda () (sqrt x+0i)))))
+        (assert-flo-error (lambda () (yes-traps (lambda () (sqrt x-0i)))))
+        (assert-flo-error (lambda () (yes-traps (lambda () (sqrt xi+0)))))
+        (assert-flo-error (lambda () (yes-traps (lambda () (sqrt xi-0)))))
         (assert-only-except/no-traps (flo:exception:invalid-operation)
                                      (lambda () (sqrt x+0i)))
         (assert-only-except/no-traps (flo:exception:invalid-operation)
@@ -1031,7 +1036,7 @@ USA.
       (lambda ()
         (if (infinite? y)
             (begin
-              (assert-error
+              (assert-flo-error
                (lambda ()
                  (yes-traps (lambda () (exact->inexact x)))))
               (assert-except/no-traps (flo:exception:overflow)