Skip to content

Commit

Permalink
x
Browse files Browse the repository at this point in the history
  • Loading branch information
rzo1 committed Jan 17, 2025
1 parent a2fa96f commit b314f06
Show file tree
Hide file tree
Showing 2 changed files with 102 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,70 @@ jobs:
- name: Run Bats Tests
run: |
bats ./opennlp-distr/src/test/sh
env:
JAVA_HOME: ${{ env.JAVA_HOME }}
OPENNLP_HOME: ${{ env.OPENNLP_HOME }}

test-windows-shell:
name: Test opennlp.bat on Windows
runs-on: windows-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

# Install Pester for PowerShell testing
- name: Install Pester
run: |
Install-Module -Name Pester -Force -Scope CurrentUser
Import-Module Pester
shell: pwsh

# Set up JDK 17 for Windows (using Temurin distribution)
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17

# Build with Maven (same as the Linux setup)
- name: Build with Maven
run: mvn -V clean install --no-transfer-progress -Pci -DskipTests=true

# Find and Extract OpenNLP Distribution
- name: Find and Extract OpenNLP Distribution
run: |
# Find the first non-src .tar.gz file in the target directory
$TAR_FILE = Get-ChildItem -Path opennlp-distr/target -Filter "*.tar.gz" | Where-Object { $_.Name -notlike "*-src*" } | Select-Object -First 1
# Ensure we found a file
if (-not $TAR_FILE) {
Write-Error "Error: No matching tar.gz file found in opennlp-distr/target"
exit 1
}
# Extract the tar.gz file
$Destination = "$env:USERPROFILE"
tar -xzf $TAR_FILE.FullName -C $Destination
# Get the directory name of the extracted content
$EXTRACTED_DIR = (tar -tf $TAR_FILE.FullName | Select-Object -First 1).Split('/')[0]
# Set OPENNLP_HOME dynamically
echo "OPENNLP_HOME=$env:USERPROFILE\$EXTRACTED_DIR" >> $GITHUB_ENV
echo "$env:USERPROFILE\$EXTRACTED_DIR\bin" >> $GITHUB_PATH
# Verify Extraction
- name: Verify Extraction
run: |
echo "OPENNLP_HOME: $env:OPENNLP_HOME"
dir $env:OPENNLP_HOME\bin
# Run Pester Tests for opennlp.bat
- name: Run Pester Tests
run: |
Invoke-Pester -Script "./opennlp-distr/test/ps/test_opennlp.Tests.ps1" -Output Detailed
shell: pwsh
env:
JAVA_HOME: ${{ env.JAVA_HOME }}
OPENNLP_HOME: ${{ env.OPENNLP_HOME }}
38 changes: 38 additions & 0 deletions opennlp-distr/src/test/ps/test_opennlp.Tests.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
Describe "opennlp.bat Tests" {

# Setup before all tests
BeforeAll {
$env:PATH = "$env:OPENNLP_HOME\bin;$env:PATH"
}

# Test if opennlp.bat is accessible and executable
It "opennlp.bat exists and is executable" {
$batFile = Join-Path $env:OPENNLP_HOME "bin\opennlp.bat"
$batFile | Should -Exist

# Check if the bat file is executable (on Windows, this means it's a valid executable script)
$result = & $batFile -h
$result | Should -Not -BeNullOrEmpty
}

# Test the output of SimpleTokenizer
It "SimpleTokenizer produces correct output" {
$input = "Hello, friends"
$expected_output = "Hello , friends"

# Run the opennlp.bat with SimpleTokenizer
$output = & "$env:OPENNLP_HOME\bin\opennlp.bat" SimpleTokenizer <<< $input

# Debugging: Log the output
Write-Host "Output: $output"

# Validate the command executed successfully
$output | Should -Not -BeNullOrEmpty
$output | Should -Contain $expected_output
}

# Cleanup after tests
AfterAll {
Remove-Item Env:\PATH -ErrorAction SilentlyContinue
}
}

0 comments on commit b314f06

Please sign in to comment.