2009-11-14 23:00:46 +00:00
|
|
|
(ns test-compile
|
2010-09-22 03:16:56 +00:00
|
|
|
(:refer-clojure :exclude [compile])
|
|
|
|
(:use [leiningen.compile] :reload)
|
2009-11-14 23:00:46 +00:00
|
|
|
(:use [clojure.test]
|
2010-09-09 04:05:03 +00:00
|
|
|
[clojure.java.io :only [file]]
|
|
|
|
[clojure.java.shell :only [with-sh-dir sh]]
|
2010-09-22 03:16:56 +00:00
|
|
|
[leiningen.core :only [read-project]]
|
2010-09-09 04:05:03 +00:00
|
|
|
[leiningen.util.file :only [delete-file-recursively]]))
|
2009-11-14 23:00:46 +00:00
|
|
|
|
2010-09-22 03:16:56 +00:00
|
|
|
(use-fixtures :each (fn [f]
|
|
|
|
(delete-file-recursively
|
|
|
|
(file "test_projects" "sample" "classes") true)
|
|
|
|
(delete-file-recursively
|
|
|
|
(file "test_projects" "sample_failing" "classes") true)
|
|
|
|
(f)))
|
|
|
|
|
|
|
|
(defn make-project [root]
|
|
|
|
(binding [*ns* (find-ns 'leiningen.core)]
|
|
|
|
(read-project (.getAbsolutePath (file root "project.clj")))))
|
|
|
|
|
2010-10-29 17:54:25 +00:00
|
|
|
;; (deftest test-compile
|
|
|
|
;; (is (zero? (compile (make-project "test_projects/sample"))))
|
|
|
|
;; (is (.exists (file "test_projects" "sample"
|
|
|
|
;; "classes" "nom" "nom" "nom.class")))
|
|
|
|
;; (is (pos? (compile (make-project "test_projects/sample_failing")))))
|
|
|
|
|
|
|
|
;; (deftest test-plugin
|
|
|
|
;; (is (= (eval-in-project (assoc (make-project "test_projects/sample")
|
|
|
|
;; :eval-in-leiningen true
|
|
|
|
;; :main nil)
|
|
|
|
;; '(do (require 'leiningen.compile)
|
|
|
|
;; :compiled))
|
|
|
|
;; :compiled)))
|
2010-10-24 21:28:26 +00:00
|
|
|
|
2010-10-29 17:54:25 +00:00
|
|
|
(deftest test-cleared-transitive-aot
|
|
|
|
(is (zero? (compile (make-project "test_projects/sample"))))
|
|
|
|
(let [classes (seq (.list (file "test_projects" "sample"
|
|
|
|
"classes" "nom" "nom")))]
|
|
|
|
(doseq [r [#"nom\$fn__\d+.class" #"nom\$loading__\d+__auto____\d+.class"
|
|
|
|
#"nom\$_main__\d+.class" #"nom.class" #"nom__init.class"]]
|
|
|
|
(is (some (partial re-find r) classes) (format "missing %s" r))))
|
|
|
|
(is (not (.exists (file "test_projects" "sample"
|
|
|
|
"classes" "sample2" "core.class")))))
|
2010-11-14 15:13:45 +00:00
|
|
|
|
|
|
|
(deftest test-spaces-in-project-path
|
|
|
|
(binding [leiningen.compile/get-raw-input-args
|
|
|
|
(fn [] ["-Dleiningen.original.pwd=/path/with" "spaces/got-broken"])]
|
|
|
|
(is (zero? (eval-in-project (make-project "test_projects/sample")
|
|
|
|
`(System/exit 0))))))
|