File 1244-Add-tests-for-schema-merge-when-using-external-backe.patch of Package erlang
From 95726dc41669b30366e9fc58c651c18b3ec3b707 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20W=C4=85sowski?= <michal@erlang.org>
Date: Thu, 6 Mar 2025 09:19:26 +0100
Subject: [PATCH 2/2] Add tests for schema merge when using external backend
---
.../test/mnesia_external_backend_test.erl | 22 +++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/lib/mnesia/test/mnesia_external_backend_test.erl b/lib/mnesia/test/mnesia_external_backend_test.erl
index 0fcb075ea8..f0a58b16d6 100644
--- a/lib/mnesia/test/mnesia_external_backend_test.erl
+++ b/lib/mnesia/test/mnesia_external_backend_test.erl
@@ -27,7 +27,8 @@
-export([
conversion_from_external_to_disc_copies_should_not_result_in_data_loss_after_node_restart/1,
backup_and_restore_should_work_with_external_backend/1,
- schema_creation_should_work_when_external_tables_exist/1
+ schema_creation_should_work_when_external_tables_exist/1,
+ schema_merge_should_work_when_node_is_removed_from_the_cluster_and_later_rejoins/1
]).
-include("mnesia_test_lib.hrl").
@@ -37,7 +38,8 @@
all() -> [
conversion_from_external_to_disc_copies_should_not_result_in_data_loss_after_node_restart,
backup_and_restore_should_work_with_external_backend,
- schema_creation_should_work_when_external_tables_exist
+ schema_creation_should_work_when_external_tables_exist,
+ schema_merge_should_work_when_node_is_removed_from_the_cluster_and_later_rejoins
].
groups() ->
@@ -166,6 +168,22 @@ schema_creation_should_work_when_external_tables_exist(Config) when is_list(Conf
Ext = proplists:get_value(default_properties, Config, ?BACKEND),
?match(ok, mnesia:create_schema([Node], Ext)).
+schema_merge_should_work_when_node_is_removed_from_the_cluster_and_later_rejoins(Config) when is_list(Config) ->
+ [N1, N2] = All = ?acquire_nodes(2, Config),
+
+ ?match({atomic,ok}, mnesia:create_table(table, [
+ {type, set},
+ {record_name, some_rec},
+ {attributes, record_info(fields, some_rec)},
+ {ext_ram_copies, [N1, N2]}
+ ])),
+
+ ?match([], mnesia_test_lib:kill_mnesia([N2])),
+ ?match({atomic, ok}, mnesia:del_table_copy(schema, N2)),
+
+ ?match([], mnesia_test_lib:start_mnesia([N2])),
+ ?verify_mnesia(All, []).
+
load_backup(BUP) ->
?match(ok, mnesia:install_fallback(BUP)),
?match(stopped, mnesia:stop()),
--
2.43.0