From 15bc1afe7881eb4f1c7c4c0a5dc3b4225dbc9bda Mon Sep 17 00:00:00 2001 From: David Nolen Date: Tue, 27 Feb 2024 12:31:58 -0500 Subject: [PATCH 1/4] * correct doc string * support vars * add test case --- src/main/cljs/cljs/core.cljs | 13 ++++++++++--- src/test/cljs/cljs/core_test.cljs | 18 +++++++++++++++--- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/main/cljs/cljs/core.cljs b/src/main/cljs/cljs/core.cljs index e384f1560..27a2f9e37 100644 --- a/src/main/cljs/cljs/core.cljs +++ b/src/main/cljs/cljs/core.cljs @@ -11886,10 +11886,17 @@ reduces them without incurring seq initialization" x)) (defn test - "test [v] finds fn at key :test in var metadata and calls it, - presuming failure will throw exception" + "test [v] - if var, finds fn at key :test in var metadata, if function, finds + special test property. Calls it, presuming failure will throw exception. + + Examples: + + (test my-fn) ;; :ok + (test #'my-fn) ;; :ok" [v] - (let [f (.-cljs$lang$test v)] + (let [f (if (instance? Var v) + (-> v meta :test) + (some-> v .-cljs$lang$test))] (if f (do (f) :ok) :no-test))) diff --git a/src/test/cljs/cljs/core_test.cljs b/src/test/cljs/cljs/core_test.cljs index 625c14c3f..0665b7e0f 100644 --- a/src/test/cljs/cljs/core_test.cljs +++ b/src/test/cljs/cljs/core_test.cljs @@ -2006,7 +2006,7 @@ IDeref (-deref [_] (:x @a)) - + ISwap (-swap! [o f] (:x (swap! a update :x f))) @@ -2016,7 +2016,7 @@ (:x (swap! a update :x f x y))) (-swap! [o f x y zs] (:x (swap! a #(apply update % :x f x y zs)))) - + IReset (-reset! [o new-value] (:x (swap! a assoc :x new-value))))] @@ -2031,7 +2031,7 @@ (is (= 11 @c)) (is (= 0 (reset! c 0))) (is (= 0 @c)) - + (is (= [0 1] (swap-vals! c inc))) (is (= 1 @c)) (is (= [1 2] (swap-vals! c + 1))) @@ -2042,3 +2042,15 @@ (is (= 11 @c)) (is (= [11 0] (reset-vals! c 0))) (is (= 0 @c))))) + +(defn cljs-3411-function + "this function adds two numbers" + {:test #(do + (assert (= (cljs-3411-function 2 3) 5)) + (assert (= (cljs-3411-function 4 4) 8)))} + ([x y] (+ x y))) + +(deftest cljs-3411 + (testing "cljs.core/test respects docstring" + (is (= :ok (test cljs-3411))) + (is (= :ok (test #'cljs-3411))))) From 765acba4aadd03d487fc21aabb584c4a42e9b68d Mon Sep 17 00:00:00 2001 From: David Nolen Date: Tue, 27 Feb 2024 12:44:21 -0500 Subject: [PATCH 2/4] * self-parity fails if add test to core so move test to own ns --- src/test/cljs/cljs/core_test.cljs | 12 ------------ src/test/cljs/cljs/var_test.cljs | 22 ++++++++++++++++++++++ src/test/cljs/test_runner.cljs | 6 ++++-- 3 files changed, 26 insertions(+), 14 deletions(-) create mode 100644 src/test/cljs/cljs/var_test.cljs diff --git a/src/test/cljs/cljs/core_test.cljs b/src/test/cljs/cljs/core_test.cljs index 0665b7e0f..08581d603 100644 --- a/src/test/cljs/cljs/core_test.cljs +++ b/src/test/cljs/cljs/core_test.cljs @@ -2042,15 +2042,3 @@ (is (= 11 @c)) (is (= [11 0] (reset-vals! c 0))) (is (= 0 @c))))) - -(defn cljs-3411-function - "this function adds two numbers" - {:test #(do - (assert (= (cljs-3411-function 2 3) 5)) - (assert (= (cljs-3411-function 4 4) 8)))} - ([x y] (+ x y))) - -(deftest cljs-3411 - (testing "cljs.core/test respects docstring" - (is (= :ok (test cljs-3411))) - (is (= :ok (test #'cljs-3411))))) diff --git a/src/test/cljs/cljs/var_test.cljs b/src/test/cljs/cljs/var_test.cljs new file mode 100644 index 000000000..0fe32d815 --- /dev/null +++ b/src/test/cljs/cljs/var_test.cljs @@ -0,0 +1,22 @@ +;; Copyright (c) Rich Hickey. All rights reserved. +;; The use and distribution terms for this software are covered by the +;; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) +;; which can be found in the file epl-v10.html at the root of this distribution. +;; By using this software in any fashion, you are agreeing to be bound by +;; the terms of this license. +;; You must not remove this notice, or any other, from this software. + +(ns cljs.var-test + (:require [cljs.test :refer-macros [deftest is]])) + +(defn cljs-3411-function + "this function adds two numbers" + {:test #(do + (assert (= (cljs-3411-function 2 3) 5)) + (assert (= (cljs-3411-function 4 4) 8)))} + ([x y] (+ x y))) + +(deftest cljs-3411 + (testing "cljs.core/test respects docstring" + (is (= :ok (test cljs-3411))) + (is (= :ok (test #'cljs-3411))))) diff --git a/src/test/cljs/test_runner.cljs b/src/test/cljs/test_runner.cljs index 29218923f..a0e411309 100644 --- a/src/test/cljs/test_runner.cljs +++ b/src/test/cljs/test_runner.cljs @@ -57,7 +57,8 @@ [cljs.inference-test] [cljs.walk-test] [cljs.repl-test] - [cljs.extend-to-native-test])) + [cljs.extend-to-native-test] + [cljs.var-test])) (set! *print-newline* false) @@ -116,4 +117,5 @@ 'cljs.inference-test 'cljs.walk-test 'cljs.repl-test - 'cljs.extend-to-native-test) + 'cljs.extend-to-native-test + 'cljs.var-test) From bd113c6cdf42dd1d7d64e25120b0ddabe6c025e8 Mon Sep 17 00:00:00 2001 From: davidnolen Date: Tue, 27 Feb 2024 17:20:29 -0500 Subject: [PATCH 3/4] comment out the var case --- src/test/cljs/cljs/var_test.cljs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/cljs/cljs/var_test.cljs b/src/test/cljs/cljs/var_test.cljs index 0fe32d815..c2d696156 100644 --- a/src/test/cljs/cljs/var_test.cljs +++ b/src/test/cljs/cljs/var_test.cljs @@ -19,4 +19,5 @@ (deftest cljs-3411 (testing "cljs.core/test respects docstring" (is (= :ok (test cljs-3411))) - (is (= :ok (test #'cljs-3411))))) + ;(is (= :ok (test #'cljs-3411))) + )) From 328b4bfbe3417cb477e3f608e3f3c922765558b8 Mon Sep 17 00:00:00 2001 From: davidnolen Date: Tue, 27 Feb 2024 18:32:38 -0500 Subject: [PATCH 4/4] * typos --- src/test/cljs/cljs/var_test.cljs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/test/cljs/cljs/var_test.cljs b/src/test/cljs/cljs/var_test.cljs index c2d696156..886326a76 100644 --- a/src/test/cljs/cljs/var_test.cljs +++ b/src/test/cljs/cljs/var_test.cljs @@ -7,7 +7,7 @@ ;; You must not remove this notice, or any other, from this software. (ns cljs.var-test - (:require [cljs.test :refer-macros [deftest is]])) + (:require [cljs.test :refer-macros [deftest is testing]])) (defn cljs-3411-function "this function adds two numbers" @@ -18,6 +18,5 @@ (deftest cljs-3411 (testing "cljs.core/test respects docstring" - (is (= :ok (test cljs-3411))) - ;(is (= :ok (test #'cljs-3411))) - )) + (is (= :ok (test cljs-3411-function))) + (is (= :ok (test #'cljs-3411-function)))))