Buck: Stop spamming standard output on unit test failures
Since [1] Buck spam standard output with debug messages in test failure
case. Monkey patch the java_test() rule to avoid it. Also file the
upstream issue to change the default log level from debug to info: [2].
[1] https://github.com/facebook/buck/commit/cc05fdbedc0213ebe8ca38a69eeb0b0ea0b8e567
[2] https://github.com/facebook/buck/issues/505
Change-Id: I04c86a9bacdd188724a79268ef879f676ec35217
diff --git a/tools/default.defs b/tools/default.defs
index 7a6e982..90096b2 100644
--- a/tools/default.defs
+++ b/tools/default.defs
@@ -27,6 +27,7 @@
# Set defaults on java rules:
# - Add AutoValue annotation processing support.
# - Treat source files as UTF-8.
+# - std_out_log_level = info (the default is too spammy)
_buck_java_library = java_library
def java_library(*args, **kwargs):
@@ -36,9 +37,9 @@
_buck_java_test = java_test
def java_test(*args, **kwargs):
_munge_args(kwargs)
+ _do_not_spam_std_out(kwargs)
_buck_java_test(*args, **kwargs)
-
# Munge kwargs to set Gerrit-specific defaults.
def _munge_args(kwargs):
_set_auto_value(kwargs)
@@ -56,6 +57,11 @@
extra_args.extend(['-encoding', 'UTF-8'])
+def _do_not_spam_std_out(kwargs):
+ level = 'std_out_log_level'
+ if level not in kwargs:
+ kwargs[level] = 'INFO'
+
def _set_auto_value(kwargs):
apk = 'annotation_processors'
if apk not in kwargs: