|
1 | 1 | package jvmbootstraptest; |
2 | 2 |
|
| 3 | +import datadog.trace.agent.test.IntegrationTestUtils; |
3 | 4 | import java.io.File; |
4 | 5 | import java.io.FilePermission; |
5 | 6 | import java.io.IOException; |
|
13 | 14 | import java.util.Map; |
14 | 15 | import java.util.Set; |
15 | 16 |
|
16 | | -import datadog.trace.agent.test.IntegrationTestUtils; |
17 | | - |
18 | 17 | /** |
19 | 18 | * Basic sanity check that InitializationTelemetry is functioning |
20 | 19 | * |
@@ -78,64 +77,72 @@ public static final Result runTestJvm(Class<? extends TestSecurityManager> secur |
78 | 77 | public static final Result runTestJvm( |
79 | 78 | Class<? extends TestSecurityManager> securityManagerClass, boolean printStreams) |
80 | 79 | throws Exception { |
81 | | - |
82 | | - File jarFile = |
| 80 | + |
| 81 | + File jarFile = |
83 | 82 | IntegrationTestUtils.createJarFileWithClasses(requiredClasses(securityManagerClass)); |
84 | | - |
85 | | - File forwarderFile = createTempFile("forwarder", "sh", PosixFilePermissions.fromString("rwxr--r--")); |
86 | | - File outputFile = new File(forwarderFile.getAbsoluteFile() + ".out"); |
87 | | - |
88 | | - write(forwarderFile, |
89 | | - "#!/usr/bin/env bash\n", |
90 | | - "echo \"$1 $(cat -)\" >> " + outputFile.getAbsolutePath() + "\n"); |
91 | | - |
| 83 | + |
| 84 | + File forwarderFile = |
| 85 | + createTempFile("forwarder", "sh", PosixFilePermissions.fromString("rwxr--r--")); |
| 86 | + File outputFile = new File(forwarderFile.getAbsoluteFile() + ".out"); |
| 87 | + |
| 88 | + write( |
| 89 | + forwarderFile, |
| 90 | + "#!/usr/bin/env bash\n", |
| 91 | + "echo \"$1 $(cat -)\" >> " + outputFile.getAbsolutePath() + "\n"); |
| 92 | + |
92 | 93 | try { |
93 | | - int exitCode = IntegrationTestUtils.runOnSeparateJvm( |
94 | | - InitializationTelemetryCheck.class.getName(), |
95 | | - InitializationTelemetryCheck.jvmArgs(securityManagerClass), |
96 | | - InitializationTelemetryCheck.mainArgs(), |
97 | | - InitializationTelemetryCheck.envVars(forwarderFile), |
98 | | - jarFile, |
99 | | - printStreams); |
100 | | - |
| 94 | + int exitCode = |
| 95 | + IntegrationTestUtils.runOnSeparateJvm( |
| 96 | + InitializationTelemetryCheck.class.getName(), |
| 97 | + InitializationTelemetryCheck.jvmArgs(securityManagerClass), |
| 98 | + InitializationTelemetryCheck.mainArgs(), |
| 99 | + InitializationTelemetryCheck.envVars(forwarderFile), |
| 100 | + jarFile, |
| 101 | + printStreams); |
| 102 | + |
101 | 103 | return new Result(exitCode, read(outputFile)); |
102 | 104 | } finally { |
103 | 105 | delete(jarFile, forwarderFile, outputFile); |
104 | 106 | } |
105 | 107 | } |
106 | | - |
107 | | - static final File createTempFile(String baseName, String extension, Set<PosixFilePermission> perms) throws IOException { |
108 | | - Path path = Files.createTempFile(baseName + "-integration-telemetry-check", "." + extension, PosixFilePermissions.asFileAttribute(perms)); |
| 108 | + |
| 109 | + static final File createTempFile( |
| 110 | + String baseName, String extension, Set<PosixFilePermission> perms) throws IOException { |
| 111 | + Path path = |
| 112 | + Files.createTempFile( |
| 113 | + baseName + "-integration-telemetry-check", |
| 114 | + "." + extension, |
| 115 | + PosixFilePermissions.asFileAttribute(perms)); |
109 | 116 | File file = path.toFile(); |
110 | 117 | file.deleteOnExit(); |
111 | 118 | return file; |
112 | 119 | } |
113 | | - |
| 120 | + |
114 | 121 | static final void write(File file, String... lines) throws IOException { |
115 | | - Files.write(file.toPath(), Arrays.asList(lines)); |
| 122 | + Files.write(file.toPath(), Arrays.asList(lines)); |
116 | 123 | } |
117 | | - |
| 124 | + |
118 | 125 | static final String read(File file) throws IOException { |
119 | | - try { |
120 | | - return new String(Files.readAllBytes(file.toPath()), StandardCharsets.UTF_8); |
121 | | - } catch ( IOException e ) { |
122 | | - return null; |
123 | | - } |
| 126 | + try { |
| 127 | + return new String(Files.readAllBytes(file.toPath()), StandardCharsets.UTF_8); |
| 128 | + } catch (IOException e) { |
| 129 | + return null; |
| 130 | + } |
124 | 131 | } |
125 | | - |
| 132 | + |
126 | 133 | static final void delete(File... tempFiles) { |
127 | | - for ( File file: tempFiles ) { |
128 | | - file.delete(); |
129 | | - } |
| 134 | + for (File file : tempFiles) { |
| 135 | + file.delete(); |
| 136 | + } |
130 | 137 | } |
131 | 138 |
|
132 | 139 | public static final Class<?>[] requiredClasses( |
133 | 140 | Class<? extends TestSecurityManager> securityManagerClass) { |
134 | 141 |
|
135 | 142 | if (securityManagerClass == null) { |
136 | 143 | return new Class<?>[] { |
137 | | - InitializationTelemetryCheck.class, |
138 | | - InitializationTelemetryCheck.Result.class}; |
| 144 | + InitializationTelemetryCheck.class, InitializationTelemetryCheck.Result.class |
| 145 | + }; |
139 | 146 | } else { |
140 | 147 | return new Class<?>[] { |
141 | 148 | InitializationTelemetryCheck.class, |
@@ -164,14 +171,14 @@ public static final Map<String, String> envVars(File forwarderFile) { |
164 | 171 | envVars.put("DD_TELEMETRY_FORWARDER_PATH", forwarderFile.getAbsolutePath()); |
165 | 172 | return envVars; |
166 | 173 | } |
167 | | - |
| 174 | + |
168 | 175 | public static final class Result { |
169 | | - public final int exitCode; |
170 | | - public final String telemetryJson; |
171 | | - |
172 | | - public Result(int exitCode, String telemetryJson) { |
173 | | - this.exitCode = exitCode; |
174 | | - this.telemetryJson = telemetryJson; |
175 | | - } |
| 176 | + public final int exitCode; |
| 177 | + public final String telemetryJson; |
| 178 | + |
| 179 | + public Result(int exitCode, String telemetryJson) { |
| 180 | + this.exitCode = exitCode; |
| 181 | + this.telemetryJson = telemetryJson; |
| 182 | + } |
176 | 183 | } |
177 | 184 | } |
0 commit comments