From 928bda2e439285ef3e662290c0cc6b782909fb82 Mon Sep 17 00:00:00 2001 From: Mark Felder Date: Wed, 20 Dec 2023 17:49:30 -0500 Subject: [PATCH] Fix invalid string comparison for OTP versions and replace with config Old way was wrong for multiple reasons. If we do this as a config value it fixes :slave.start/3 being picked up as a compile warning on OTP26. Also if we want to do any real clustering we'll need something like this to support OTP25 and older. --- changelog.d/fix-otp-comparison.skip | 0 config/test.exs | 9 +++++++++ test/support/cluster.ex | 14 +++++--------- 3 files changed, 14 insertions(+), 9 deletions(-) create mode 100644 changelog.d/fix-otp-comparison.skip diff --git a/changelog.d/fix-otp-comparison.skip b/changelog.d/fix-otp-comparison.skip new file mode 100644 index 000000000..e69de29bb diff --git a/config/test.exs b/config/test.exs index 8a42b863a..60cdacb0e 100644 --- a/config/test.exs +++ b/config/test.exs @@ -153,6 +153,15 @@ config :pleroma, Pleroma.Upload, config_impl: Pleroma.UnstubbedConfigMock config :pleroma, Pleroma.ScheduledActivity, config_impl: Pleroma.UnstubbedConfigMock config :pleroma, Pleroma.Web.RichMedia.Helpers, config_impl: Pleroma.StaticStubbedConfigMock +peer_module = + if String.to_integer(System.otp_release()) >= 25 do + :peer + else + :slave + end + +config :pleroma, Pleroma.Cluster, peer_module: peer_module + if File.exists?("./config/test.secret.exs") do import_config "test.secret.exs" else diff --git a/test/support/cluster.ex b/test/support/cluster.ex index 25170163f..a0ec91168 100644 --- a/test/support/cluster.ex +++ b/test/support/cluster.ex @@ -223,17 +223,13 @@ defmodule Pleroma.Cluster do |> String.to_atom() end - if System.otp_release() >= "25" do - @peer :peer - else - @peer :slave - end - defp do_start_slave(%{host: host, name: name, args: args} = opts) do - if System.otp_release() >= "25" do - @peer.start(opts) + peer_module = Application.get_env(__MODULE__, :peer_module) + + if peer_module == :peer do + peer_module.start(opts) else - @peer.start(host, name, args) + peer_module.start(host, name, args) end end end