lucenenet
lucenenet copied to clipboard
Documentation/Analysis for "System Properties"
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.