databricks-cli/libs
Pieter Noordhuis eddaddaf8b
Attempt to reduce test flakiness on Windows (#1845)
## Changes

Test failures indicate that both stdout and stderr are consumed, yet the
content of stdout doesn't end up in the intended output. This can happen
if the goroutines responsible for writing to the combined output buffer
attempt to write to the same underlying buffer concurrently.

Example failure:
```
=== RUN   TestBackgroundCombinedOutput
    background_test.go:65: 
        	Error Trace:	D:/a/cli/cli/libs/process/background_test.go:65
        	Error:      	elements differ
        	            	
        	            	extra elements in list A:
        	            	([]interface {}) (len=1) {
        	            	 (string) (len=1) "2"
        	            	}
        	            	
        	            	
        	            	listA:
        	            	([]string) (len=2) {
        	            	 (string) (len=1) "1",
        	            	 (string) (len=1) "2"
        	            	}
        	            	
        	            	
        	            	listB:
        	            	([]string) (len=1) {
        	            	 (string) (len=1) "1"
        	            	}
        	Test:       	TestBackgroundCombinedOutput
```

With the test body:

ca45e53f42/libs/process/background_test.go (L48-L66)

With the implementation of `WithCombinedOutput`:

ca45e53f42/libs/process/opts.go (L72-L78)

Notice that `c.Stdout` does get the "2", or the test failure would have
included the relevant assertion error. This leads me to believe that
there is a race on writing to `buf` from the two goroutines writing to
`c.Stdout` and `c.Stderr`.

## Tests

The test passes. If this PR has the intended effect remains to be
seen...
2024-10-24 12:03:12 +00:00
..
auth Move utility functions dealing with IAM to libs/iamutil (#1820) 2024-10-10 13:02:25 +00:00
cmdgroup Add trailing newline in usage string (#1382) 2024-04-19 14:12:52 +00:00
cmdio Added JSON input validation for CLI commands (#1771) 2024-10-11 14:39:53 +00:00
databrickscfg Upgrade Go SDK to 0.44.0 (#1679) 2024-08-15 13:23:07 +00:00
diag Show actionable errors for collaborative deployment scenarios (#1386) 2024-10-10 11:18:23 +00:00
dyn Add behavioral tests for examples from the YAML spec (#1835) 2024-10-17 13:13:30 +00:00
env Fix `panic: $HOME is not set` (#1027) 2023-11-29 19:08:27 +00:00
errs Added ability for deferred mutator execution (#380) 2023-05-16 18:01:50 +02:00
exec Fixed building Python artifacts on Windows with WSL (#1249) 2024-03-01 15:59:47 +00:00
filer Show actionable errors for collaborative deployment scenarios (#1386) 2024-10-10 11:18:23 +00:00
fileset Make fileset take optional list of paths to list (#1684) 2024-08-19 15:15:14 +00:00
flags Fixed unmarshalling json input into `interface{}` type (#1832) 2024-10-15 12:10:02 +00:00
folders Move folders package into libs (#1184) 2024-02-07 16:33:18 +00:00
git Support Git worktrees for `sync` (#1831) 2024-10-21 18:27:07 +00:00
iamutil Move utility functions dealing with IAM to libs/iamutil (#1820) 2024-10-10 13:02:25 +00:00
jsonschema Make bundle JSON schema modular with `$defs` (#1700) 2024-09-10 13:55:18 +00:00
locker Correct name for force acquire deploy flag (#656) 2023-08-15 19:03:43 +00:00
log Rewrite the friendly log handler (#1038) 2023-12-01 12:17:04 +00:00
notebook Let notebook detection code use underlying metadata if available (#1574) 2024-07-10 06:37:47 +00:00
process Attempt to reduce test flakiness on Windows (#1845) 2024-10-24 12:03:12 +00:00
python Make `pydabs/venv_path` optional (#1687) 2024-08-20 13:26:57 +00:00
set Show actionable errors for collaborative deployment scenarios (#1386) 2024-10-10 11:18:23 +00:00
sync Add verbose flag to the "bundle deploy" command (#1774) 2024-09-23 10:09:11 +00:00
tags Library to validate and normalize cloud specific tags (#819) 2023-09-29 08:49:08 +00:00
template Fix pipeline in default-python template not working for certain workspaces (#1854) 2024-10-22 15:52:46 +00:00
terraform Move to a single prompt during bundle destroy (#1583) 2024-07-24 13:02:19 +00:00
testfile Refactor and cover edge cases in sync integration tests (#160) 2023-01-10 13:16:30 +01:00
textutil Fixed job name normalisation for bundle generate (#1601) 2024-07-17 12:33:49 +00:00
vfs Replace `vfs.Path` with extension-aware filer when running on DBR (#1556) 2024-07-03 11:55:42 +00:00