|
16 | 16 | import java.nio.file.Path;
|
17 | 17 | import java.nio.file.Paths;
|
18 | 18 | import java.util.concurrent.TimeUnit;
|
19 |
| -import java.util.regex.Matcher; |
20 |
| -import java.util.regex.Pattern; |
21 | 19 |
|
22 | 20 | import static org.hamcrest.MatcherAssert.assertThat;
|
23 | 21 | import static org.hamcrest.Matchers.containsString;
|
@@ -152,19 +150,18 @@ public void copyFileWithExecutePermission() throws Exception {
|
152 | 150 |
|
153 | 151 | @Test
|
154 | 152 | public void copyFileWithUIDGID() throws Exception {
|
155 |
| - Path withDir = Files.createTempDirectory("copyFileWithUIDGID"); |
156 | 153 | Path with = Files.createFile(Files.createTempDirectory("copyFileWithUIDGID").resolve("uidgid.with"));
|
157 | 154 | Files.write(with, "with".getBytes());
|
158 | 155 |
|
159 |
| - Path withoutDir = Files.createTempDirectory("copyFileWithUIDGID"); |
160 | 156 | Path without = Files.createFile(Files.createTempDirectory("copyFileWithUIDGID").resolve("uidgid.without"));
|
161 |
| - Files.write(without, "with".getBytes()); |
| 157 | + Files.write(without, "without".getBytes()); |
162 | 158 |
|
163 |
| - String containerCmd = "while [ ! -f /home/uidgid.with ]; do true; done && echo uid=$(id -u) && stat -c %n:%u /home/uidgid.with /home/uidgid.without"; |
| 159 | + String containerCmd = "while [ ! -f /home/uidgid.with ]; do true; done && stat -c %n:%u /home/uidgid.with /home/uidgid.without"; |
| 160 | + Long syncUserUid = 4L; // sync user in busybox uses uid=4 |
164 | 161 | CreateContainerResponse container = dockerRule.getClient().createContainerCmd("busybox")
|
165 | 162 | .withName("copyFileWithUIDGID")
|
166 | 163 | .withCmd("/bin/sh", "-c", containerCmd)
|
167 |
| - .withUser("sync") |
| 164 | + .withUser(syncUserUid.toString()) |
168 | 165 | .exec();
|
169 | 166 | // start the container
|
170 | 167 | dockerRule.getClient().startContainerCmd(container.getId()).exec();
|
@@ -197,12 +194,7 @@ public void copyFileWithUIDGID() throws Exception {
|
197 | 194 | loggingCallback.awaitCompletion(3, TimeUnit.SECONDS);
|
198 | 195 | String containerOutput = loggingCallback.toString();
|
199 | 196 |
|
200 |
| - Matcher uidMatcher = Pattern.compile("uid=(\\d+)").matcher(containerOutput); |
201 |
| - assertThat(String.format("cannot read effective uid on container from '%s'", containerOutput), uidMatcher.find(), equalTo(true)); |
202 |
| - assertThat(String.format("cannot read effective uid on container from '%s'", containerOutput), uidMatcher.groupCount(), equalTo(1)); |
203 |
| - Long containerEffectiveUid = Long.parseLong(uidMatcher.group(1)); |
204 |
| - |
205 |
| - assertThat(containerOutput, containsString(String.format("/home/uidgid.with:%d", containerEffectiveUid))); |
| 197 | + assertThat(containerOutput, containsString(String.format("/home/uidgid.with:%d", syncUserUid))); |
206 | 198 |
|
207 | 199 | Long hostUid = getHostUidIfPossible();
|
208 | 200 | assumeThat("could not get the uid on host platform", hostUid, notNullValue(Long.class));
|
|
0 commit comments