• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

vortex-data / vortex / 16914825851
88%

Build:
DEFAULT BRANCH: develop
Ran 12 Aug 2025 04:31PM UTC
Jobs 2
Files 639
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

12 Aug 2025 04:27PM UTC coverage: 87.299%. First build
16914825851

push

github

web-flow
chore: improve test coverage in vortex-scan (#4206)

## Overview

This PR significantly improves the `vortex-scan` crate by adding
exhaustive concurrency testing with Loom, comprehensive unit test
coverage, and complete documentation. The changes ensure the
work-stealing scanner is provably correct under all possible thread
interleavings while maintaining excellent performance.

## Major Changes

### 1. Loom Concurrency Testing Infrastructure

Added comprehensive Loom tests that exhaustively verify all concurrent
code paths:

- **13 specialized Loom tests** covering work-stealing, filter
expressions, and multi-scan operations
- **Tests run by default** - no feature flags required
- **Fast execution** - complete in ~6 seconds in release mode
- **Dedicated CI job** for Loom tests running on optimized Ubuntu 24
runners
- **`disable_loom` cfg flag** for environments incompatible with Loom
(e.g., address sanitizer)

#### Key Concurrent Behaviors Tested:
- Memory ordering between `num_factories_constructed` and task pushing
- TOCTOU (time-of-check-time-of-use) race prevention
- Work-stealing retry logic with multiple concurrent stealers
- Factory error recovery with proper counter increments
- Complex worker termination conditions
- Concurrent filter ordering updates with multiple readers/writers

### 2. Expanded Unit Test Coverage

Added comprehensive unit tests for previously untested components:

#### Arrow Integration (`arrow.rs`)
- RecordBatch conversion from Vortex arrays
- Error propagation in Arrow conversions
- Iterator adapter with mixed success/error scenarios
- Null value handling and schema validation

#### Filter Module (`filter.rs`)
- Concurrent selectivity reporting
- Conjunct reordering based on selectivity statistics
- Thread-safe histogram updates with RwLock patterns
- Edge cases with single and multiple conjuncts

#### Work Queue (`work_queue.rs`)
- Work stealing with empty factories
- Clone semantics for iterators
- Factory constructio... (continued)

1038 of 1058 new or added lines in 9 files covered. (98.11%)

56223 of 64403 relevant lines covered (87.3%)

627471.13 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
6
97.88
vortex-scan/src/selection.rs
6
82.18
vortex-scan/src/tasks.rs
8
98.26
vortex-scan/src/tests/loom.rs
Jobs
ID Job ID Ran Files Coverage
1 run-tests - 16914825851.1 12 Aug 2025 04:33PM UTC 639
85.26
GitHub Action Run
2 run-tpc-h - 16914825851.2 12 Aug 2025 04:31PM UTC 579
47.99
GitHub Action Run
Source Files on build 16914825851
  • Tree
  • List 639
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #16914825851
  • bbbacce8 on github
  • Prev Build on develop (#16914016615)
  • Next Build on develop (#16915465076)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc