Skip to content
This repository was archived by the owner on Oct 28, 2024. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,9 @@ pom.xml.asc
.hgignore
.hg/
/test-results/
dev-resources/weasley/target/
dev-resources/weasley/.lein-failures
dev-resources/weasley/test-results/
dev-resources/weasley/.lein-repl-history
test_out.txt
dev-resources/weasley/test_out.txt
19 changes: 19 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
weasley-test: root-test
@echo "------------------------------------"
@echo "Testing internal project Weasley"
@echo "------------------------------------"

# The goal is to compare test runs with Leiningen where
# possible (is there a better way than this?)
sh test.sh

root-test:
@echo "------------------------------------"
@echo "Testing root project circleci.test"
@echo "------------------------------------"
lein do clean, compile
lein test

test: root-test

.PHONY: test
5 changes: 4 additions & 1 deletion dev-resources/circleci_test/config.clj
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@
(def ^:dynamic *inside-global* false)

{:selectors {:all (constantly true)
:default (complement :failing)}
:default (complement :failing)
:select-vars (fn [m]
(.endsWith (str (:name m)) "-2"))
:combination :combination}
:test-results-dir (or (System/getenv "CIRCLE_TEST_REPORTS")
"test-results")
:reporters [clojure-test-reporter junit/reporter]
Expand Down
1 change: 1 addition & 0 deletions dev-resources/weasley/circleci.test.version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
(def circleci-test-version "0.4.3")
24 changes: 24 additions & 0 deletions dev-resources/weasley/dev-resources/circleci_test/config.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
(require '[circleci.test.report :refer (clojure-test-reporter)])
(require '[circleci.test.report.junit :as junit])
(require '[clojure.java.io :as io])

(def ^:dynamic *global-counter* 0)

{:selectors {:all (constantly true)
:default (complement :failing)
:select-vars (fn [m]
(.endsWith (str (:name m)) "-2"))
:combination :combination}
:test-results-dir (or (System/getenv "CIRCLE_TEST_REPORTS")
"test-results")
:reporters [clojure-test-reporter junit/reporter]
:global-fixture (fn [f]
(try
(io/delete-file "global_fixture_test.out" true)
(assert (zero? *global-counter*))
(binding [*global-counter* (inc *global-counter*)]
(spit "global_fixture_test.out" *global-counter* :append true)
(f))
(finally
(io/delete-file "global_fixture_test.out" true)
(assert (false? (.exists (clojure.java.io/file "global_fixture_test.out")))))))}
11 changes: 11 additions & 0 deletions dev-resources/weasley/project.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
(load-file "./circleci.test.version")
(defproject circleci/weasley "0.1.0-SNAPSHOT"
:dependencies [[org.clojure/clojure "1.10.1"]
[circleci/circleci.test ~circleci-test-version]]
:target-path "target/%s"
:profiles {:uberjar {:aot :all}}
:main weasley.core
:aot [weasley.core]
:aliases {"test" ["run" "-m" "circleci.test/dir" :project/test-paths]
"tests" ["run" "-m" "circleci.test"]
"retest" ["run" "-m" "circleci.test.retest"]})
7 changes: 7 additions & 0 deletions dev-resources/weasley/src/weasley/core.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
(ns weasley.core
(:gen-class))

(defn -main
"I don't do a whole lot ... yet."
[& args]
(println "Hello, World!"))
53 changes: 53 additions & 0 deletions dev-resources/weasley/test/weasley/sample_test_ns1.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
(ns weasley.sample-test-ns1
(:require [clojure.test :refer :all]))

(def ^:dynamic vonce 0)
(def ^:dynamic veach 0)
(def ^:dynamic vcommon 0)

(deftest test-1
(println "Running: circleci.sample-test-ns1/test-1")
(is (= 1 1))
(is (zero? veach))
(is (zero? vonce))
(is (zero? vcommon)))

(deftest test-2
(println "Running: circleci.sample-test-ns1/test-2")
(is (= 10 10))
(is (zero? veach))
(is (zero? vonce))
(is (zero? vcommon)))

(deftest test-3
(println "Running: circleci.sample-test-ns1/test-3")
(is (= 109 109))
(is (zero? veach))
(is (zero? vonce))
(is (zero? vcommon)))


(defn test-ns-hook
[]
(test-1)
(test-2)
(test-3))


(defn each-fixture
[f]
(binding [veach (inc veach)
vcommon (inc vcommon)]
(f)))


(defn once-fixture
[f]
(binding [vonce (inc vonce)
vcommon (inc vcommon)]
(f)))



(use-fixtures :each each-fixture)
(use-fixtures :once once-fixture)
65 changes: 65 additions & 0 deletions dev-resources/weasley/test/weasley/sample_test_ns2.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
(ns weasley.sample-test-ns2
(:require [clojure.test :refer :all]))

(def ^:dynamic vonce 0)
(def ^:dynamic veach 0)
(def ^:dynamic vcommon 0)
(def ^:dynamic level-of-nesting 0)

(deftest test-1
(when (zero? level-of-nesting)
(println "Running: circleci.sample-test-ns2/test-1"))
(is (= 1 1))
(is (= 1 veach))
(is (= 1 vonce))
(is (= 2 vcommon)))

(deftest test-2
(when (zero? level-of-nesting)
(println "Running: circleci.sample-test-ns2/test-2"))
(is (= 10 10))
(is (= 1 veach))
(is (= 1 vonce))
(is (= 2 vcommon)))

(deftest test-3
(when (zero? level-of-nesting)
(println "Running: circleci.sample-test-ns2/test-3"))
(is (= 109 109))
(is (= 1 veach))
(is (= 1 vonce))
(is (= 2 vcommon)))

(deftest ^:combination test-4
(when (zero? level-of-nesting)
(println "Running: circleci.sample-test-ns2/test-4"))
(binding [level-of-nesting (inc level-of-nesting)]
(test-1)
(test-2)
(test-3)))

(deftest ^:combination test-5
(println "Running: circleci.sample-test-ns2/test-5")
(binding [level-of-nesting (inc level-of-nesting)]
(test-1)
(test-2)
(test-3)
(test-4)))


(defn each-fixture
[f]
(binding [veach (inc veach)
vcommon (inc vcommon)]
(f)))


(defn once-fixture
[f]
(binding [vonce (inc vonce)
vcommon (inc vcommon)]
(f)))


(use-fixtures :each each-fixture)
(use-fixtures :once once-fixture)
73 changes: 73 additions & 0 deletions dev-resources/weasley/test/weasley/sample_test_ns3.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
(ns ^:global-fixture weasley.sample-test-ns3
(:require [clojure.test :refer :all]))

(def ^:dynamic vonce 0)
(def ^:dynamic veach 0)
(def ^:dynamic vcommon 0)
(def ^:dynamic level-of-nesting 0)

(defn global-fixture-file
[]
(slurp "global_fixture_test.out"))

(deftest test-1
(when (zero? level-of-nesting)
(println "Running: circleci.sample-test-ns3/test-1"))
(is (= 1 veach))
(is (= 1 vonce))
(is (= 2 vcommon))
(is (= "1" (global-fixture-file))))

(deftest test-2
(when (zero? level-of-nesting)
(println "Running: circleci.sample-test-ns3/test-2"))
(is (= 1 veach))
(is (= 1 vonce))
(is (= 2 vcommon))
(is (= "1" (global-fixture-file))))

(deftest test-3
(when (zero? level-of-nesting)
(println "Running: circleci.sample-test-ns3/test-3"))
(is (= 1 veach))
(is (= 1 vonce))
(is (= 2 vcommon))
(is (= "1" (global-fixture-file))))

(deftest ^:combination test-4
(when (zero? level-of-nesting)
(println "Running: circleci.sample-test-ns3/test-4"))
(binding [level-of-nesting (inc level-of-nesting)]
(test-1)
(test-2)
(test-3)
(assert (= "1" (global-fixture-file)))))

(deftest ^:combination test-5
(println "Running: circleci.sample-test-ns3/test-5")
(binding [level-of-nesting (inc level-of-nesting)]
(test-1)
(test-2)
(test-3)
(test-4)
(assert (= "1" (global-fixture-file)))))


(defn each-fixture
[f]
(binding [veach (inc veach)
vcommon (inc vcommon)]
(assert (= "1" (global-fixture-file)))
(f)))


(defn once-fixture
[f]
(binding [vonce (inc vonce)
vcommon (inc vcommon)]
(assert (= "1" (global-fixture-file)))
(f)))


(use-fixtures :each each-fixture)
(use-fixtures :once once-fixture)
Loading