Subject: elixir-machete 0.3.3 non-deterministic test failures

From: Maxim Cournoyer <[email-masked]>
Date: Fri, 11 Oct 2024 11:23:55 +0900

Hi,

As seen on CI, the  MismatchTest and MapMatcherTest may fail
non-deterministically (this was marked as a new failure):

--8<---------------cut here---------------start------------->8---
starting phase `check'
Running ExUnit with seed: 188457, max_cases: 192

..............................................................................................................................................

  1) test format_mismatches formats with numbers and indents (MismatchTest)
     test/machete/mismatch_test.exs:5
     Assertion with == failed
     code:  assert Machete.Mismatch.format_mismatches(mismatches, "  ") ==
              "  1) .a: 1 is not equal to 2\n  2) .b.[0].{0}: 1 is not equal to 2\n"
     left:  "  1) .b.[0].{0}: 1 is not equal to 2\n  2) .a: 1 is not equal to 2\n"
     right: "  1) .a: 1 is not equal to 2\n  2) .b.[0].{0}: 1 is not equal to 2\n"
     stacktrace:
       test/machete/mismatch_test.exs:8: (test)

.................................................................................................................................

  2) test produces a useful mismatch for max size mismatches (MapMatcherTest)
     test/machete/matchers/map_matcher_test.exs:29
     Assertion with ~> failed

     Mismatches:

       1) .[0].message: "%{b: 1, a: 1} is greater than 1 pairs in size" is not equal to "%{a: 1, b: 1} is greater than 1 pairs in size"

     code: assert %{a: 1, b: 1} ~>> map(max: 1) ~> mismatch("%{a: 1, b: 1} is greater than 1 pairs in size")
     stacktrace:
       test/machete/matchers/map_matcher_test.exs:30: (test)

..............................................................................................................................
Finished in 1.0 seconds (1.0s async, 0.01s sync)
204 doctests, 195 tests, 2 failures
error: in phase 'check': uncaught exception:
%exception #<&invoke-error program: "mix" arguments: ("do" "compile" "--no-deps-check" "--no-prune-code-paths" "+" "test" "--no-deps-check") exit-status: 2 term-signal: #f stop-signal: #f> 
phase `check' failed after 2.3 seconds
command "mix" "do" "compile" "--no-deps-check" "--no-prune-code-paths" "+" "test" "--no-deps-check" failed with status 2
build process 18 exited with status 256
builder for `/gnu/store/vbjswnk8ml05qxjvgi0l17k8mdvlbxpa-elixir-machete-0.3.3.drv' failed with exit code 1
--8<---------------cut here---------------end--------------->8---

I've reported it upstream here: https://github.com/mtrudel/machete/issues/43

-- 
Thanks,
Maxim