Subject: bug#37037: Guile 2.0.13+1-5.1 FTBFS on GNU/Hurd due to one failing test.

From: Svante Signell <[email-masked]>
Date: Thu, 15 Aug 2019 14:29:07 +0200

Hello,

When building Debian version 2.0.13+1-5.1 one test fails making the
whole build to fail. The problem is in the file test-
suite/tests/statprof.test. According to that file it is known that
ITIMER_PROF is not implemented:

;; Throw `unresolved' upon ENOSYS.  This is used to skip tests on
;; platforms such as GNU/Hurd where `ITIMER_PROF' is is currently
;; unimplemented.
      
(define-syntax-rule (when-implemented body ...)
  (catch 'system-error
    (lambda ()
      body ...)
    (lambda args
      (let ((errno (system-error-errno args)))
        (false-if-exception (statprof-stop))
        (if (= errno ENOSYS)
            (throw 'unresolved)
            (apply throw args))))))

(pass-if-equal "return values"
    '(42 77)
  (call-with-values
      (lambda ()
        (with-output-to-port (%make-void-port "w")
          (lambda ()
            (with-statprof
                (let loop ((i 10000))
                  (if (zero? i)
                      (values 42 77)
                      (loop (1- i))))))))
    list))

However, when that test is run the following is reported:

Running statprof.test
ERROR: statprof.test: return values - arguments: ((system-error
"setitimer" "~A" ("Function not implemented") (1073741902)))
ERROR: statprof.test: statistical sample counts within expected range -
arguments: ((misc-error #f "~A" ("Can't reset profiler while profiler
is running.") #f))
ERROR: statprof.test: accurate call counting - arguments: ((misc-error
#f "~A" ("Can't reset profiler while profiler is running.") #f))

making that test (and package build) to fail.

An UNRESOLVED result would make that test to enable a successful
package build. Unfortunately I don't know anything about scheme code so
I cannot propose a patch to the Debian package maintainer. Maybe you
can help me?

Please Cc: since I'm not subscribed.

Thanks!