馃敶 Required Information
Describe the Bug:
LocalSkillSource.listResources(skillName, resourceDirectory) turns each resource path, relative to the skill directory, into a string with Path.toString(), which uses the platform separator. On Windows it returns assets\file1.txt, while ClassPathSkillSource and InMemorySkillSource return assets/file1.txt for the same skill layout. So the result of SkillSource.listResources depends on both the implementation and the OS, and LocalSkillSourceTest.testListResources fails on Windows.
Steps to Reproduce:
- On Windows, check out
main (4092a1f).
- Run
./mvnw -pl core test -Dtest=LocalSkillSourceTest.
testListResources fails; see the log below.
Expected Behavior:
[assets/file1.txt, assets/subdir/file2.txt]: /-separated paths, as ClassPathSkillSource and InMemorySkillSource return and as the test expects. adk-python keys directory-loaded skill resources the same way since google/adk-python@bc2c97c ("Key directory-loaded skill resources with forward slashes").
Observed Behavior:
[assets\file1.txt, assets\subdir\file2.txt]
Environment Details:
- ADK Library Version (see maven dependency):
main at 4092a1f (1.10.1). The code has not changed since LocalSkillSource was added in 1.3.0.
- OS: Windows 11
- TS Version (tsc --version): N/A (Java: Microsoft OpenJDK 17.0.19; Maven 4.0.0-rc-3 via
mvnw)
Model Information:
- Which model is being used: N/A
馃煛 Optional Information
Regression:
No. LocalSkillSource has used Path.toString() here since it was added in 1.3.0.
Logs:
[ERROR] Failures:
[ERROR] LocalSkillSourceTest.testListResources:96 value of : blockingGet()
missing (2) : assets/file1.txt, assets/subdir/file2.txt
unexpected (2): assets\file1.txt, assets\subdir\file2.txt
---
expected : [assets/file1.txt, assets/subdir/file2.txt]
but was : [assets\file1.txt, assets\subdir\file2.txt]
[ERROR] Tests run: 21, Failures: 1, Errors: 0, Skipped: 0
Additional Context:
CI runs only on Ubuntu, where Path.toString() already uses /, so the test passes there. I have a one-line fix ready and will link the PR here.
How often has this issue occurred?:
馃敶 Required Information
Describe the Bug:
LocalSkillSource.listResources(skillName, resourceDirectory)turns each resource path, relative to the skill directory, into a string withPath.toString(), which uses the platform separator. On Windows it returnsassets\file1.txt, whileClassPathSkillSourceandInMemorySkillSourcereturnassets/file1.txtfor the same skill layout. So the result ofSkillSource.listResourcesdepends on both the implementation and the OS, andLocalSkillSourceTest.testListResourcesfails on Windows.Steps to Reproduce:
main(4092a1f)../mvnw -pl core test -Dtest=LocalSkillSourceTest.testListResourcesfails; see the log below.Expected Behavior:
[assets/file1.txt, assets/subdir/file2.txt]:/-separated paths, asClassPathSkillSourceandInMemorySkillSourcereturn and as the test expects. adk-python keys directory-loaded skill resources the same way since google/adk-python@bc2c97c ("Key directory-loaded skill resources with forward slashes").Observed Behavior:
[assets\file1.txt, assets\subdir\file2.txt]Environment Details:
mainat4092a1f(1.10.1). The code has not changed sinceLocalSkillSourcewas added in 1.3.0.mvnw)Model Information:
馃煛 Optional Information
Regression:
No.
LocalSkillSourcehas usedPath.toString()here since it was added in 1.3.0.Logs:
Additional Context:
CI runs only on Ubuntu, where
Path.toString()already uses/, so the test passes there. I have a one-line fix ready and will link the PR here.How often has this issue occurred?: