-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bazel test produces misleading error on missing stdout #3834
Comments
Update: I have a patch for this in review internally. |
bazel-io
pushed a commit
that referenced
this issue
Nov 27, 2017
Baseline: cff0dc9 Cherry picks: + 8a49b15: Fix ImportError on tools.android for junction_lib + 275ae45: Automated rollback of commit 4869c4e. + d0bf589: Add a random number to action temp dir + 9738f35: CcProtoLibrary: Don't add dynamic librarys to filesToBuild on Windows + 0d6ff47: Automated rollback of commit 0ebb3e5. Incompatible changes: - ctx.fragments.apple.{xcode_version,ios_minimum_os} is not supported anymore. The same information is accessible through the target @bazel_tools//tools/osx:current_xcode_config: point an implicit attribute to it (i.e. attr.label(default=Label("@bazel_tools//tools/osx:current_xcode_co nfig")) then use ctx.attr._xcode_config[apple_common].XcodeVersionConfig]. - ctx.fragments.apple.minimum_os_for_platform_type is not supported anymore. The same information is accessible through the target @bazel_tools//tools/osx:current_xcode_config: point an implicit attribute to it (i.e. attr.label(default=Label("@bazel_tools//tools/osx:current_xcode_co nfig")) then use ctx.attr._xcode_config[apple_common].XcodeVersionConfig].minimum_o s_for_platform_type . - ctx.fragments.apple.sdk_version_for_platform is not supported anymore. The same information is accessible through the target @bazel_tools//tools/osx:current_xcode_config: point an implicit attribute to it (i.e. attr.label(default=Label("@bazel_tools//tools/osx:current_xcode_co nfig")) then use ctx.attr._xcode_config[apple_common].XcodeVersionConfig].sdk_versi on_for_platform . - --javabase=<absolute path> and --host_javabase=<absolute path> are not supported anymore. If you need this functionality java_runtime_suite(name="suite", default=":runtime") java_runtime(name="runtime", java_home=<path to the JDK>) is an alternative. - The flag --incompatible_descriptive_string_representations is no longer available, old style string representations of objects are not supported anymore. - The flag --incompatible_disallow_set_constructor is no longer available, the deprecated `set` constructor is not available anymore. - += on lists now mutates them. `list1 += list2` is now equivalent to `list1.extend(list2)` and not equivalent to `list1 = list1 + list2` anymore. - the target_apple_env and apple_host_system_env methods on ctx.fragments.apple are not supported anymore. The same information is accessible through apple_common.target_apple_env and apple_common.apple_host_system_env . They need the Xcode configuration as an argument, which can be obtained by declaring an implicit dependency on it (i.e. attr.label(default=Label("@bazel_tools//tools/osx:current_xcode_co nfig")) and then calling e.g. apple_common.apple_host_system_env(ctx.attr._xcode_config[apple_co mmon.XcodeVersionConfig]). - C++ toolchain identifiers are not in the name of the output directory anymore. - Selecting on "xcode_version" and "{ios,tvos,macos,watchos}_sdk_version" is not supported anymore. What was config_setting(values={"$FOO_version": $VALUE}) is now config_setting(flag_values={"@bazel_tools//tools/osx:$FOO_version_ flag": $VALUE}). - Selecting on "xcode_version" and "{ios,tvos,macos,watchos}_sdk_version" is not supported anymore. What was config_setting(values={"$FOO_version": $VALUE}) is now config_setting(flag_values={"@bazel_tools//tools/osx:$FOO_version_ flag": $VALUE}). - The flag --incompatible_disallow_set_constructor is no longer available, the deprecated `set` constructor is not available anymore. - Selecting on "xcode_version" and "{ios,tvos,macos,watchos}_sdk_version" is not supported anymore. What was config_setting(values={"$FOO_version": $VALUE}) is now config_setting(flag_values={"@bazel_tools//tools/osx:$FOO_versi... New features: - runfiles, sh: Shell scripts may now depend on //src/tools/runfiles:runfiles_sh_lib and source runfiles.sh. The script defines the `rlocation` function which returns runfile paths on every platform. - In addition to $(location), Bazel now also supports $(rootpath) to obtain the root-relative path (i.e., for runfiles locations), and $(execpath) to obtain the exec path (i.e., for build-time locations) Important changes: - android_binary now supports custom debug keys via the debug_key attribute. - Updated Android proguard to 5.3.3. It now works with android-24+. - --experimental_use_parallel_android_resource_processing and --experimental_android_use_nocompress_extensions_on_apk are removed. These features are fully rolled out. - Fixes #2574 - Fixes #3834 - Enable experimental UI by default. - . RELNOTES: None. RELNOTES: No. - Add memory profiler. - [Bazel] {java,cc}_proto_library now look for dependencies in @com_google_protobuf, instead of in @com_google_protobuf_$LANG - Improved merge.sh script in cookbook. - Fixing regression to --experimental_remote_spawn_cache - Support for linker scripts in NativeDepsHelper (e.g., android_binary) - Skylark semantics flags now affect WORKSPACE files and repository rules. - ctx.outputs.executable is deprecated. Use DefaultInfo(executable = ...) instead. - Update "mirror.bazel.build" urls to use https. - Improve --config logging when --announce_rc is present. - Document interaction between test_suite and target exclusions - Replace version numbers for Bazel installers with "<version>" (because this will change often) - Published command lines should have improved lists of effective options. - --incremental_dexing_binary_types has been removed. All builds are supported by incremental dexing (modulo proguard and some blacklisted dx flags). - Document --host_javabase, --host_java_toolchain
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
When the hello_world test is run with remote execution, and the remote execution produces a result that does not contain the expected stdout_digest, Bazel produces a very non-intuitive error:
ERROR: Caught I/O exception: java.io.FileNotFoundException: /usr/local/google/home/yiyu/.cache/bazel/_bazel_yiyu/f747e05abb9ae5ddb2b2bcbf4efc8838/execroot/main/bazel-out/linux_gnu_x86-fastbuild/testlogs/hello-world_test/test.log (No such file or directory)
I think this is because Bazel tries and fails to create a test.log file, because the output is missing.
To reproduce: run with remote execution on:
cc_test(
name = "hello-world_test",
srcs = ["hello-world.cc"],
)
hello-world.cc:
#include
int main(int argc, char** argv) {
std::cout << "Hello, world!" << std::endl;
return 0;
}
and hack the remote worker to return an ActionResult with the correct test.xml, but no stdout.
See b/67038484 internally for more context.
The text was updated successfully, but these errors were encountered: