When running Linux tests on Ubuntu with rpm tools installed, jpackage creates rpm bundles with wrong suffixes:
$ dpkg --print-architecture
amd64
$ rpm --eval=%{_target_cpu}
x86_64
Bundles created by jpackage:
DEB: SimplePackageTest/test/output/simplepackagetest_1.0_amd64.deb
RPM: SimplePackageTest/test/output/simplepackagetest-1.0-1.amd64.rpm
The expected RPM bundle name should be SimplePackageTest/test/output/simplepackagetest-1.0-1.x86_64.rpm
SimplePackageTest fails:
[14:27:53.674] Command [PID: 6771]:
rpm -qp --queryformat %{Name}\n%{Version}\n%{Release}\n%{Arch} SimplePackageTest/test/output/simplepackagetest-1.0-1.amd64.rpm
[14:27:53.674] Output:
simplepackagetest
1.0
1
x86_64
[14:27:53.674] Returned: 0
[14:27:53.675] Expected value of "Arch" property is [amd64]. Actual value in output package is [x86_64]. Looks like custom "simplepackagetest.spec" file from resource directory contained hard coded value of "Arch" property
[14:27:53.675] Dont explicitly set value of {0} property in custom "{1}" file
[14:27:53.690] TRACE: exec: Done. Exit code: 0
[14:27:53.692] TRACE: assertEquals(0): Check command tool provider [jpackage --input SimplePackageTest/test/input --dest SimplePackageTest/test/output --name SimplePackageTest --type rpm --main-jar hello.jar --main-class Hello --runtime-image /home/asemenyu/.gradle/build/jpackage-dev-6BB1388E166EE904EA5E2BBA4D8DD1E0/test/jdk/tools/jpackage/jpackage-fake-runtime --verbose](16) exited with 0 code
[14:27:53.693] TRACE: assertStringListEquals(): Check jpackage didn't modify ${RUNTIME_IMAGE}=[/home/asemenyu/.gradle/build/jpackage-dev-6BB1388E166EE904EA5E2BBA4D8DD1E0/test/jdk/tools/jpackage/jpackage-fake-runtime]
[14:27:53.695] TRACE: assertStringListEquals(1, #)
[14:27:53.696] TRACE: assertStringListEquals(2, lib#)
[14:27:53.696] TRACE: assertStringListEquals(3, lib/bulk#2026-03-05T19:27:39.632571805Z)
[14:27:53.696] ERROR: Failed: Check [SimplePackageTest/test/output/simplepackagetest-1.0-1.x86_64.rpm] path exists
[14:27:53.697] [ FAILED ] SimplePackageTest.test; checks=47
java.lang.AssertionError: Failed: Check [SimplePackageTest/test/output/simplepackagetest-1.0-1.x86_64.rpm] path exists
at jdk.jpackage.test.TKit.error(TKit.java:349)
at jdk.jpackage.test.TKit.assertTrue(TKit.java:797)
at jdk.jpackage.test.TKit.assertTrue(TKit.java:784)
at jdk.jpackage.test.TKit.assertPathExists(TKit.java:817)
at jdk.jpackage.test.TKit.assertFileExists(TKit.java:899)
at jdk.jpackage.test.PackageTest$Handler.processAction(PackageTest.java:741)
at jdk.jpackage.test.PackageTest$PackageTypePipeline.accept(PackageTest.java:579)
at jdk.jpackage.test.PackageTest$PackageTypePipeline.accept(PackageTest.java:512)
...
at jdk.jpackage.test.Main.main(Main.java:77)
at jdk.jpackage.test.Main.main(Main.java:53)
[14:27:53.704] [==========] 1 tests ran
[14:27:53.705] [ PASSED ] 0 tests
[14:27:53.707] [ FAILED ] 1 test, listed below
[14:27:53.707] [ FAILED ] SimplePackageTest.test; workDir=[SimplePackageTest/test]
[14:27:53.708] 1 FAILED TEST
In the regular Linux test environment, only DEB or RPM packaging is available. In this case jpackage tests pass. That is why it is unclear when the issue was introduced.
$ dpkg --print-architecture
amd64
$ rpm --eval=%{_target_cpu}
x86_64
Bundles created by jpackage:
DEB: SimplePackageTest/test/output/simplepackagetest_1.0_amd64.deb
RPM: SimplePackageTest/test/output/simplepackagetest-1.0-1.amd64.rpm
The expected RPM bundle name should be SimplePackageTest/test/output/simplepackagetest-1.0-1.x86_64.rpm
SimplePackageTest fails:
[14:27:53.674] Command [PID: 6771]:
rpm -qp --queryformat %{Name}\n%{Version}\n%{Release}\n%{Arch} SimplePackageTest/test/output/simplepackagetest-1.0-1.amd64.rpm
[14:27:53.674] Output:
simplepackagetest
1.0
1
x86_64
[14:27:53.674] Returned: 0
[14:27:53.675] Expected value of "Arch" property is [amd64]. Actual value in output package is [x86_64]. Looks like custom "simplepackagetest.spec" file from resource directory contained hard coded value of "Arch" property
[14:27:53.675] Dont explicitly set value of {0} property in custom "{1}" file
[14:27:53.690] TRACE: exec: Done. Exit code: 0
[14:27:53.692] TRACE: assertEquals(0): Check command tool provider [jpackage --input SimplePackageTest/test/input --dest SimplePackageTest/test/output --name SimplePackageTest --type rpm --main-jar hello.jar --main-class Hello --runtime-image /home/asemenyu/.gradle/build/jpackage-dev-6BB1388E166EE904EA5E2BBA4D8DD1E0/test/jdk/tools/jpackage/jpackage-fake-runtime --verbose](16) exited with 0 code
[14:27:53.693] TRACE: assertStringListEquals(): Check jpackage didn't modify ${RUNTIME_IMAGE}=[/home/asemenyu/.gradle/build/jpackage-dev-6BB1388E166EE904EA5E2BBA4D8DD1E0/test/jdk/tools/jpackage/jpackage-fake-runtime]
[14:27:53.695] TRACE: assertStringListEquals(1, #)
[14:27:53.696] TRACE: assertStringListEquals(2, lib#)
[14:27:53.696] TRACE: assertStringListEquals(3, lib/bulk#2026-03-05T19:27:39.632571805Z)
[14:27:53.696] ERROR: Failed: Check [SimplePackageTest/test/output/simplepackagetest-1.0-1.x86_64.rpm] path exists
[14:27:53.697] [ FAILED ] SimplePackageTest.test; checks=47
java.lang.AssertionError: Failed: Check [SimplePackageTest/test/output/simplepackagetest-1.0-1.x86_64.rpm] path exists
at jdk.jpackage.test.TKit.error(TKit.java:349)
at jdk.jpackage.test.TKit.assertTrue(TKit.java:797)
at jdk.jpackage.test.TKit.assertTrue(TKit.java:784)
at jdk.jpackage.test.TKit.assertPathExists(TKit.java:817)
at jdk.jpackage.test.TKit.assertFileExists(TKit.java:899)
at jdk.jpackage.test.PackageTest$Handler.processAction(PackageTest.java:741)
at jdk.jpackage.test.PackageTest$PackageTypePipeline.accept(PackageTest.java:579)
at jdk.jpackage.test.PackageTest$PackageTypePipeline.accept(PackageTest.java:512)
...
at jdk.jpackage.test.Main.main(Main.java:77)
at jdk.jpackage.test.Main.main(Main.java:53)
[14:27:53.704] [==========] 1 tests ran
[14:27:53.705] [ PASSED ] 0 tests
[14:27:53.707] [ FAILED ] 1 test, listed below
[14:27:53.707] [ FAILED ] SimplePackageTest.test; workDir=[SimplePackageTest/test]
[14:27:53.708] 1 FAILED TEST
In the regular Linux test environment, only DEB or RPM packaging is available. In this case jpackage tests pass. That is why it is unclear when the issue was introduced.
- relates to
-
JDK-8379345 jpackage: Fix issues in tests to improve their flexibility
-
- Resolved
-
- links to
-
Commit(master)
openjdk/jdk/c532dfff
-
Review(master)
openjdk/jdk/30085