java.io.tmpdir when 运行 java_test with bazel
java.io.tmpdir when running java_test with bazel
动机:
我有一个测试需要编写一个短 临时文件(必须小于 107 个字符)。
目前测试正在使用
Files.createTempFile(null,".sock");
问题
当运行
当使用 bazel 进行 运行 java 测试时,我试图找出 java.io.tmp
的值。我有不同的选择是:
- 设置
$TEST_TMPDIR
(或不设置)
- 使用
"local"=True
(或不使用)
结果如下:
# local=True + TEST_TMPDIR=/btmp:
/btmp/_bazel_ors/719f891d5db9fd5e73ade25b0c847fd1/execroot/__main__/_tmp/8be6e61521c57d3cfc8585efa880e1ac/1638063256753562848.sock
# local=False + TEST_TMPDIR=/btmp:
/btmp/_bazel_ors/719f891d5db9fd5e73ade25b0c847fd1/bazel-sandbox/5561433121200492142/execroot/__main__/_tmp/8be6e61521c57d3cfc8585efa880e1ac/4867903879018296623.sock
# local=True , no TEST_TMPDIR:
/private/var/tmp/_bazel_ors/719f891d5db9fd5e73ade25b0c847fd1/execroot/__main__/_tmp/8be6e61521c57d3cfc8585efa880e1ac/984443110479498941.sock
# local=False , no TEST_TMPDIR:
/private/var/tmp/_bazel_ors/719f891d5db9fd5e73ade25b0c847fd1/bazel-sandbox/6199384508952843116/execroot/__main__/_tmp/8be6e61521c57d3cfc8585efa880e1ac/4588114364301475150.sock
我能得到的最短临时前缀似乎是:
/private/var/tmp/_bazel_ors/719f891d5db9fd5e73ade25b0c847fd1/execroot/__main__/_tmp/
这是 85 个字符长(对我的需要来说太长了)。
我怎样才能安全地使用这个配置并让它更短?
注意:
我的环境是 mac osx sierra 我是 运行 bazel 0.5.1
可通过将此添加到测试目标的 jvm_flags
来解决:
"jvm_flags" = ["-Djava.io.tmpdir=/tmp"],
但请注意,这会使测试不那么密封
您还可以告诉 bazel 应该将其输出存储在哪里 --output_base=/tmp/foo
。
动机:
我有一个测试需要编写一个短 临时文件(必须小于 107 个字符)。 目前测试正在使用
Files.createTempFile(null,".sock");
问题
当运行
当使用 bazel 进行 运行 java 测试时,我试图找出 java.io.tmp
的值。我有不同的选择是:
- 设置
$TEST_TMPDIR
(或不设置) - 使用
"local"=True
(或不使用)
结果如下:
# local=True + TEST_TMPDIR=/btmp:
/btmp/_bazel_ors/719f891d5db9fd5e73ade25b0c847fd1/execroot/__main__/_tmp/8be6e61521c57d3cfc8585efa880e1ac/1638063256753562848.sock
# local=False + TEST_TMPDIR=/btmp:
/btmp/_bazel_ors/719f891d5db9fd5e73ade25b0c847fd1/bazel-sandbox/5561433121200492142/execroot/__main__/_tmp/8be6e61521c57d3cfc8585efa880e1ac/4867903879018296623.sock
# local=True , no TEST_TMPDIR:
/private/var/tmp/_bazel_ors/719f891d5db9fd5e73ade25b0c847fd1/execroot/__main__/_tmp/8be6e61521c57d3cfc8585efa880e1ac/984443110479498941.sock
# local=False , no TEST_TMPDIR:
/private/var/tmp/_bazel_ors/719f891d5db9fd5e73ade25b0c847fd1/bazel-sandbox/6199384508952843116/execroot/__main__/_tmp/8be6e61521c57d3cfc8585efa880e1ac/4588114364301475150.sock
我能得到的最短临时前缀似乎是:
/private/var/tmp/_bazel_ors/719f891d5db9fd5e73ade25b0c847fd1/execroot/__main__/_tmp/
这是 85 个字符长(对我的需要来说太长了)。
我怎样才能安全地使用这个配置并让它更短?
注意:
我的环境是 mac osx sierra 我是 运行 bazel 0.5.1
可通过将此添加到测试目标的 jvm_flags
来解决:
"jvm_flags" = ["-Djava.io.tmpdir=/tmp"],
但请注意,这会使测试不那么密封
您还可以告诉 bazel 应该将其输出存储在哪里 --output_base=/tmp/foo
。