Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation/Analysis for "System Properties" #307

Open
NightOwl888 opened this issue Jul 7, 2020 · 0 comments
Open

Documentation/Analysis for "System Properties" #307

NightOwl888 opened this issue Jul 7, 2020 · 0 comments
Labels
design docs Applies to the API docs or website pri:normal
Milestone

Comments

@NightOwl888
Copy link
Contributor

NightOwl888 commented Jul 7, 2020

We completed the "System Properties" feature in #254/#287, but we are lacking documentation on how end users can utilize it, in particular for the test framework. Here are a list of the properties that exist and their defaults, however, not all of them apply to the .NET port.

{
    "smartcn:data:dir": "",
    "egothor:stemmer:charset": "UTF-8",
    "kuromoji:data:dir": "",
    "solr:test:leavetmpdir": null, // Doesn't apply to Lucene.NET
    "assert": false, // Turn on assertions (for testing/logging) in release build (.NET-only)
    "tests": {
        "asserts:gracious": "false", // Doesn't apply to Lucene.NET
        "awaitsfix": "false", // Includes tests marked with the [AwaitsFix] attribute in the test run
        "cleanthreads:sysprop": "perMethod", // Doesn't apply to Lucene.NET
        "codec": "random",  // Specifies a specific Codec subclass to use for the tests
        "directory": "random", // Specifies a specific Directory subclass to use for the tests
        "docvaluesformat": "random",  // Specifies a specific DocValuesFormat subclass to use for the tests
        "infostream": "${verbose}", // Boolean that specifies whether to log output to console
        "jvms": "auto", // Doesn't apply to Lucene.NET
        "jvms:override": "${jvms}", // Doesn't apply to Lucene.NET
        "leaveTemporary": null, // Skips deletion of files that were created during tests
        "leavetemporary": null, // Alias of above
        "leavetmpdir": null, // Alias of above
        "linedocsfile": "", // Specifies a specific LineDocsFile to use when running tests (may not be functional with external files)
        "locale": "random", // Specifies a specific culture to use when running tests (TODO: rename or alias "culture")
        "multiplier": "1", // Multiplier to scale random tests for more thorough (but longer) testing - used during nightly/weakly builds
        "nightly": "false", // Includes tests marked with the [Nightly] attribute in the test run
        "postingsformat": "random",  // Specifies a specific PostingsFormat subclass to use for the tests
        "seed": "", // Specifies a random seed to use during tests in hexadecimal format (not yet implemented - see #288)
        "slow": "true", // Includes tests marked with the [Slow] attribute in the test run
        "timezone": "random",  // Specifies a specific time zone to use for the tests (not xplat because of different naming conventions)
        "verbose": "false", // Use verbose logging
        "weekly": "false" // Includes tests marked with the [Weekly] attribute in the test run
    },
    "user:timezone": "random", // Doesn't apply to Lucene.NET,
    "maxStackByteLimit": "2048" // The maximum number of bytes used in stack allocations before falling back to the heap or pool
}

The most crucial thing here is to allow end users to specify a random seed and to print out the random seed that caused a failure (#288), but we should also look into setting up nightly and weekly builds to do more thorough testing (provided we get some credits to go over 1 hour for a job on Azure DevOps) and also look at putting in a switch to turn on/off long running tests.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
design docs Applies to the API docs or website pri:normal
Projects
None yet
Development

No branches or pull requests

1 participant