@@ -242,15 +242,17 @@ Release builds automatically extract debug symbols:
242242## Development Workflow
243243
244244### Running Single Tests
245- Use project properties to filter tests (config-specific test tasks use Exec, not Test) :
245+ Use Gradle's standard ` -- tests` flag across all platforms :
246246``` bash
247- ./gradlew :ddprof-test:testdebug -Ptests=ClassName.methodName # Single method
248- ./gradlew :ddprof-test:testdebug -Ptests=ClassName # Entire class
247+ ./gradlew :ddprof-test:testdebug --tests=ClassName.methodName # Single method
248+ ./gradlew :ddprof-test:testdebug --tests=ClassName # Entire class
249+ ./gradlew :ddprof-test:testdebug --tests=" *.ClassName" # Pattern matching
249250```
250251
251- ** Note** : Use ` -Ptests ` (not ` --tests ` ) because config-specific test tasks (testdebug, testrelease)
252- use Gradle's Exec task type to bypass toolchain issues on musl systems. The ` --tests ` flag only
253- works with Gradle's Test task type.
252+ ** Platform Implementation Details:**
253+ - ** glibc/macOS** : Test tasks use Gradle's native Test task type with direct ` --tests ` flag support
254+ - ** musl (Alpine)** : Test tasks delegate to Exec tasks internally (workaround for Gradle 9 toolchain probe issues on musl)
255+ - ** Result** : Unified ` --tests ` flag works identically across all platforms, no platform-specific syntax required
254256
255257### Working with Native Code
256258Native compilation is automatic during build. C++ code changes require:
@@ -644,11 +646,11 @@ The CI caches JDKs via `.github/workflows/cache_java.yml`. When adding a new JDK
644646 ` ` `
645647 - Instead of:
646648 ` ` ` bash
647- ./gradlew :ddprof-test:testdebug -Ptests =MuslDetectionTest
649+ ./gradlew :ddprof-test:testdebug --tests =MuslDetectionTest
648650 ` ` `
649651 use:
650652 ` ` ` bash
651- ./.claude/commands/build-and-summarize :ddprof-test:testdebug -Ptests =MuslDetectionTest
653+ ./.claude/commands/build-and-summarize :ddprof-test:testdebug --tests =MuslDetectionTest
652654 ` ` `
653655
654656- This ensures the full build log is captured to a file and only a summary is shown in the main session.
0 commit comments