mirror of https://github.com/apache/lucene.git
LUCENE-9792: add testRegressions task that downloads and runs hunspell regression tests. (#2407)
This commit is contained in:
parent
31a64927a4
commit
515a41dee9
|
@ -0,0 +1,36 @@
|
||||||
|
name: Hunspell regression tests
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- 'master'
|
||||||
|
paths:
|
||||||
|
- '.github/workflows/hunspell.yml'
|
||||||
|
- 'lucene/analysis/common/**'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
name: Run Hunspell regression tests
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up JDK 11
|
||||||
|
uses: actions/setup-java@v1
|
||||||
|
with:
|
||||||
|
java-version: 11
|
||||||
|
- name: Grant execute permission for gradlew
|
||||||
|
run: chmod +x gradlew
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.gradle/caches
|
||||||
|
key: ${{ runner.os }}-gradle-solrj-${{ hashFiles('versions.lock') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-gradle-solrj-
|
||||||
|
${{ runner.os }}-gradle-
|
||||||
|
- name: Initialize gradle settings
|
||||||
|
run: ./gradlew localSettings
|
||||||
|
- name: Run regular and regression tests
|
||||||
|
run: ./gradlew -p lucene/analysis/common check testRegressions
|
|
@ -24,6 +24,49 @@ dependencies {
|
||||||
testImplementation project(':lucene:test-framework')
|
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.
|
// Pass all hunspell-tests-specific project properties to tests as system properties.
|
||||||
tasks.withType(Test) {
|
tasks.withType(Test) {
|
||||||
[
|
[
|
||||||
|
|
Loading…
Reference in New Issue