@@ -102,7 +102,7 @@ void stableWritesVersionAndLatestManifests(@TempDir Path work) throws Exception
102102 assertEquals (0 , r .exit , r .stderr );
103103 String expected = expectedManifest ("4.22.0" , sha256Hex (tar ), sha256Hex (zip ));
104104 Path versionFile = output .resolve ("releases" ).resolve ("4.22.0.properties" );
105- Path latestFile = output .resolve ("latest.properties" );
105+ Path latestFile = output .resolve ("releases" ). resolve ( " latest.properties" );
106106 assertEquals (expected , Files .readString (versionFile , StandardCharsets .UTF_8 ));
107107 assertArrayEquals (Files .readAllBytes (versionFile ), Files .readAllBytes (latestFile ),
108108 "latest.properties must be byte-identical to the version manifest" );
@@ -119,7 +119,8 @@ void ltsDoesNotWriteLatest(@TempDir Path work) throws Exception {
119119
120120 assertEquals (0 , r .exit , r .stderr );
121121 assertTrue (Files .exists (output .resolve ("releases" ).resolve ("4.18.5.properties" )));
122- assertFalse (Files .exists (output .resolve ("latest.properties" )), "LTS run must not create latest.properties" );
122+ assertFalse (Files .exists (output .resolve ("releases" ).resolve ("latest.properties" )),
123+ "LTS run must not create latest.properties" );
123124 }
124125
125126 @ Test
@@ -133,14 +134,14 @@ void repeatedRunIsIdempotent(@TempDir Path work) throws Exception {
133134 assertEquals (0 , r1 .exit , r1 .stderr );
134135
135136 byte [] versionBytesBefore = Files .readAllBytes (output .resolve ("releases" ).resolve ("4.22.0.properties" ));
136- byte [] latestBytesBefore = Files .readAllBytes (output .resolve ("latest.properties" ));
137+ byte [] latestBytesBefore = Files .readAllBytes (output .resolve ("releases" ). resolve ( " latest.properties" ));
137138
138139 Result r2 = run ("--version" , "4.22.0" , "--tar" , tar .toString (), "--zip" , zip .toString (), "--output" ,
139140 output .toString (), "--latest" , "true" );
140141 assertEquals (0 , r2 .exit , r2 .stderr );
141142
142143 assertArrayEquals (versionBytesBefore , Files .readAllBytes (output .resolve ("releases" ).resolve ("4.22.0.properties" )));
143- assertArrayEquals (latestBytesBefore , Files .readAllBytes (output .resolve ("latest.properties" )));
144+ assertArrayEquals (latestBytesBefore , Files .readAllBytes (output .resolve ("releases" ). resolve ( " latest.properties" )));
144145 }
145146
146147 @ Test
@@ -174,7 +175,7 @@ void latestRollbackFails(@TempDir Path work) throws Exception {
174175 Result seed = run ("--version" , "4.23.0" , "--tar" , tar1 .toString (), "--zip" , zip1 .toString (), "--output" ,
175176 output .toString (), "--latest" , "true" );
176177 assertEquals (0 , seed .exit , seed .stderr );
177- byte [] latestBefore = Files .readAllBytes (output .resolve ("latest.properties" ));
178+ byte [] latestBefore = Files .readAllBytes (output .resolve ("releases" ). resolve ( " latest.properties" ));
178179
179180 Path tar2 = writeFixture (work , "lo.tar.gz" , "lo-tar" );
180181 Path zip2 = writeFixture (work , "lo.zip" , "lo-zip" );
@@ -183,7 +184,7 @@ void latestRollbackFails(@TempDir Path work) throws Exception {
183184 output .toString (), "--latest" , "true" );
184185
185186 assertNotEquals (0 , r .exit , "latest must not move backward to a lower version" );
186- assertArrayEquals (latestBefore , Files .readAllBytes (output .resolve ("latest.properties" )));
187+ assertArrayEquals (latestBefore , Files .readAllBytes (output .resolve ("releases" ). resolve ( " latest.properties" )));
187188 assertTrue (Files .exists (output .resolve ("releases" ).resolve ("4.22.0.properties" )),
188189 "the version-specific manifest is still written even if the latest update is rejected" );
189190 }
@@ -201,7 +202,8 @@ void sameVersionChecksumConflictOnLatestFails(@TempDir Path work) throws Excepti
201202 Path zipStale = writeFixture (work , "stale.zip" , "stale-zip" );
202203 byte [] tamperedLatest
203204 = expectedManifest ("4.22.0" , sha256Hex (tarStale ), sha256Hex (zipStale )).getBytes (StandardCharsets .UTF_8 );
204- Files .write (output .resolve ("latest.properties" ), tamperedLatest );
205+ Files .createDirectories (output .resolve ("releases" ));
206+ Files .write (output .resolve ("releases" ).resolve ("latest.properties" ), tamperedLatest );
205207 assertFalse (Files .exists (output .resolve ("releases" ).resolve ("4.22.0.properties" )));
206208
207209 Path tarNew = writeFixture (work , "new.tar.gz" , "new-tar-different" );
@@ -211,7 +213,7 @@ void sameVersionChecksumConflictOnLatestFails(@TempDir Path work) throws Excepti
211213 output .toString (), "--latest" , "true" );
212214
213215 assertNotEquals (0 , r .exit , "same-version checksum conflict against latest.properties must fail" );
214- assertArrayEquals (tamperedLatest , Files .readAllBytes (output .resolve ("latest.properties" )),
216+ assertArrayEquals (tamperedLatest , Files .readAllBytes (output .resolve ("releases" ). resolve ( " latest.properties" )),
215217 "latest.properties must remain untouched after a rejected conflicting update" );
216218 assertTrue (Files .exists (output .resolve ("releases" ).resolve ("4.22.0.properties" )),
217219 "the version-specific manifest still gets written since it did not previously exist" );
@@ -235,7 +237,8 @@ void forwardUpdateSucceeds(@TempDir Path work) throws Exception {
235237
236238 assertEquals (0 , r .exit , r .stderr );
237239 String expected = expectedManifest ("4.23.0" , sha256Hex (tar2 ), sha256Hex (zip2 ));
238- assertEquals (expected , Files .readString (output .resolve ("latest.properties" ), StandardCharsets .UTF_8 ));
240+ assertEquals (expected ,
241+ Files .readString (output .resolve ("releases" ).resolve ("latest.properties" ), StandardCharsets .UTF_8 ));
239242 assertTrue (Files .exists (output .resolve ("releases" ).resolve ("4.22.0.properties" )));
240243 assertTrue (Files .exists (output .resolve ("releases" ).resolve ("4.23.0.properties" )));
241244 }
@@ -292,6 +295,7 @@ void handlesOutputPathsWithSpacesAndUnicode(@TempDir Path work) throws Exception
292295 String expected = expectedManifest ("4.22.0" , sha256Hex (tar ), sha256Hex (zip ));
293296 assertEquals (expected ,
294297 Files .readString (output .resolve ("releases" ).resolve ("4.22.0.properties" ), StandardCharsets .UTF_8 ));
295- assertEquals (expected , Files .readString (output .resolve ("latest.properties" ), StandardCharsets .UTF_8 ));
298+ assertEquals (expected ,
299+ Files .readString (output .resolve ("releases" ).resolve ("latest.properties" ), StandardCharsets .UTF_8 ));
296300 }
297301}
0 commit comments