<commit_before>import ./make-test.nix ({ pkgs, ... }:

{
  name = "solr";
  meta.maintainers = [ pkgs.stdenv.lib.maintainers.aanderse ];

  machine =
    { config, pkgs, ... }:
    {
      # Ensure the virtual machine has enough memory for Solr to avoid the following error:
      #
      #   OpenJDK 64-Bit Server VM warning:
      #     INFO: os::commit_memory(0x00000000e8000000, 402653184, 0)
      #     failed; error='Cannot allocate memory' (errno=12)
      #
      #   There is insufficient memory for the Java Runtime Environment to continue.
      #   Native memory allocation (mmap) failed to map 402653184 bytes for committing reserved memory.
      virtualisation.memorySize = 2000;

      services.solr.enable = true;
    };

  testScript = ''
    startAll;

    $machine->waitForUnit('solr.service');
    $machine->waitForOpenPort('8983');
    $machine->succeed('curl --fail http://localhost:8983/solr/');

    # adapted from pkgs.solr/examples/films/README.txt
    $machine->succeed('sudo -u solr solr create -c films');
    $machine->succeed(q(curl http://localhost:8983/solr/films/schema -X POST -H 'Content-type:application/json' --data-binary '{
      "add-field" : {
        "name":"name",
        "type":"text_general",
        "multiValued":false,
        "stored":true
      },
      "add-field" : {
        "name":"initial_release_date",
        "type":"pdate",
        "stored":true
      }
    }')) =~ /"status":0/ or die;
    $machine->succeed('sudo -u solr post -c films ${pkgs.solr}/example/films/films.json');
    $machine->succeed('curl http://localhost:8983/solr/films/query?q=name:batman') =~ /"name":"Batman Begins"/ or die;
  '';
})<commit_msg>nixosTests.solr: Port to python<commit_after>import ./make-test-python.nix ({ pkgs, ... }:

{
  name = "solr";
  meta.maintainers = [ pkgs.stdenv.lib.maintainers.aanderse ];

  machine =
    { config, pkgs, ... }:
    {
      # Ensure the virtual machine has enough memory for Solr to avoid the following error:
      #
      #   OpenJDK 64-Bit Server VM warning:
      #     INFO: os::commit_memory(0x00000000e8000000, 402653184, 0)
      #     failed; error='Cannot allocate memory' (errno=12)
      #
      #   There is insufficient memory for the Java Runtime Environment to continue.
      #   Native memory allocation (mmap) failed to map 402653184 bytes for committing reserved memory.
      virtualisation.memorySize = 2000;

      services.solr.enable = true;
    };

  testScript = ''
    start_all()

    machine.wait_for_unit("solr.service")
    machine.wait_for_open_port(8983)
    machine.succeed("curl --fail http://localhost:8983/solr/")

    # adapted from pkgs.solr/examples/films/README.txt
    machine.succeed("sudo -u solr solr create -c films")
    assert '"status":0' in machine.succeed(
        """
      curl http://localhost:8983/solr/films/schema -X POST -H 'Content-type:application/json' --data-binary '{
        "add-field" : {
          "name":"name",
          "type":"text_general",
          "multiValued":false,
          "stored":true
        },
        "add-field" : {
          "name":"initial_release_date",
          "type":"pdate",
          "stored":true
        }
      }'
    """
    )
    machine.succeed(
        "sudo -u solr post -c films ${pkgs.solr}/example/films/films.json"
    )
    assert '"name":"<NAME>"' in machine.succeed(
        "curl http://localhost:8983/solr/films/query?q=name:batman"
    )
  '';
})
{'fraction_non_alphanumeric': 0.1478361893697357, 'fraction_numerical': 0.03485332558814987, 'mean_word_length': 2.5468589083419158, 'pattern_counts': {'":': 18, '<': 4, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 2, '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': '4399452', 'n_tokens_mistral': 1251, 'n_tokens_neox': 1107, 'n_words': 235}