Skip to content

Share-ignore regression coverage and Release test-build stabilization

Summary

This CI slice adds regression coverage for the centralized share-ignore policy and stabilizes the Release emule-tests build against recurring MSVC LTCG internal compiler errors.

Added Coverage

Primary coverage files:

  • src/other_functions.tests.cpp
  • src/shared_file_list.tests.cpp

Covered behavior:

  • built-in junk-file positives and nearby-name negatives
  • additive shareignore.dat rule parsing
  • exact / prefix / suffix user-rule semantics
  • user rules applied to both files and directories
  • built-in junk-directory positives and nearby-name negatives
  • recursive shared-directory expansion skipping built-in and configured ignored directory names
  • existing real structured-storage thumbs.db regression retained

Oracle Compatibility

The new rule-driven shared-directory recursion test depends on SharedFileIntakePolicy.h, which is not present in older oracle variants.

To keep live-diff working:

  • the include is guarded with __has_include(...)
  • the new recursion test compiles only when both SharedDirectoryOps.h and SharedFileIntakePolicy.h are available

Release Build Stabilization

The Release emule-tests build was repeatedly failing in MSVC’s optimization pipeline with internal compiler errors in large test translation units.

The stable fix chosen here is:

  • disable WholeProgramOptimization for Release in emule-tests.vcxproj

This affects the test harness only, not the app build, and replaces a growing set of per-file exceptions with one predictable project rule.

Validation

Owned validation passed after the change:

  • python -m emule_workspace build tests
  • python -m emule_workspace test all

Observed parity result:

  • 378 passed
  • 39 skipped
  • 0 failed

Relationship To Other Items

  • backs FEAT-024
  • complements CI-008 by covering the new share-ignore policy surface rather than long-path core behavior