coverage: Add test for applicable structs.
authorLudovic Courtès <ludo@gnu.org>
Tue, 15 May 2012 22:04:07 +0000 (00:04 +0200)
committerLudovic Courtès <ludo@gnu.org>
Wed, 30 May 2012 22:50:36 +0000 (00:50 +0200)
* test-suite/tests/coverage.test ("procedure-execution-count")["applicable
  struct"]: New test.

test-suite/tests/coverage.test

index 4ac4043..b29de0f 100644 (file)
@@ -1,6 +1,6 @@
 ;;;; coverage.test --- Code coverage.    -*- mode: scheme; coding: utf-8; -*-
 ;;;;
-;;;;   Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+;;;;   Copyright (C) 2010, 2011, 2012 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
              (= 3 result)
              (not (procedure-execution-count data proc))))))
 
+  (pass-if "applicable struct"
+    (let* ((<box> (make-struct <applicable-struct-vtable> 0 'pw))
+           (proc  (lambda args (length args)))
+           (b     (make-struct <box> 0 proc)))
+      (let-values (((data result)
+                    (with-code-coverage %test-vm b)))
+        (and (coverage-data? data)
+             (= 0 result)
+             (= (procedure-execution-count data proc) 1)))))
+
   (pass-if "called from C"
     ;; The `scm_call_N' functions use the VM returned by `the-vm'.  This
     ;; test makes sure that they get to use %TEST-VM.