Fork me on GitHub
#hyperfiddle
<
2022-04-21
>
lepistane19:04:53

Hello, I am trying to setup the https://github.com/hyperfiddle/rcf#ci using deps.edn for the project. I've managed to do it (mostly) but after the tests execute terminal just 'hangs'. Is this normal? Doesn't feel normal... this is my /test/app/core_test.clj

(ns app.core-test
  (:require [clojure.test :as test]
            [my.ns :as ns]))


(defn run-tests [& args]
  (test/run-tests 'my.ns))
This is my deps edn test alias
{:jvm-opts ["-Dhyperfiddle.rcf.generate-tests=true"]
                  :extra-paths ["test"]
                  :exec-fn app.core-test/run-tests}
this is how i run it
clj -X:test
This is the output and i had to ctrl + z to make it stop. (removed ns names but didn't go good job that's why you see some dots in the pic) How do i prevent the 'hang' after it executes? edit Ok never mind... I just needed to wait bit longer ~60sec for it to exit. Is that ok?

Dustin Getz20:04:20

This is not normal, I just double checked that clj -M:test -e "(require 'user)(clojure.test/run-tests 'user)" returns instantly after running a hello world test

Dustin Getz20:04:09

If you send me a git repo i can clone it and take a look

lepistane04:04:02

I can't share the exact repo but i can make dummy repo to see if it works. in my case

clj -M:test -e "(require 'app.core-test)(app.core-test/run-tests)"
has delay but
clj -M:test -e "(require 'app.ns.with.tests)(clojure.test/run-tests 'app.ns.with.tests)"
works instant.

lepistane05:04:19

i made dummy repo and clj -X:test returns instantly

lepistane05:04:04

(ns 
  (:require [hyperfiddle.rcf :refer [tests ! %]]))

(tests
  "equality"
  (inc 1) := 2

  "wildcards"
  {:a :b, :b [2 :b]} := {:a _, _ [2 _]}

  "unification"
  {:a :b, :b [2 :b]} := {:a ?b, ?b [2 ?b]}

  "unification on reference types"
  (def x (atom nil))
  {:a x, :b x} := {:a ?x, :b ?x}

  (tests
    "nested tests (is there a strong use case?)"
    1 := 1

    "tests form returns final result"
    (tests (inc 1) := 2 (inc *1)) := 3)

  (tests
    "REPL bindings work"
    (keyword "a") := :a
    (keyword "b") := :b
    (keyword "c") := :c
    *1 := :c
    *2 := :b
    *3 := :a
    *1 := :c                   ; inspecting history does not affect history

    (keyword "d") := :d
    *1 := :d
    *2 := :c
    *3 := :b
    (symbol *2) := 'c          ; this does affect history
    (symbol *2) := 'd))
(ns app.app-test
  (:require [clojure.test :as test]
            []))


(defn run-tests [& args]
  (test/run-tests '))
{:paths ["src"]
 :deps {org.clojure/clojure {:mvn/version "1.11.0"}
        com.hyperfiddle/rcf {:mvn/version "20220405"}}
 :aliases {:test {:jvm-opts ["-Dhyperfiddle.rcf.generate-tests=true"]
                  :extra-paths ["test"]
                  :exec-fn app.app-test/run-tests}}}

lepistane05:04:45

is there a way to measure why it hangs? I am thinking that original repo creates a lot of classes because there are a lot of of dependencies so it takes little bit to exit the process? does this make sense?

lepistane05:04:10

Oke yeah. 1 out of 3 namespaces is causing hang. I will filter it down further to see where the issue lies. Thank you for being willing to look at this, it seems it's project/namespace specific.

Nick McAvoy19:04:55

By the way, this was amazing last night! It was a real privilege to have Dustin tell a roomful of us in Philadelphia all about it. https://www.meetup.com/Clojadelphia/events/284772608/

😍 1
🙂 1
jtth20:04:30

Is there a trick to getting an account on hyperfiddle? I think I signed up for an account four(?) years ago and haven’t heard anything

Dustin Getz20:04:52

we started over a bunch of times and never launched publicly. We're rolling out a Photon release to ~10 people starting next week - book an office hours on my public calendly link if you want to talk about it

☺️ 1
Dustin Getz20:04:29

thanks for asking

jtth20:04:57

ah! okay, i just might do that! thanks

Dustin Getz13:05:40

Would you like to be onboarded? It takes 2 hours on zoom to get through to the good stuff (client/server transfer)

Dustin Getz13:05:40

Ah but it is the Photon language that we are releasing, the CRUD UI stuff is not ready