Re-enable invalid-operation traps here and fix the one broken test.
authorTaylor R Campbell <campbell@mumble.net>
Wed, 28 Nov 2018 05:33:23 +0000 (05:33 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Wed, 28 Nov 2018 05:33:23 +0000 (05:33 +0000)
Should maybe add a flo:safe-zero?, or decide that flo:zero? is the
quiet version and (flo:= x 0.) is the signalling one.

tests/runtime/test-flonum.scm

index ef380e254d383454f163136c00a9310946bb9500..4fb01afe228f6320ef3aa5664ea515420a082904 100644 (file)
@@ -41,12 +41,10 @@ USA.
       (f)))
 
 (define (yes-traps f)
-  #;
   (if (flo:have-trap-enable/disable?)
-      (flo:with-trapped-exceptions (flo:trappable-exceptions) f)
-      (f))
-  ;; XXX Temporary workaround for my setup.
-  (no-traps f))
+      ;; XXX Should enable all traps.
+      (flo:with-trapped-exceptions (flo:exception:invalid-operation) f)
+      (f)))
 
 (define subnormal+ flo:smallest-positive-subnormal)
 (define subnormal- (no-traps (lambda () (- subnormal+))))
@@ -104,10 +102,15 @@ USA.
     (,subnormal+ #f)
     (+1. #f)
     (+inf.0 #f)
-    (+nan.0 #f))
+    ;; (+nan.0 #f)      ; exception
+    )
   (lambda (x v)
     (assert-eqv (yes-traps (lambda () (flo:zero? x))) v)))
 
+(define-test 'nan-is-not-zero
+  (lambda ()
+    (assert-false (no-traps (lambda () (flo:zero? (flo:nan.0)))))))
+
 (define-enumerated-test 'subnormal?
   `((-inf.0 #f)
     (-1. #f)