<commit_before>{ pkgs, ... }:

{
  nodes = {
    storage = 
      {pkgs, config, ...}:
      {
        services.portmap.enable = true;
        services.nfsKernel.enable = true;
        services.nfsKernel.exports = ''
          /repos 192.168.1.0/255.255.255.0(rw,no_root_squash)
        '';
        services.nfsKernel.createMountPoints = true;
      };

    postgresql =
      {config, pkgs, ...}:
      {
        services.sshd.enable = true;
        services.postgresql.enable = true;
        services.postgresql.enableTCPIP = true;
        services.postgresql.authentication = ''
          # Generated file; do not edit!
          local all all                trust
          host  all all 127.0.0.1/32   trust
          host  all all ::1/128        trust
          host  all all 192.168.1.0/24 trust
        '';
      };

    webserver = 
      {config, pkgs, ...}:
      {
        fileSystems = pkgs.lib.mkOverride 50 {} 
          [ { mountPoint = "/repos";
              device = "storage:/repos"; } 
          ];
      
        services.portmap.enable = true;
        services.httpd.enable = true;
        services.httpd.adminAddr = "root@localhost";
        services.httpd.extraSubservices = [ { serviceType = "trac"; } ];
        environment.systemPackages = [ pkgs.pythonPackages.trac pkgs.subversion ];
      };
      
    client = 
      {config, pkgs, ...}:
      {
        require = [ ./common/x11.nix ];
        services.xserver.desktopManager.kde4.enable = true;
      };
  };
    
  testScript =
    ''
      startAll;
      
      $postgresql->waitForJob("postgresql");
      sleep 10; # !!! should not be needed
      $postgresql->mustSucceed("createdb trac");
      
      $webserver->mustSucceed("mkdir -p /repos/trac");
      $webserver->mustSucceed("svnadmin create /repos/trac");
      
      $webserver->waitForFile("/var/trac");      
      $webserver->mustSucceed("mkdir -p /var/trac/projects/test");
      $webserver->mustSucceed("PYTHONPATH=${pkgs.pythonPackages.psycopg2}/lib/${pkgs.python.libPrefix}/site-packages trac-admin /var/trac/projects/test initenv Test postgres://root\@postgresql/trac svn /repos/trac");
      
      $client->waitForX;
      $client->execute("konqueror http://webserver/projects/test &");
      $client->waitForWindow(qr/Test.*Konqueror/);
      sleep 30; # loading takes a long time
      
      $client->screenshot("screen");
    '';
}<commit_msg>* Remove a sleep that hopefully is no longer needed.<commit_after>{ pkgs, ... }:

{
  nodes = {
    storage = 
      {pkgs, config, ...}:
      {
        services.portmap.enable = true;
        services.nfsKernel.enable = true;
        services.nfsKernel.exports = ''
          /repos 192.168.1.0/255.255.255.0(rw,no_root_squash)
        '';
        services.nfsKernel.createMountPoints = true;
      };

    postgresql =
      {config, pkgs, ...}:
      {
        services.sshd.enable = true;
        services.postgresql.enable = true;
        services.postgresql.enableTCPIP = true;
        services.postgresql.authentication = ''
          # Generated file; do not edit!
          local all all                trust
          host  all all 127.0.0.1/32   trust
          host  all all ::1/128        trust
          host  all all 192.168.1.0/24 trust
        '';
      };

    webserver = 
      {config, pkgs, ...}:
      {
        fileSystems = pkgs.lib.mkOverride 50 {} 
          [ { mountPoint = "/repos";
              device = "storage:/repos"; } 
          ];
      
        services.portmap.enable = true;
        services.httpd.enable = true;
        services.httpd.adminAddr = "root@localhost";
        services.httpd.extraSubservices = [ { serviceType = "trac"; } ];
        environment.systemPackages = [ pkgs.pythonPackages.trac pkgs.subversion ];
      };
      
    client = 
      {config, pkgs, ...}:
      {
        require = [ ./common/x11.nix ];
        services.xserver.desktopManager.kde4.enable = true;
      };
  };
    
  testScript =
    ''
      startAll;
      
      $postgresql->waitForJob("postgresql");
      $postgresql->mustSucceed("createdb trac");
      
      $webserver->mustSucceed("mkdir -p /repos/trac");
      $webserver->mustSucceed("svnadmin create /repos/trac");
      
      $webserver->waitForFile("/var/trac");      
      $webserver->mustSucceed("mkdir -p /var/trac/projects/test");
      $webserver->mustSucceed("PYTHONPATH=${pkgs.pythonPackages.psycopg2}/lib/${pkgs.python.libPrefix}/site-packages trac-admin /var/trac/projects/test initenv Test postgres://root\@postgresql/trac svn /repos/trac");
      
      $client->waitForX;
      $client->execute("konqueror http://webserver/projects/test &");
      $client->waitForWindow(qr/Test.*Konqueror/);
      sleep 30; # loading takes a long time
      
      $client->screenshot("screen");
    '';
}
{'fraction_non_alphanumeric': 0.14282744282744284, 'fraction_numerical': 0.020374220374220375, 'mean_word_length': 1.9210686095931997, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 25, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 8, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7341268', 'n_tokens_mistral': 1636, 'n_tokens_neox': 1518, 'n_words': 241}