Xfce updates 2024-12-27 (#368555)
[NixPkgs.git] / nixos / tests / spark / default.nix
blob9c6725d460e94658ed33b80b764f6f460e173903
1 { pkgs, ... }:
3 let
4   inherit (pkgs) lib;
5   tests = {
6     default = testsForPackage { sparkPackage = pkgs.spark; };
7   };
9   testsForPackage =
10     args:
11     lib.recurseIntoAttrs {
12       sparkCluster = testSparkCluster args;
13       passthru.override = args': testsForPackage (args // args');
14     };
15   testSparkCluster =
16     { sparkPackage, ... }:
17     pkgs.testers.nixosTest ({
18       name = "spark";
20       nodes = {
21         worker =
22           { nodes, pkgs, ... }:
23           {
24             services.spark = {
25               package = sparkPackage;
26               worker = {
27                 enable = true;
28                 master = "master:7077";
29               };
30             };
31             virtualisation.memorySize = 2048;
32           };
33         master =
34           { config, pkgs, ... }:
35           {
36             services.spark = {
37               package = sparkPackage;
38               master = {
39                 enable = true;
40                 bind = "0.0.0.0";
41               };
42             };
43             networking.firewall.allowedTCPPorts = [
44               22
45               7077
46               8080
47             ];
48           };
49       };
51       testScript = ''
52         master.wait_for_unit("spark-master.service")
53         worker.wait_for_unit("spark-worker.service")
54         worker.copy_from_host( "${./spark_sample.py}", "/spark_sample.py" )
55         assert "<title>Spark Master at spark://" in worker.succeed("curl -sSfkL http://master:8080/")
56         worker.succeed("spark-submit --version | systemd-cat")
57         worker.succeed("spark-submit --master spark://master:7077 --executor-memory 512m --executor-cores 1 /spark_sample.py")
58       '';
59     });
61 tests