Commit 68768c95 authored by superherointj's avatar superherointj Committed by superherointj
Browse files

etcd: refactor tests for all versions

parent 9b09e0ee
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -516,8 +516,7 @@ in
  ergochat = runTest ./ergochat.nix;
  esphome = runTest ./esphome.nix;
  etc = pkgs.callPackage ../modules/system/etc/test.nix { inherit evalMinimalConfig; };
  etcd = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./etcd/etcd.nix;
  etcd-cluster = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./etcd/etcd-cluster.nix;
  etcd = import ./etcd/default.nix { inherit pkgs runTest; };
  etebase-server = runTest ./etebase-server.nix;
  etesync-dav = runTest ./etesync-dav.nix;
  evcc = runTest ./evcc.nix;
+43 −0
Original line number Diff line number Diff line
{
  pkgs,
  runTest,
  ...
}:

let
  testEtcd =
    path: oPkgs:
    runTest (
      let
        etcdPkgs = pkgs // oPkgs;
      in
      pkgs.lib.recursiveUpdate {
        meta = {
          maintainers = etcdPkgs.etcd.meta.maintainers;
          platforms = [
            "aarch64-linux"
            "x86_64-linux"
          ];
        };
      } (import path etcdPkgs)
    );
  testEtcdPkg = pkg: path: testEtcd path { etcd = pkg; };
  testEtcd_3_4 = testEtcdPkg pkgs.etcd_3_4;
  testEtcd_3_5 = testEtcdPkg pkgs.etcd_3_5;
  testEtcd_3_6 = testEtcdPkg pkgs.etcd_3_6;
in

{
  "3_4" = {
    multi-node = testEtcd_3_4 ./multi-node.nix;
    single-node = testEtcd_3_4 ./single-node.nix;
  };
  "3_5" = {
    multi-node = testEtcd_3_5 ./multi-node.nix;
    single-node = testEtcd_3_5 ./single-node.nix;
  };
  "3_6" = {
    multi-node = testEtcd_3_6 ./multi-node.nix;
    single-node = testEtcd_3_6 ./single-node.nix;
  };
}
+5 −5
Original line number Diff line number Diff line
# This test runs simple etcd cluster
{ pkgs, etcd, ... }:

{ lib, pkgs, ... }:
let
  runWithOpenSSL =
    file: cmd:
@@ -77,6 +76,7 @@ let
    services = {
      etcd = {
        enable = true;
        package = etcd;
        keyFile = etcd_key;
        certFile = etcd_cert;
        trustedCaFile = ca_pem;
@@ -99,10 +99,9 @@ let
    networking.firewall.allowedTCPPorts = [ 2380 ];
  };
in
{
  name = "etcd-cluster";

  meta.maintainers = with lib.maintainers; [ offline ];
{
  name = "etcd-multi-node";

  nodes = {
    node1 =
@@ -170,4 +169,5 @@ in
        node1.succeed("etcdctl put /foo/bar 'Hello degraded world'")
        node1.succeed("etcdctl get /foo/bar | grep 'Hello degraded world'")
  '';

}
+8 −5
Original line number Diff line number Diff line
# This test runs simple etcd node
{ lib, ... }:
{ etcd, ... }:

{
  name = "etcd";
  meta.maintainers = with lib.maintainers; [ offline ];
  name = "etcd-single-node";

  nodes.node = {
    services.etcd.enable = true;
    services.etcd = {
      enable = true;
      package = etcd;
    };
  };

  testScript = ''
@@ -19,4 +21,5 @@
        node.succeed("etcdctl put /foo/bar 'Hello world'")
        node.succeed("etcdctl get /foo/bar | grep 'Hello world'")
  '';

}
+3 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@
  lib,
  buildGoModule,
  fetchFromGitHub,
  nixosTests,
}:

buildGoModule rec {
@@ -36,6 +37,8 @@ buildGoModule rec {
    install -Dm755 bin/* bin/functional/cmd/* -t $out/bin
  '';

  passthru.tests = nixosTests.etcd."3_4";

  meta = {
    description = "Distributed reliable key-value store for the most critical data of a distributed system";
    downloadPage = "https://github.com/etcd-io/etcd/";
Loading