Skip to content

Commit 51e160e

Browse files
authored
Add OTP 28 to CI (#14510)
1 parent 945c057 commit 51e160e

File tree

6 files changed

+40
-84
lines changed

6 files changed

+40
-84
lines changed

.github/workflows/ci.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,16 @@ jobs:
2626
fail-fast: false
2727
matrix:
2828
include:
29-
- otp_version: "27.1"
29+
- otp_version: "28.0"
3030
deterministic: true
31-
- otp_version: "27.1"
31+
- otp_version: "28.0"
3232
erlc_opts: "warnings_as_errors"
3333
coverage: true
34-
- otp_version: "27.1"
34+
- otp_version: "28.0"
3535
otp_latest: true
3636
erlc_opts: "warnings_as_errors"
37+
- otp_version: "27.3"
38+
erlc_opts: "warnings_as_errors"
3739
- otp_version: "27.0"
3840
erlc_opts: "warnings_as_errors"
3941
- otp_version: "26.0"

.github/workflows/release.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ jobs:
6868
otp_version: "26.0"
6969
- otp: 27
7070
otp_version: "27.0"
71+
- otp: 28
72+
otp_version: "28.0"
7173
build_docs: build_docs
7274

7375
runs-on: ubuntu-22.04
@@ -114,7 +116,7 @@ jobs:
114116
strategy:
115117
fail-fast: true
116118
matrix:
117-
otp: [26, 27]
119+
otp: [26, 27, 28]
118120
flavor: [windows, linux]
119121

120122
env:
@@ -194,19 +196,19 @@ jobs:
194196
id: git-config
195197
shell: bash
196198
run: git config --global url.https://github.com/.insteadOf ssh://[email protected]/
197-
199+
198200
- name: Checkout project
199201
id: checkout
200202
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
201-
203+
202204
- name: "Download Build Artifacts"
203205
id: download-build-artifacts
204206
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
205207
with:
206208
pattern: "{sign-*-elixir-otp-*,Docs}"
207209
merge-multiple: true
208210
path: /tmp/build-artifacts/
209-
211+
210212
- name: "Run OSS Review Toolkit"
211213
id: ort
212214
uses: ./.github/workflows/ort

lib/ex_unit/test/ex_unit/capture_io_test.exs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -182,38 +182,38 @@ defmodule ExUnit.CaptureIOTest do
182182

183183
test "with get password" do
184184
capture_io(fn ->
185-
assert :io.get_password() == :eof
185+
assert :io.get_password(Process.group_leader()) == :eof
186186
end)
187187

188188
capture_io("", fn ->
189-
assert :io.get_password() == :eof
189+
assert :io.get_password(Process.group_leader()) == :eof
190190
end)
191191

192192
capture_io("abc", fn ->
193-
assert :io.get_password() == "abc"
194-
assert :io.get_password() == :eof
193+
assert :io.get_password(Process.group_leader()) == "abc"
194+
assert :io.get_password(Process.group_leader()) == :eof
195195
end)
196196

197197
capture_io("abc\n", fn ->
198-
assert :io.get_password() == "abc\n"
199-
assert :io.get_password() == :eof
198+
assert :io.get_password(Process.group_leader()) == "abc\n"
199+
assert :io.get_password(Process.group_leader()) == :eof
200200
end)
201201

202202
capture_io("\n", fn ->
203-
assert :io.get_password() == "\n"
204-
assert :io.get_password() == :eof
203+
assert :io.get_password(Process.group_leader()) == "\n"
204+
assert :io.get_password(Process.group_leader()) == :eof
205205
end)
206206

207207
capture_io("a\nb", fn ->
208-
assert :io.get_password() == "a\n"
209-
assert :io.get_password() == "b"
210-
assert :io.get_password() == :eof
208+
assert :io.get_password(Process.group_leader()) == "a\n"
209+
assert :io.get_password(Process.group_leader()) == "b"
210+
assert :io.get_password(Process.group_leader()) == :eof
211211
end)
212212

213213
capture_io("あい\nう", fn ->
214-
assert :io.get_password() == "あい\n"
215-
assert :io.get_password() == "う"
216-
assert :io.get_password() == :eof
214+
assert :io.get_password(Process.group_leader()) == "あい\n"
215+
assert :io.get_password(Process.group_leader()) == "う"
216+
assert :io.get_password(Process.group_leader()) == :eof
217217
end)
218218
end
219219

lib/mix/test/fixtures/rebar3

36.3 KB
Binary file not shown.

lib/mix/test/mix/rebar_test.exs

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ defmodule Mix.RebarTest do
7878
end
7979

8080
test "parses Rebar dependencies" do
81+
assert parse_dep(:git_rebar) == {:git_rebar, override: true}
82+
8183
assert parse_dep({:git_rebar, ~c"~> 1.0"}) == {:git_rebar, "~> 1.0", override: true}
8284

8385
assert parse_dep({:git_rebar, ~c"~> 1.0", {:pkg, :rebar_fork}}) ==
@@ -86,19 +88,23 @@ defmodule Mix.RebarTest do
8688
assert parse_dep({:git_rebar, {:pkg, :rebar_fork}}) ==
8789
{:git_rebar, override: true, hex: :rebar_fork}
8890

89-
assert parse_dep({:git_rebar, ~c"0.1..*", {:git, @git_rebar_charlist, :main}}) ==
90-
{:git_rebar, ~r"0.1..*", override: true, git: @git_rebar_string, ref: "main"}
91-
9291
assert parse_dep({:git_rebar, {:git, @git_rebar_charlist, :main}}) ==
9392
{:git_rebar, override: true, git: @git_rebar_string, ref: "main"}
9493

95-
assert parse_dep({:git_rebar, ~c"0.1..*", {:git, @git_rebar_charlist}, [:raw]}) ==
96-
{:git_rebar, ~r"0.1..*", override: true, git: @git_rebar_string, compile: false}
94+
assert {:git_rebar, regex, override: true, git: @git_rebar_string, compile: false} =
95+
parse_dep({:git_rebar, ~c"0.1..*", {:git, @git_rebar_charlist}, [:raw]})
9796

98-
assert parse_dep({:git_rebar, ~c"", {:git, @git_rebar_charlist, {:ref, ~c"64691eb"}}}) ==
99-
{:git_rebar, ~r"", override: true, git: @git_rebar_string, ref: "64691eb"}
97+
assert Regex.source(regex) == "0.1..*"
10098

101-
assert parse_dep(:git_rebar) == {:git_rebar, override: true}
99+
assert {:git_rebar, regex, override: true, git: @git_rebar_string, ref: "main"} =
100+
parse_dep({:git_rebar, ~c"0.1..*", {:git, @git_rebar_charlist, :main}})
101+
102+
assert Regex.source(regex) == "0.1..*"
103+
104+
assert {:git_rebar, regex, override: true, git: @git_rebar_string, ref: "64691eb"} =
105+
parse_dep({:git_rebar, ~c"", {:git, @git_rebar_charlist, {:ref, ~c"64691eb"}}})
106+
107+
assert Regex.source(regex) == ""
102108
end
103109
end
104110

lib/mix/test/mix/tasks/test_test.exs

Lines changed: 1 addition & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -286,61 +286,7 @@ defmodule Mix.Tasks.TestTest do
286286

287287
Port.command(port, "\n")
288288

289-
assert receive_until_match(port, "No stale tests", "") =~ "Restarting..."
290-
end)
291-
end
292-
293-
@tag :unix
294-
test "does not exit on compilation failure" do
295-
in_fixture("test_stale", fn ->
296-
File.write!("lib/b.ex", """
297-
defmodule B do
298-
def f, do: error_not_a_var
299-
end
300-
""")
301-
302-
port = mix_port(~w[test --listen-on-stdin])
303-
304-
assert receive_until_match(port, "error", "") =~ "lib/b.ex"
305-
306-
File.write!("lib/b.ex", """
307-
defmodule B do
308-
def f, do: A.f
309-
end
310-
""")
311-
312-
Port.command(port, "\n")
313-
314-
assert receive_until_match(port, "0 failures", "") =~ "2 tests"
315-
316-
File.write!("test/b_test_stale.exs", """
317-
defmodule BTest do
318-
use ExUnit.Case
319-
320-
test "f" do
321-
assert B.f() == error_not_a_var
322-
end
323-
end
324-
""")
325-
326-
Port.command(port, "\n")
327-
328-
message = "undefined variable \"error_not_a_var\""
329-
assert receive_until_match(port, message, "") =~ "test/b_test_stale.exs"
330-
331-
File.write!("test/b_test_stale.exs", """
332-
defmodule BTest do
333-
use ExUnit.Case
334-
335-
test "f" do
336-
assert B.f() == :ok
337-
end
338-
end
339-
""")
340-
341-
Port.command(port, "\n")
342-
343-
assert receive_until_match(port, "0 failures", "") =~ "2 tests"
289+
assert receive_until_match(port, "Restarting...", "") =~ "Restarting..."
344290
end)
345291
end
346292
end

0 commit comments

Comments
 (0)