From 180bd5ae6cb960bef58dee55285a92e2bb26641c Mon Sep 17 00:00:00 2001
From: "Robert P. Goldman" <rpgoldman@gmail.com>
Date: Wed, 29 Oct 2014 17:00:20 -0500
Subject: [PATCH] Test for Ilya Perminov's report

Added new test to test-deferred-warnings.script to assess how undefined
variable warnings are handled.
---
 test/fun-with-undefined-locals.lisp |  7 +++++++
 test/test-deferred-warnings.script  | 17 +++++++++++++++++
 2 files changed, 24 insertions(+)
 create mode 100644 test/fun-with-undefined-locals.lisp

diff --git a/test/fun-with-undefined-locals.lisp b/test/fun-with-undefined-locals.lisp
new file mode 100644
index 00000000..a0df97dc
--- /dev/null
+++ b/test/fun-with-undefined-locals.lisp
@@ -0,0 +1,7 @@
+(defpackage fun-with-undefined-locals-package
+  (:use :common-lisp))
+
+(in-package :fun-with-undefined-locals-package)
+
+(defun foo ()
+  (+ a b))
diff --git a/test/test-deferred-warnings.script b/test/test-deferred-warnings.script
index 3ec10ff3..1f62b418 100644
--- a/test/test-deferred-warnings.script
+++ b/test/test-deferred-warnings.script
@@ -28,6 +28,8 @@
   :depends-on (:unintern-foo)
   :serial t
   :components ((:file "use-setf-foo") (:file "defsetf-foo")))
+(def-test-system :undefined-variables
+  :components ((:file "fun-with-undefined-locals")))
 
 (DBG :tdw0 *compile-file-warnings-behaviour*)
 (handler-bind
@@ -95,3 +97,18 @@
    ((or compile-file-error compile-warned-error) () t)
    ;;(t (c) (DBG :ustdf0 c))
    (:no-error (&rest values) (DBG :ustdf1 values) nil)))
+
+(assert
+ (flet ((expected-error (x)
+                        (format t "Expected error type: ~a" (type-of x))
+                        t))
+   (handler-case
+    (let ((*compile-file-warnings-behaviour* :error))
+      (trace compile-file)
+      (load-system :undefined-variables)
+      nil)
+    (compile-failed-error (x) (expected-error x))
+    (compile-file-error (x) (expected-error x))
+    (error (x)
+           (format t "Unexpected error type: ~a" (type-of x))
+           nil))))
-- 
GitLab