From db9ef98c4c688218e93f7402367fd8c917a0c5f9 Mon Sep 17 00:00:00 2001 From: Tobias Pfeiffer Date: Fri, 15 Dec 2023 11:28:12 +0100 Subject: [PATCH] improve iex test, but it still leaks and breaks shell --- test/benchee_test.exs | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/test/benchee_test.exs b/test/benchee_test.exs index bb52fc9b..3d7a9981 100644 --- a/test/benchee_test.exs +++ b/test/benchee_test.exs @@ -1034,18 +1034,25 @@ defmodule BencheeTest do # test env to avoid repeated compilation on CI port = Port.open({:spawn, "iex -S mix"}, [:binary, env: [{~c"MIX_ENV", ~c"test"}]]) - # wait for startup - # timeout huge because of CI - assert_receive {^port, {:data, "iex(1)> "}}, 20_000 - - send( - port, - {self(), {:command, "Benchee.run(%{\"test\" => fn -> 1 end}, time: 0.001, warmup: 0)\n"}} - ) + try do + # wait for startup + # timeout huge because of CI + assert_receive {^port, {:data, "iex(1)> "}}, 20_000 + + send( + port, + {self(), + {:command, "Benchee.run(%{\"test\" => fn -> 1 end}, time: 0.001, warmup: 0)\n"}} + ) - assert_receive {^port, {:data, "Warning: " <> message}}, 20_000 + assert_receive {^port, {:data, "Warning: " <> message}}, 20_000 + assert message =~ ~r/test.+evaluated.+slower.+compiled.+module.+/is - assert message =~ ~r/test.+evaluated.+slower.+compiled.+module.+/is + # waiting for iex to be ready for input again + assert_receive {^port, {:data, "iex(2)> "}}, 20_000 + after + Port.close(port) + end end end