diff options
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java | 13 | ||||
-rwxr-xr-x | src/test/shell/integration/experimental_ui_test.sh | 7 |
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 |