diff --git a/cmd/prometheus/main_test.go b/cmd/prometheus/main_test.go
index <HASH>..<HASH> 100644
--- a/cmd/prometheus/main_test.go
+++ b/cmd/prometheus/main_test.go
@@ -226,6 +226,7 @@ func TestWALSegmentSizeBounds(t *testing.T) {
 				t.Errorf("prometheus should be still running: %v", err)
 			case <-time.After(5 * time.Second):
 				prom.Process.Kill()
+				<-done
 			}
 			continue
 		}
@@ -268,6 +269,7 @@ func TestMaxBlockChunkSegmentSizeBounds(t *testing.T) {
 				t.Errorf("prometheus should be still running: %v", err)
 			case <-time.After(5 * time.Second):
 				prom.Process.Kill()
+				<-done
 			}
 			continue
 		}
@@ -438,6 +440,7 @@ func TestModeSpecificFlags(t *testing.T) {
 					t.Errorf("prometheus should be still running: %v", err)
 				case <-time.After(5 * time.Second):
 					prom.Process.Kill()
+					<-done
 				}
 				return
 			}
cmd/prometheus: wait for Prometheus to shutdown in tests

So temporary data directory can be successfully removed, as on Windows,
directory cannot be in used while removal.