1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-29 19:30:36 +02:00
guile/test-suite/tests/00-initial-env.test
Ludovic Courtès 0c57673a11 Add optimized tagged integer addition/subtractions for x86_64.
This results in a 17% improvement in the execution time of the "+" and
"-" benchmarks for fixnums.

* libguile/vm-i-scheme.c (ASM_ADD, ASM_SUB)[defined __x86_64__ &&
  SCM_GNUC_PREREQ (4, 5)]: New macros.
  (add)[defined ASM_ADD]: Use `ASM_ADD' for the fast path.
  (sub)[defined ASM_SUB]: Use `ASM_SUB' for the fast path.

* test-suite/tests/numbers.test ("+")["fixnum + fixnum = bignum
  (32-bit)", "fixnum + fixnum = bignum (64-bit)", "bignum + fixnum =
  fixnum", "wrong type"]: New tests.
  ("-")["fixnum - fixnum = bignum (32-bit)", "fixnum - fixnum = bignum
  (64-bit)", "bignum - fixnum = fixnum", "wrong type"]: New tests.

* test-suite/tests/00-initial-env.test ("goopsless")["+ wrong type
  argument"]: Use `with-test-prefix/c&e' instead of `with-test-prefix'.
  ["- wrong type argument"]: New test prefix.
2010-11-19 13:34:43 +01:00

60 lines
1.9 KiB
Scheme
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;;;; 00-initial-env.test --- Roots. -*- mode: scheme; coding: utf-8; -*-
;;;;
;;;; Copyright (C) 2010 Free Software Foundation, Inc.
;;;;
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
;;;; License as published by the Free Software Foundation; either
;;;; version 3 of the License, or (at your option) any later version.
;;;;
;;;; This library is distributed in the hope that it will be useful,
;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;;;; Lesser General Public License for more details.
;;;;
;;;; You should have received a copy of the GNU Lesser General Public
;;;; License along with this library; if not, write to the Free Software
;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
(define-module (the-initial-env)
#:use-module (test-suite lib))
;;; A set of tests to run early. The file name is to have `check-guile' pick
;;; this test file first.
;;;
;;; Tests to be run when GOOPS is not loaded.
;;;
(with-test-prefix "goopsless"
(with-test-prefix/c&e "+ wrong type argument"
;; The following tests assume that `+' hasn't been turned into a generic
;; and extended. Since the ECMAScript run-time library does exactly
;; that, they must be run before `ecmascript.test'.
(pass-if-exception "1st argument string"
exception:wrong-type-arg
(+ "1" 2))
(pass-if-exception "2nd argument bool"
exception:wrong-type-arg
(+ 1 #f))
(pass-if-exception "implicit forcing is not supported"
exception:wrong-type-arg
(+ (delay (* 3 7)) 13)))
(with-test-prefix/c&e "- wrong type argument"
;; Same for `-'.
(pass-if-exception "1st argument string"
exception:wrong-type-arg
(+ "1" 2))
(pass-if-exception "2nd argument symbol"
exception:wrong-type-arg
(+ 1 'bar))))