These would have caught <https://bugs.gnu.org/56493>.
* test-suite/Makefile.am (SCM_TESTS): Add sample code files. * test-suite/tests/tree-il.test ("warnings"): New tests. * test-suite/tests/tree-il/unbound-spaces.scm: * test-suite/tests/tree-il/unbound-tabs.scm: * test-suite/tests/tree-il/unused-variable.scm: Sample code for compilation warning tests. --- test-suite/Makefile.am | 3 ++ test-suite/tests/tree-il.test | 37 +++++++++++++++++++- test-suite/tests/tree-il/unbound-spaces.scm | 1 + test-suite/tests/tree-il/unbound-tabs.scm | 1 + test-suite/tests/tree-il/unused-variable.scm | 3 ++ 5 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 test-suite/tests/tree-il/unbound-spaces.scm create mode 100644 test-suite/tests/tree-il/unbound-tabs.scm create mode 100644 test-suite/tests/tree-il/unused-variable.scm diff --git a/test-suite/Makefile.am b/test-suite/Makefile.am index 16fa2e952..35f264195 100644 --- a/test-suite/Makefile.am +++ b/test-suite/Makefile.am @@ -187,6 +187,9 @@ SCM_TESTS = tests/00-initial-env.test \ tests/threads.test \ tests/time.test \ tests/tree-il.test \ + tests/tree-il/unbound-spaces.scm \ + tests/tree-il/unbound-tabs.scm \ + tests/tree-il/unused-variable.scm \ tests/types.test \ tests/unicode.test \ tests/version.test \ diff --git a/test-suite/tests/tree-il.test b/test-suite/tests/tree-il.test index 686eab9d2..1f66ecccf 100644 --- a/test-suite/tests/tree-il.test +++ b/test-suite/tests/tree-il.test @@ -1519,7 +1519,42 @@ #:to 'cps))))) (and (= (length w) 1) (number? (string-contains (car w) - "cannot be meaningfully compared"))))))) + "cannot be meaningfully compared")))))) + + (with-test-prefix "location" + (define (test-file filename) + (string-append + (dirname (current-filename)) "/" filename)) + + (pass-if "unused variable" + (let ((w (call-with-warnings + (lambda () + (compile-file (test-file "tree-il/unused-variable.scm") + #:opts %opts-w-unused + #:to 'cps))))) + (and (= (length w) 1) + (number? (string-contains (car w) "unused variable `y'")) + (number? (string-contains (car w) "tree-il/unused-variable.scm:2:2"))))) + + (pass-if "unbound variable (spaces)" + (let ((w (call-with-warnings + (lambda () + (compile-file (test-file "tree-il/unbound-spaces.scm") + #:opts %opts-w-unbound + #:to 'cps))))) + (and (= (length w) 1) + (number? (string-contains (car w) "unbound variable `foo'")) + (number? (string-contains (car w) "tree-il/unbound-spaces.scm:1:3"))))) + + (pass-if "unbound variable (tabs)" + (let ((w (call-with-warnings + (lambda () + (compile-file (test-file "tree-il/unbound-tabs.scm") + #:opts %opts-w-unbound + #:to 'cps))))) + (and (= (length w) 1) + (number? (string-contains (car w) "unbound variable `foo'")) + (number? (string-contains (car w) "tree-il/unbound-tabs.scm:1:17"))))))) ;; Local Variables: ;; eval: (put 'pass-if-primitives-resolved 'scheme-indent-function 1) diff --git a/test-suite/tests/tree-il/unbound-spaces.scm b/test-suite/tests/tree-il/unbound-spaces.scm new file mode 100644 index 000000000..9de3b9861 --- /dev/null +++ b/test-suite/tests/tree-il/unbound-spaces.scm @@ -0,0 +1 @@ + (foo) diff --git a/test-suite/tests/tree-il/unbound-tabs.scm b/test-suite/tests/tree-il/unbound-tabs.scm new file mode 100644 index 000000000..b8c7ae23d --- /dev/null +++ b/test-suite/tests/tree-il/unbound-tabs.scm @@ -0,0 +1 @@ + (foo) diff --git a/test-suite/tests/tree-il/unused-variable.scm b/test-suite/tests/tree-il/unused-variable.scm new file mode 100644 index 000000000..73dcd3585 --- /dev/null +++ b/test-suite/tests/tree-il/unused-variable.scm @@ -0,0 +1,3 @@ +(lambda (x) + (let ((y (+ x 2))) + x)) -- 2.37.3