summaryrefslogtreecommitdiff
path: root/test-suite/tests/statprof.test
diff options
context:
space:
mode:
authorMike Gran <spk121@yahoo.com>2017-03-06 23:06:12 -0800
committerMike Gran <spk121@yahoo.com>2017-03-06 23:06:12 -0800
commit70cfabd7e87f93d210bad377feb7ca50fa3bd133 (patch)
treedc29f257b5b753a5b2d82968b09699a718f7f288 /test-suite/tests/statprof.test
parent4ce31fd387e89c8f64716866705a5a34651506ea (diff)
downloadguile-70cfabd7e87f93d210bad377feb7ca50fa3bd133.tar.gz
Check for working profiling and virtual itimers
* configure.ac (HAVE_USABLE_GETITIMER_PROF, HAVE_USABLE_GETITIMER_VIRTUAL): new tests * doc/ref/posix.texi (setitimer, getitimer): document provided? 'ITIMER_VIRTUAL and 'ITIMER_PROF * doc/ref/statprof.texi (statprof): document ITIMER_PROF requirements * libguile/scmsigs.c (scm_setitimer, scm_getitimer): document (provided? 'ITIMER_VIRTUAL) and (provided? 'ITIMER_PROF) (scm_init_scmsigs): add features ITIMER_VIRTUAL and ITIMER_PROF * test-suite/tests/asyncs.test ("prevention via sigprof"): throw when unsupported * test-suite/tests/signals.test: throw when not supported * test-suite/tests/statprof.test: throw when not supported
Diffstat (limited to 'test-suite/tests/statprof.test')
-rw-r--r--test-suite/tests/statprof.test15
1 files changed, 8 insertions, 7 deletions
diff --git a/test-suite/tests/statprof.test b/test-suite/tests/statprof.test
index a597f3198..994d88269 100644
--- a/test-suite/tests/statprof.test
+++ b/test-suite/tests/statprof.test
@@ -1,4 +1,5 @@
-;; guile-lib -*- scheme -*-
+;;;; statprof.test --- test suite for Guile's profiler -*- scheme -*-
+;;;; Copyright (C) 2017 Free Software Foundation, Inc.
;; Copyright (C) 2004, 2009, 2010, 2014 Andy Wingo <wingo at pobox dot com>
;; Copyright (C) 2001 Rob Browning <rlb at defaultvalue dot org>
@@ -31,9 +32,9 @@
#:use-module (srfi srfi-1)
#:use-module (statprof))
-;; Throw `unresolved' upon ENOSYS. This is used to skip tests on
-;; platforms such as GNU/Hurd where `ITIMER_PROF' is is currently
-;; unimplemented.
+;; Throw `unresolved' upon ENOSYS or EINVAL. This is used to skip tests
+;; on platforms such as GNU/Hurd or Cygwin where `ITIMER_PROF' is is
+;; currently unimplemented.
(define-syntax-rule (when-implemented body ...)
(catch 'system-error
(lambda ()
@@ -41,7 +42,7 @@
(lambda args
(let ((errno (system-error-errno args)))
(false-if-exception (statprof-stop))
- (if (= errno ENOSYS)
+ (if (or (= errno ENOSYS) (= errno EINVAL))
(throw 'unresolved)
(apply throw args))))))
@@ -125,7 +126,7 @@
(define do-nothing
(compile '(lambda (n)
(simple-format #f "FOO ~A\n" (+ n n)))))
-
+
;; Run test.
(statprof-reset 0 50000 #t #f)
(statprof-start)
@@ -136,7 +137,7 @@
(loop (- x 1))
#t)))
(statprof-stop)
-
+
;; Check result.
(let ((proc-data (statprof-proc-call-data do-nothing)))
(and proc-data