diff options
author | Johannes Schleifenbaum <johannes@js-webcoding.de> | 2021-05-30 17:32:41 +0200 |
---|---|---|
committer | Johannes Schleifenbaum <johannes@js-webcoding.de> | 2021-09-21 09:22:47 +0200 |
commit | c4d18b307115989c4198b2a0795f6367194ae513 (patch) | |
tree | 4a738f2da51e84e0548139e15204033818e6b3db /nixos/tests | |
parent | b8448def21e5c02728548a5a50236c0e4b5ba80d (diff) | |
download | nixlib-c4d18b307115989c4198b2a0795f6367194ae513.tar nixlib-c4d18b307115989c4198b2a0795f6367194ae513.tar.gz nixlib-c4d18b307115989c4198b2a0795f6367194ae513.tar.bz2 nixlib-c4d18b307115989c4198b2a0795f6367194ae513.tar.lz nixlib-c4d18b307115989c4198b2a0795f6367194ae513.tar.xz nixlib-c4d18b307115989c4198b2a0795f6367194ae513.tar.zst nixlib-c4d18b307115989c4198b2a0795f6367194ae513.zip |
nixos/pantalaimon: add test
Co-authored-by: sumnerevans <me@sumnerevans.com>
Diffstat (limited to 'nixos/tests')
-rw-r--r-- | nixos/tests/all-tests.nix | 1 | ||||
-rw-r--r-- | nixos/tests/matrix/pantalaimon.nix | 65 |
2 files changed, 66 insertions, 0 deletions
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 325caba07ea3..579f89e03d2c 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -336,6 +336,7 @@ in packagekit = handleTest ./packagekit.nix {}; pam-oath-login = handleTest ./pam-oath-login.nix {}; pam-u2f = handleTest ./pam-u2f.nix {}; + pantalaimon = handleTest ./matrix/pantalaimon.nix {}; pantheon = handleTest ./pantheon.nix {}; paperless-ng = handleTest ./paperless-ng.nix {}; parsedmarc = handleTest ./parsedmarc {}; diff --git a/nixos/tests/matrix/pantalaimon.nix b/nixos/tests/matrix/pantalaimon.nix new file mode 100644 index 000000000000..fcb9904b2138 --- /dev/null +++ b/nixos/tests/matrix/pantalaimon.nix @@ -0,0 +1,65 @@ +import ../make-test-python.nix ( + { pkgs, ... }: + let + pantalaimonInstanceName = "testing"; + + # Set up SSL certs for Synapse to be happy. + runWithOpenSSL = file: cmd: pkgs.runCommand file + { + buildInputs = [ pkgs.openssl ]; + } + cmd; + + ca_key = runWithOpenSSL "ca-key.pem" "openssl genrsa -out $out 2048"; + ca_pem = runWithOpenSSL "ca.pem" '' + openssl req \ + -x509 -new -nodes -key ${ca_key} \ + -days 10000 -out $out -subj "/CN=snakeoil-ca" + ''; + key = runWithOpenSSL "matrix_key.pem" "openssl genrsa -out $out 2048"; + csr = runWithOpenSSL "matrix.csr" '' + openssl req \ + -new -key ${key} \ + -out $out -subj "/CN=localhost" \ + ''; + cert = runWithOpenSSL "matrix_cert.pem" '' + openssl x509 \ + -req -in ${csr} \ + -CA ${ca_pem} -CAkey ${ca_key} \ + -CAcreateserial -out $out \ + -days 365 + ''; + in + { + name = "pantalaimon"; + meta = with pkgs.lib; { + maintainers = teams.matrix.members; + }; + + machine = { pkgs, ... }: { + services.pantalaimon-headless.instances.${pantalaimonInstanceName} = { + homeserver = "https://localhost:8448"; + listenAddress = "0.0.0.0"; + listenPort = 8888; + logLevel = "debug"; + ssl = false; + }; + + services.matrix-synapse = { + enable = true; + database_type = "sqlite3"; + tls_certificate_path = "${cert}"; + tls_private_key_path = "${key}"; + }; + }; + + testScript = '' + start_all() + machine.wait_for_unit("pantalaimon-${pantalaimonInstanceName}.service") + machine.wait_for_unit("matrix-synapse.service") + machine.wait_until_succeeds( + "curl --fail -L http://localhost:8888/" + ) + ''; + } +) |