Skip to content

chore: fix ClojureCLR failing tests on different platforms, and add tooling for devs#3

Open
parth-io wants to merge 8 commits into
maint-1.11.xfrom
maint-1.11.x-tooling
Open

chore: fix ClojureCLR failing tests on different platforms, and add tooling for devs#3
parth-io wants to merge 8 commits into
maint-1.11.xfrom
maint-1.11.x-tooling

Conversation

@parth-io

@parth-io parth-io commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator

Refs #4

Adds tooling for dev, multi-platform CI and fixes the cross-platform test failures it surfaces.

CI

  • Add .github/workflows/tests.yml — runs on ubuntu/windows/macos, net6.0

Test fixes

  • test-iteration (sequences.clj): use Path/Combine instead of Windows separator
  • test-expected-casts (numbers.clj): accept what both ARM and x64 return
  • CountDownLatchTests: drop the redundant Thread.SetApartmentState call
  • Rename clojure.test-clojure.exclude-namespaces to CLOJURE_TEST_EXCLUDE_NAMESPACES (run_test.clj, build.proj): the dots fail in some shells

Tooling

  • Pin the .NET SDK to 6.0 via global.json
  • .cljfmt.edn {:indentation? false} to preserve the source style

parth-io added 6 commits July 22, 2026 10:12
…chTests

A new thread already defaults to MTA (which EventWaitHandle.WaitAll requires) on Windows, so SetApartmentState(MTA) was redundant there. Off Windows there are no COM apartments and the call threw PlatformNotSupportedException, failing the test on Linux/macOS. Removing it lets the suite pass on all platforms.
@parth-io parth-io self-assigned this Jul 23, 2026
@parth-io
parth-io force-pushed the maint-1.11.x-tooling branch from f17562b to 82bc278 Compare July 23, 2026 08:47
@parth-io parth-io changed the title chore: add various tooling to improve dev flow chore: fix ClojureCLR failing tests on different platforms, and add tooling for devs Jul 23, 2026
parth-io added 2 commits July 23, 2026 17:27
MSBuild's <Exec> runs through a POSIX shell on Unix, and dash drops env var names containing dots. The exclusion var 'clojure.test-clojure.exclude-namespaces' was therefore stripped on Linux, so net462-only namespaces (attributes/genclass/compilation) ran on net6.0; clojure.test-clojure.attributes then crashed importing a null Code-Access-Security type. Rename to CLOJURE_TEST_EXCLUDE_NAMESPACES so the exclusion survives. Verified in a linux container: 625 tests, 0 failures.
@parth-io
parth-io force-pushed the maint-1.11.x-tooling branch from c4de933 to d118dcc Compare July 23, 2026 09:27
@parth-io
parth-io requested a review from skydread1 July 24, 2026 03:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant