#!/bin/bash

set -ueo pipefail

cp=($(< debian/libtools-build-clojure.classpath))
test "${cp[0]}" = usr/share/java/tools.build.jar
unset cp[0] # drop it

test_cp=(src/test/clojure
         tools.build.jar
         /usr/share/java/maven-resolver-named-locks.jar
         /usr/share/java/maven-repository-metadata-3.x.jar
         "${cp[@]}")

test_cp="$(IFS=:; echo "${test_cp[*]}")"

set -x
java -cp "$test_cp" clojure.main - <<EOF
  (ns debian.test.tools.build
    (:require
     [clojure.test :refer [run-tests successful?]]
     [clojure.java.io :refer [as-file]]
     [clojure.tools.namespace :refer [find-namespaces-in-dir]]))

  (let [nss (find-namespaces-in-dir (as-file "src/test/clojure"))]
    (apply require nss)
    (System/exit (if (successful? (apply run-tests nss)) 0 2)))
EOF

# This requires libcognitect-test-runner-clojure (which is not in
# unstable yet) and /usr/share/java/cognitect.test-runner.jar in the
# classpath.
#
# Derived from ./deps.edn; needs cognitect.test-runner, which supports
# clojure.main -m, until we switch to clj -X:test.
## java -cp "$test_cp" clojure.main \
##      -m cognitect.test-runner cognitect.test-runner.api/test \
##      --dir src/test/clojure --namespace-regex '.*'

