aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java13
-rwxr-xr-xsrc/test/shell/integration/experimental_ui_test.sh7
2 files changed, 16 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java b/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java
index e13b75b834..e4b0128e3a 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java
@@ -27,6 +27,7 @@ import com.google.devtools.build.lib.pkgcache.LoadingPhaseCompleteEvent;
import com.google.devtools.build.lib.skyframe.LoadingPhaseStartedEvent;
import com.google.devtools.build.lib.util.Clock;
import com.google.devtools.build.lib.util.io.AnsiTerminal;
+import com.google.devtools.build.lib.util.io.AnsiTerminalWriter;
import com.google.devtools.build.lib.util.io.LineCountingAnsiTerminalWriter;
import com.google.devtools.build.lib.util.io.LineWrappingAnsiTerminalWriter;
import com.google.devtools.build.lib.util.io.OutErr;
@@ -243,10 +244,14 @@ public class ExperimentalEventHandler extends BlazeCommandEventHandler {
}
private void addProgressBar() throws IOException {
- LineCountingAnsiTerminalWriter terminalWriter = new LineCountingAnsiTerminalWriter(terminal);
- stateTracker.writeProgressBar(
- new LineWrappingAnsiTerminalWriter(terminalWriter, terminalWidth - 1));
+ LineCountingAnsiTerminalWriter countingTerminalWriter =
+ new LineCountingAnsiTerminalWriter(terminal);
+ AnsiTerminalWriter terminalWriter = countingTerminalWriter;
+ if (cursorControl) {
+ terminalWriter = new LineWrappingAnsiTerminalWriter(terminalWriter, terminalWidth - 1);
+ }
+ stateTracker.writeProgressBar(terminalWriter);
terminalWriter.newline();
- numLinesProgressBar = terminalWriter.getWrittenLines();
+ numLinesProgressBar = countingTerminalWriter.getWrittenLines();
}
}
diff --git a/src/test/shell/integration/experimental_ui_test.sh b/src/test/shell/integration/experimental_ui_test.sh
index df8e6c84c1..e411b53904 100755
--- a/src/test/shell/integration/experimental_ui_test.sh
+++ b/src/test/shell/integration/experimental_ui_test.sh
@@ -80,6 +80,13 @@ function test_basic_progress_no_curses() {
expect_log $'\x1b\[32m'
}
+function test_no_curses_no_linebreak() {
+ bazel test --experimental_ui --curses=no --color=yes --terminal_columns=9 \
+ pkg:true 2>$TEST_log || fail "bazel test failed"
+ # expect a long-ish status line
+ expect_log '\[[0-9,]* / [0-9,]*\]......'
+}
+
function test_pass() {
bazel test --experimental_ui --curses=yes --color=yes pkg:true >$TEST_log || fail "bazel test failed"
# PASS is written in green on the same line as the test target