| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| apply plugin: 'java-library' |
| |
| description = 'Analyzers for indexing content in different languages and domains' |
| |
| dependencies { |
| api project(':lucene:core') |
| testImplementation project(':lucene:test-framework') |
| } |
| |
| // Fetch the data and enable regression tests against woorm/ libreoffice dictionaries. |
| task checkoutHunspellRegressionRepos() { |
| ext { |
| checkoutDir = file("${buildDir}/hunspell-regressions") |
| } |
| |
| outputs.dir checkoutDir |
| doFirst { |
| // Clone the repositories we need if they don't exist. |
| [ |
| "libreoffice": "https://github.com/LibreOffice/dictionaries", |
| "woorm": "https://github.com/wooorm/dictionaries" |
| ].each { name, repo -> |
| if (!file("${checkoutDir}/${name}").exists()) { |
| checkoutDir.mkdirs() |
| // This will work only if git is available, but I assume it is. |
| project.exec { |
| executable "git" |
| ignoreExitValue false |
| workingDir checkoutDir |
| args = [ "clone", "--depth=1", repo, name ] |
| } |
| } |
| } |
| } |
| } |
| |
| task testRegressions(type: Test) { |
| group "Verification" |
| description "Run Hunspell regression tests against Woorm/ LibreOffice git repositories." |
| |
| dependsOn checkoutHunspellRegressionRepos |
| |
| failFast = true |
| include "**/TestAllDictionaries*" |
| |
| systemProperty "hunspell.dictionaries", checkoutHunspellRegressionRepos.checkoutDir |
| |
| doFirst { |
| logger.lifecycle("Running Hunspell regression tests...") |
| } |
| } |
| |
| // Pass all hunspell-tests-specific project properties to tests as system properties. |
| tasks.withType(Test) { |
| [ |
| "hunspell.dictionaries", |
| "hunspell.corpora", |
| "hunspell.repo.path" |
| ].each { |
| def val = propertyOrDefault(it, null) |
| if (val != null) { |
| logger.lifecycle("Passing property: ${it}=${val}") |
| systemProperty it, val |
| } |
| } |
| } |