diff options
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/exec/local/WindowsLocalEnvProviderTest.java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/exec/local/WindowsLocalEnvProviderTest.java | 103 |
1 files changed, 40 insertions, 63 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/exec/local/WindowsLocalEnvProviderTest.java b/src/test/java/com/google/devtools/build/lib/exec/local/WindowsLocalEnvProviderTest.java index 08881b107e..8ebbd6b145 100644 --- a/src/test/java/com/google/devtools/build/lib/exec/local/WindowsLocalEnvProviderTest.java +++ b/src/test/java/com/google/devtools/build/lib/exec/local/WindowsLocalEnvProviderTest.java @@ -27,76 +27,53 @@ import org.junit.runners.JUnit4; public final class WindowsLocalEnvProviderTest { private static Map<String, String> rewriteEnv( - WindowsLocalEnvProvider p, ImmutableMap<String, String> env) { - return p.rewriteLocalEnv(env, null, null, null); + WindowsLocalEnvProvider p, + ImmutableMap<String, String> env, + String localTmpRoot, + String fallbackDir) { + return p.rewriteLocalEnv(env, null, localTmpRoot, fallbackDir, null); } - private static Map<String, String> rewriteEnv( - WindowsLocalEnvProvider p, ImmutableMap<String, String> env, String fallback) { - return p.rewriteLocalEnv(env, null, fallback, null); - } - - /** Should use the client environment's TMP envvar if specified. */ - @Test - public void testRewriteEnvWithClientTmp() throws Exception { - WindowsLocalEnvProvider p = - new WindowsLocalEnvProvider( - ImmutableMap.of("TMP", "client-env/tmp", "TEMP", "ignore/when/tmp/is/present")); - - assertThat(rewriteEnv(p, ImmutableMap.of("key1", "value1", "TMP", "ignore", "TEMP", "ignore"))) - .isEqualTo( - ImmutableMap.of("key1", "value1", "TMP", "client-env\\tmp", "TEMP", "client-env\\tmp")); - - assertThat(rewriteEnv(p, ImmutableMap.of("key1", "value1", "TMP", "ignore"))) - .isEqualTo( - ImmutableMap.of("key1", "value1", "TMP", "client-env\\tmp", "TEMP", "client-env\\tmp")); - - assertThat(rewriteEnv(p, ImmutableMap.of("key1", "value1"))) - .isEqualTo( - ImmutableMap.of("key1", "value1", "TMP", "client-env\\tmp", "TEMP", "client-env\\tmp")); - } - - /** Should use the client environment's TEMP envvar if TMP is unspecified. */ - @Test - public void testRewriteEnvWithoutClientTmpWithClientTemp() throws Exception { - WindowsLocalEnvProvider p = - new WindowsLocalEnvProvider(ImmutableMap.of("TEMP", "client-env/temp")); - - assertThat(rewriteEnv(p, ImmutableMap.of("key1", "value1", "TMP", "ignore", "TEMP", "ignore"))) - .isEqualTo( - ImmutableMap.of( - "key1", "value1", "TMP", "client-env\\temp", "TEMP", "client-env\\temp")); - - assertThat(rewriteEnv(p, ImmutableMap.of("key1", "value1", "TMP", "ignore"))) - .isEqualTo( - ImmutableMap.of( - "key1", "value1", "TMP", "client-env\\temp", "TEMP", "client-env\\temp")); - - assertThat(rewriteEnv(p, ImmutableMap.of("key1", "value1"))) - .isEqualTo( - ImmutableMap.of( - "key1", "value1", "TMP", "client-env\\temp", "TEMP", "client-env\\temp")); - } - - /** Should use the fallback temp dir when the client env defines neither TMP nor TEMP. */ @Test - public void testRewriteEnvWithFallbackTmp() throws Exception { - WindowsLocalEnvProvider p = new WindowsLocalEnvProvider(ImmutableMap.<String, String>of()); - + public void testRewriteEnv() throws Exception { + // localTmpRoot is specified, so ignore everything else. assertThat( rewriteEnv( - p, - ImmutableMap.of("key1", "value1", "TMP", "ignore", "TEMP", "ignore"), - "fallback/tmp")) - .isEqualTo( - ImmutableMap.of("key1", "value1", "TMP", "fallback\\tmp", "TEMP", "fallback\\tmp")); - - assertThat(rewriteEnv(p, ImmutableMap.of("key1", "value1", "TMP", "ignore"), "fallback/tmp")) + new WindowsLocalEnvProvider( + ImmutableMap.of("TMP", "client/env/tmp", "TEMP", "client/env/temp")), + ImmutableMap.of("key1", "value1", "TMP", "spawn/tmp", "TEMP", "spawn/temp"), + "local/tmp", + "fallback/dir")) + .isEqualTo(ImmutableMap.of("key1", "value1", "TMP", "local\\tmp", "TEMP", "local\\tmp")); + + // localTmpRoot is empty, fall back to the client environment's TMP. + assertThat( + rewriteEnv( + new WindowsLocalEnvProvider( + ImmutableMap.of("TMP", "client/tmp", "TEMP", "client/temp")), + ImmutableMap.of("key1", "value1", "TMP", "spawn/tmp", "TEMP", "spawn/temp"), + "", + "fallback/dir")) + .isEqualTo(ImmutableMap.of("key1", "value1", "TMP", "client\\tmp", "TEMP", "client\\tmp")); + + // localTmpRoot and the client environment's TMP are empty, fall back to TEMP. + assertThat( + rewriteEnv( + new WindowsLocalEnvProvider(ImmutableMap.of("TMP", "", "TEMP", "client/temp")), + ImmutableMap.of("key1", "value1", "TMP", "spawn/tmp", "TEMP", "spawn/temp"), + "", + "fallback/dir")) .isEqualTo( - ImmutableMap.of("key1", "value1", "TMP", "fallback\\tmp", "TEMP", "fallback\\tmp")); + ImmutableMap.of("key1", "value1", "TMP", "client\\temp", "TEMP", "client\\temp")); - assertThat(rewriteEnv(p, ImmutableMap.of("key1", "value1"), "fallback/tmp")) + // localTmpRoot and the client environment's TMP and TEMP are empty, fall back to fallbackDir. + assertThat( + rewriteEnv( + new WindowsLocalEnvProvider(ImmutableMap.of("TMP", "", "TEMP", "")), + ImmutableMap.of("key1", "value1", "TMP", "spawn/tmp", "TEMP", "spawn/temp"), + "", + "fallback/dir")) .isEqualTo( - ImmutableMap.of("key1", "value1", "TMP", "fallback\\tmp", "TEMP", "fallback\\tmp")); + ImmutableMap.of("key1", "value1", "TMP", "fallback\\dir", "TEMP", "fallback\\dir")); } } |