diff options
author | Timothy Pratley <timothypratley@gmail.com> | 2010-01-30 16:20:48 +1100 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2010-03-11 07:19:00 -0500 |
commit | e2cdf7dea9b0a459e781e4da320817be56aa6a8d (patch) | |
tree | f0c457b842a3fb62f7bf0c27ec55e6b675d188c3 | |
parent | ec9b5846dead9bbdf6dc955c7a5e74cc61cd3e4e (diff) |
check load arguments and options are valid #253
Signed-off-by: Rich Hickey <richhickey@gmail.com>
-rw-r--r-- | src/clj/clojure/core.clj | 8 | ||||
-rw-r--r-- | test/clojure/test_clojure/ns_libs.clj | 8 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj index bec3f2af..e2cf386e 100644 --- a/src/clj/clojure/core.clj +++ b/src/clj/clojure/core.clj @@ -4206,6 +4206,14 @@ (let [flags (filter keyword? args) opts (interleave flags (repeat true)) args (filter (complement keyword?) args)] + ; check for unsupported options + (let [supported #{:as :reload :reload-all :require :use :verbose} + unsupported (seq (remove supported flags))] + (throw-if unsupported + (apply str "Unsupported option(s) supplied: " + (interpose \, unsupported)))) + ; check a load target was specified + (throw-if (not (seq args)) "Nothing specified to load") (doseq [arg args] (if (libspec? arg) (apply load-lib nil (prependss arg opts)) diff --git a/test/clojure/test_clojure/ns_libs.clj b/test/clojure/test_clojure/ns_libs.clj index a9a2145c..c5b9666a 100644 --- a/test/clojure/test_clojure/ns_libs.clj +++ b/test/clojure/test_clojure/ns_libs.clj @@ -26,3 +26,11 @@ ; require use ; loaded-libs +(deftest test-require + (is (thrown? Exception (require :foo))) + (is (thrown? Exception (require)))) + +(deftest test-use + (is (thrown? Exception (use :foo))) + (is (thrown? Exception (use)))) + |