Compare commits

...
Author SHA1 Message Date
Ginger dee936813c fix: Update comment in src/core/config/mod.rs 2025-12-15 09:56:18 -05:00
aviac 2cf0923386 test: add test for config with default_room_version
This commit refactors the test a bit to run the basic test script with
different configs. Currently we have two configs we test:

- the bare minimum to make it run (base)
- base + default_room_version set to "12"
2025-12-11 09:36:06 +01:00
aviac 26483e17ad docs: Add note about the type of the default_room_version option 2025-12-11 09:35:43 +01:00
3 changed files with 128 additions and 96 deletions
+5 -2
View File
@@ -586,10 +586,13 @@
#allow_unstable_room_versions = true #allow_unstable_room_versions = true
# Default room version continuwuity will create rooms with. # Default room version continuwuity will create rooms with.
# Note that this has to be a string since the room version is a string
# rather than an integer. Forgetting the quotes will make the server fail
# to start!
# #
# Per spec, room version 11 is the default. # Per spec, room version "11" is the default.
# #
#default_room_version = 11 #default_room_version = "11"
# Enable OpenTelemetry OTLP tracing export. This replaces the deprecated # Enable OpenTelemetry OTLP tracing export. This replaces the deprecated
# Jaeger exporter. Traces will be sent via OTLP to a collector (such as # Jaeger exporter. Traces will be sent via OTLP to a collector (such as
+67 -41
View File
@@ -6,43 +6,10 @@
pkgs, pkgs,
... ...
}: }:
{ let
# run some nixos tests as checks baseTestScript =
checks = lib.pipe self'.packages [ pkgs.writers.writePython3Bin "do_test" { libraries = [ pkgs.python3Packages.matrix-nio ]; }
# we take all packages (names) ''
builtins.attrNames
# we filter out all packages that end with `-bin` (which we are interested in for testing)
(builtins.filter (lib.hasSuffix "-bin"))
# for each of these binaries we built the basic nixos test
#
# this test was initially yoinked from
#
# https://github.com/NixOS/nixpkgs/blob/960ce26339661b1b69c6f12b9063ca51b688615f/nixos/tests/matrix/continuwuity.nix
(builtins.map (name: {
name = "test-${name}";
value = pkgs.testers.runNixOSTest {
inherit name;
nodes = {
continuwuity = {
services.matrix-continuwuity = {
enable = true;
package = self'.packages.${name};
settings.global = {
server_name = name;
address = [ "0.0.0.0" ];
allow_registration = true;
yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse = true;
};
extraEnvironment.RUST_BACKTRACE = "yes";
};
networking.firewall.allowedTCPPorts = [ 6167 ];
};
client =
{ pkgs, ... }:
{
environment.systemPackages = [
(pkgs.writers.writePython3Bin "do_test" { libraries = [ pkgs.python3Packages.matrix-nio ]; } ''
import asyncio import asyncio
import nio import nio
@@ -100,9 +67,41 @@
if __name__ == "__main__": if __name__ == "__main__":
asyncio.run(main()) asyncio.run(main())
'') '';
]; in
{
# run some nixos tests as checks
checks = lib.pipe self'.packages [
# we take all packages (names)
builtins.attrNames
# we filter out all packages that end with `-bin` (which we are interested in for testing)
(builtins.filter (lib.hasSuffix "-bin"))
# for each of these binaries we built the basic nixos test
#
# this test was initially yoinked from
#
# https://github.com/NixOS/nixpkgs/blob/960ce26339661b1b69c6f12b9063ca51b688615f/nixos/tests/matrix/continuwuity.nix
(builtins.concatMap (
name:
builtins.map
(
{ config, suffix }:
{
name = "test-${name}-${suffix}";
value = pkgs.testers.runNixOSTest {
inherit name;
nodes = {
continuwuity = {
services.matrix-continuwuity = {
enable = true;
package = self'.packages.${name};
settings = config;
extraEnvironment.RUST_BACKTRACE = "yes";
}; };
networking.firewall.allowedTCPPorts = [ 6167 ];
};
client.environment.systemPackages = [ baseTestScript ];
}; };
testScript = '' testScript = ''
@@ -113,11 +112,38 @@
continuwuity.wait_for_open_port(6167) continuwuity.wait_for_open_port(6167)
with subtest("ensure messages can be exchanged"): with subtest("ensure messages can be exchanged"):
client.succeed("do_test >&2") client.succeed("${lib.getExe baseTestScript} >&2")
''; '';
}; };
})) }
)
[
{
suffix = "base";
config = {
global = {
server_name = name;
address = [ "0.0.0.0" ];
allow_registration = true;
yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse = true;
};
};
}
{
suffix = "with-room-version";
config = {
global = {
server_name = name;
address = [ "0.0.0.0" ];
allow_registration = true;
yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse = true;
default_room_version = "12";
};
};
}
]
))
builtins.listToAttrs builtins.listToAttrs
]; ];
}; };
+5 -2
View File
@@ -703,10 +703,13 @@ pub struct Config {
pub allow_unstable_room_versions: bool, pub allow_unstable_room_versions: bool,
/// Default room version continuwuity will create rooms with. /// Default room version continuwuity will create rooms with.
/// Note that this has to be a string since the room version is a string
/// rather than an integer. Forgetting the quotes will make the server fail
/// to start!
/// ///
/// Per spec, room version 11 is the default. /// Per spec, room version "11" is the default.
/// ///
/// default: 11 /// default: "11"
#[serde(default = "default_default_room_version")] #[serde(default = "default_default_room_version")]
pub default_room_version: RoomVersionId, pub default_room_version: RoomVersionId,