Skip to content

Commit 16b8b3e

Browse files
committed
[clangd][tests] Bump timeouts in TUSchedulerTests to 60 secs
There are some slow/congested bots, that can't go idle in 10 secs, see #64964 Differential Revision: https://reviews.llvm.org/D159338
1 parent 69feef0 commit 16b8b3e

File tree

1 file changed

+44
-44
lines changed

1 file changed

+44
-44
lines changed

clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ TEST_F(TUSchedulerTests, WantDiagnostics) {
251251
[&](std::vector<Diag>) { ++CallbackCount; });
252252
Ready.notify();
253253

254-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
254+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
255255
}
256256
EXPECT_EQ(2, CallbackCount);
257257
}
@@ -274,7 +274,7 @@ TEST_F(TUSchedulerTests, Debounce) {
274274
Notification N;
275275
updateWithDiags(S, Path, "auto (timed out)", WantDiagnostics::Auto,
276276
[&](std::vector<Diag>) { N.notify(); });
277-
EXPECT_TRUE(N.wait(timeoutSeconds(5)));
277+
EXPECT_TRUE(N.wait(timeoutSeconds(60)));
278278

279279
// Once we start shutting down the TUScheduler, this one becomes a dead write.
280280
updateWithDiags(S, Path, "auto (discarded)", WantDiagnostics::Auto,
@@ -340,7 +340,7 @@ TEST_F(TUSchedulerTests, Cancellation) {
340340
Read("R3")();
341341
Proceed.notify();
342342

343-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
343+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
344344
}
345345
EXPECT_THAT(DiagsSeen, ElementsAre("U2", "U3"))
346346
<< "U1 and all dependent reads were cancelled. "
@@ -361,7 +361,7 @@ TEST_F(TUSchedulerTests, InvalidationNoCrash) {
361361
// We expect invalidation logic to not crash by trying to invalidate a running
362362
// request.
363363
S.update(Path, getInputs(Path, ""), WantDiagnostics::Auto);
364-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
364+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
365365
S.runWithAST(
366366
"invalidatable-but-running", Path,
367367
[&](llvm::Expected<InputsAndAST> AST) {
@@ -373,7 +373,7 @@ TEST_F(TUSchedulerTests, InvalidationNoCrash) {
373373
StartedRunning.wait();
374374
S.update(Path, getInputs(Path, ""), WantDiagnostics::Auto);
375375
ScheduledChange.notify();
376-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
376+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
377377
}
378378

379379
TEST_F(TUSchedulerTests, Invalidation) {
@@ -429,7 +429,7 @@ TEST_F(TUSchedulerTests, Invalidation) {
429429
},
430430
TUScheduler::InvalidateOnUpdate);
431431
Start.notify();
432-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
432+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
433433

434434
EXPECT_EQ(2, Builds.load()) << "Middle build should be skipped";
435435
EXPECT_EQ(4, Actions.load()) << "All actions should run (some with error)";
@@ -462,7 +462,7 @@ TEST_F(TUSchedulerTests, InvalidationUnchanged) {
462462
ADD_FAILURE() << "Shouldn't build, identical to previous";
463463
});
464464
Start.notify();
465-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
465+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
466466

467467
EXPECT_EQ(1, Actions.load()) << "All actions should run";
468468
}
@@ -569,7 +569,7 @@ TEST_F(TUSchedulerTests, ManyUpdates) {
569569
}
570570
}
571571
}
572-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
572+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
573573
} // TUScheduler destructor waits for all operations to finish.
574574

575575
std::lock_guard<std::mutex> Lock(Mut);
@@ -611,7 +611,7 @@ TEST_F(TUSchedulerTests, EvictedAST) {
611611
// one that the cache will evict.
612612
updateWithCallback(S, Foo, SourceContents, WantDiagnostics::Yes,
613613
[&BuiltASTCounter]() { ++BuiltASTCounter; });
614-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
614+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
615615
ASSERT_EQ(BuiltASTCounter.load(), 1);
616616
EXPECT_THAT(Tracer.takeMetric("ast_access_diag", "hit"), SizeIs(0));
617617
EXPECT_THAT(Tracer.takeMetric("ast_access_diag", "miss"), SizeIs(1));
@@ -622,7 +622,7 @@ TEST_F(TUSchedulerTests, EvictedAST) {
622622
[&BuiltASTCounter]() { ++BuiltASTCounter; });
623623
updateWithCallback(S, Baz, SourceContents, WantDiagnostics::Yes,
624624
[&BuiltASTCounter]() { ++BuiltASTCounter; });
625-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
625+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
626626
ASSERT_EQ(BuiltASTCounter.load(), 3);
627627
EXPECT_THAT(Tracer.takeMetric("ast_access_diag", "hit"), SizeIs(0));
628628
EXPECT_THAT(Tracer.takeMetric("ast_access_diag", "miss"), SizeIs(2));
@@ -633,7 +633,7 @@ TEST_F(TUSchedulerTests, EvictedAST) {
633633
// Access the old file again.
634634
updateWithCallback(S, Foo, OtherSourceContents, WantDiagnostics::Yes,
635635
[&BuiltASTCounter]() { ++BuiltASTCounter; });
636-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
636+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
637637
ASSERT_EQ(BuiltASTCounter.load(), 4);
638638
EXPECT_THAT(Tracer.takeMetric("ast_access_diag", "hit"), SizeIs(0));
639639
EXPECT_THAT(Tracer.takeMetric("ast_access_diag", "miss"), SizeIs(1));
@@ -659,16 +659,16 @@ TEST_F(TUSchedulerTests, NoopChangesDontThrashCache) {
659659

660660
// After opening Foo then Bar, AST cache contains Bar.
661661
S.update(Foo, FooInputs, WantDiagnostics::Auto);
662-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
662+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
663663
S.update(Bar, BarInputs, WantDiagnostics::Auto);
664-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
664+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
665665
ASSERT_THAT(S.getFilesWithCachedAST(), ElementsAre(Bar));
666666

667667
// Any number of no-op updates to Foo don't dislodge Bar from the cache.
668668
S.update(Foo, FooInputs, WantDiagnostics::Auto);
669669
S.update(Foo, FooInputs, WantDiagnostics::Auto);
670670
S.update(Foo, FooInputs, WantDiagnostics::Auto);
671-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
671+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
672672
ASSERT_THAT(S.getFilesWithCachedAST(), ElementsAre(Bar));
673673
// In fact each file has been built only once.
674674
ASSERT_EQ(S.fileStats().lookup(Foo).ASTBuilds, 1u);
@@ -698,12 +698,12 @@ TEST_F(TUSchedulerTests, EmptyPreamble) {
698698
0u);
699699
});
700700
// Wait while the preamble is being built.
701-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
701+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
702702

703703
// Update the file which results in an empty preamble.
704704
S.update(Foo, getInputs(Foo, WithEmptyPreamble), WantDiagnostics::Auto);
705705
// Wait while the preamble is being built.
706-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
706+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
707707
S.runWithPreamble(
708708
"getEmptyPreamble", Foo, TUScheduler::Stale,
709709
[&](Expected<InputsAndPreamble> Preamble) {
@@ -731,7 +731,7 @@ TEST_F(TUSchedulerTests, ASTSignalsSmokeTests) {
731731
// Update the file which results in an empty preamble.
732732
S.update(Foo, getInputs(Foo, Contents), WantDiagnostics::Yes);
733733
// Wait while the preamble is being built.
734-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
734+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
735735
Notification TaskRun;
736736
S.runWithPreamble(
737737
"ASTSignals", Foo, TUScheduler::Stale,
@@ -778,7 +778,7 @@ TEST_F(TUSchedulerTests, RunWaitsForPreamble) {
778778
Preambles[I] = cantFail(std::move(IP)).Preamble;
779779
});
780780
}
781-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
781+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
782782
// Check all actions got the same non-null preamble.
783783
std::lock_guard<std::mutex> Lock(PreamblesMut);
784784
ASSERT_NE(Preambles[0], nullptr);
@@ -805,7 +805,7 @@ TEST_F(TUSchedulerTests, NoopOnEmptyChanges) {
805805
Updated = false;
806806
updateWithDiags(S, Source, Contents, WantDiagnostics::Yes,
807807
[&Updated](std::vector<Diag>) { Updated = true; });
808-
bool UpdateFinished = S.blockUntilIdle(timeoutSeconds(10));
808+
bool UpdateFinished = S.blockUntilIdle(timeoutSeconds(60));
809809
if (!UpdateFinished)
810810
ADD_FAILURE() << "Updated has not finished in one second. Threading bug?";
811811
return Updated;
@@ -877,7 +877,7 @@ TEST_F(TUSchedulerTests, MissingHeader) {
877877
Field(&Diag::Message,
878878
"use of undeclared identifier 'b'")));
879879
});
880-
S.blockUntilIdle(timeoutSeconds(10));
880+
S.blockUntilIdle(timeoutSeconds(60));
881881

882882
FS.Files[HeaderB] = "int b;";
883883
FS.Timestamps[HeaderB] = time_t(1);
@@ -890,7 +890,7 @@ TEST_F(TUSchedulerTests, MissingHeader) {
890890
});
891891

892892
// Ensure previous assertions are done before we touch the FS again.
893-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
893+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
894894
// Add the high-priority header file, which should reintroduce the error.
895895
FS.Files[HeaderA] = "int a;";
896896
FS.Timestamps[HeaderA] = time_t(1);
@@ -912,7 +912,7 @@ TEST_F(TUSchedulerTests, MissingHeader) {
912912
ElementsAre(Field(&Diag::Message, "use of undeclared identifier 'b'"));
913913
});
914914

915-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
915+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
916916
EXPECT_EQ(DiagCount, 3U);
917917
}
918918

@@ -934,7 +934,7 @@ TEST_F(TUSchedulerTests, NoChangeDiags) {
934934
// Make sure the AST was actually built.
935935
cantFail(std::move(IA));
936936
});
937-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
937+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
938938
EXPECT_THAT(Tracer.takeMetric("ast_access_read", "hit"), SizeIs(0));
939939
EXPECT_THAT(Tracer.takeMetric("ast_access_read", "miss"), SizeIs(1));
940940

@@ -943,7 +943,7 @@ TEST_F(TUSchedulerTests, NoChangeDiags) {
943943
std::atomic<bool> SeenDiags(false);
944944
updateWithDiags(S, FooCpp, Contents, WantDiagnostics::Auto,
945945
[&](std::vector<Diag>) { SeenDiags = true; });
946-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
946+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
947947
ASSERT_TRUE(SeenDiags);
948948
EXPECT_THAT(Tracer.takeMetric("ast_access_diag", "hit"), SizeIs(1));
949949
EXPECT_THAT(Tracer.takeMetric("ast_access_diag", "miss"), SizeIs(0));
@@ -953,7 +953,7 @@ TEST_F(TUSchedulerTests, NoChangeDiags) {
953953
updateWithDiags(
954954
S, FooCpp, Contents, WantDiagnostics::Auto,
955955
[&](std::vector<Diag>) { ADD_FAILURE() << "Should not be called."; });
956-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
956+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
957957
}
958958

959959
TEST_F(TUSchedulerTests, Run) {
@@ -965,7 +965,7 @@ TEST_F(TUSchedulerTests, Run) {
965965
std::atomic<int> Counter(0);
966966
S.run("add 1", /*Path=*/"", [&] { ++Counter; });
967967
S.run("add 2", /*Path=*/"", [&] { Counter += 2; });
968-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
968+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
969969
EXPECT_EQ(Counter.load(), 3);
970970

971971
Notification TaskRun;
@@ -1157,7 +1157,7 @@ TEST_F(TUSchedulerTests, AsyncPreambleThread) {
11571157
auto PI = getInputs(File, "");
11581158
PI.Version = InputsV0.str();
11591159
S.update(File, PI, WantDiagnostics::Auto);
1160-
S.blockUntilIdle(timeoutSeconds(10));
1160+
S.blockUntilIdle(timeoutSeconds(60));
11611161

11621162
// Block preamble builds.
11631163
PI.Version = InputsV1.str();
@@ -1193,15 +1193,15 @@ TEST_F(TUSchedulerTests, OnlyPublishWhenPreambleIsBuilt) {
11931193

11941194
Path File = testPath("foo.cpp");
11951195
S.update(File, getInputs(File, ""), WantDiagnostics::Auto);
1196-
S.blockUntilIdle(timeoutSeconds(10));
1196+
S.blockUntilIdle(timeoutSeconds(60));
11971197
EXPECT_EQ(PreamblePublishCount, 1);
11981198
// Same contents, no publish.
11991199
S.update(File, getInputs(File, ""), WantDiagnostics::Auto);
1200-
S.blockUntilIdle(timeoutSeconds(10));
1200+
S.blockUntilIdle(timeoutSeconds(60));
12011201
EXPECT_EQ(PreamblePublishCount, 1);
12021202
// New contents, should publish.
12031203
S.update(File, getInputs(File, "#define FOO"), WantDiagnostics::Auto);
1204-
S.blockUntilIdle(timeoutSeconds(10));
1204+
S.blockUntilIdle(timeoutSeconds(60));
12051205
EXPECT_EQ(PreamblePublishCount, 2);
12061206
}
12071207

@@ -1218,7 +1218,7 @@ TEST_F(TUSchedulerTests, PublishWithStalePreamble) {
12181218
PathRef Path, llvm::StringRef Version, CapturedASTCtx,
12191219
std::shared_ptr<const include_cleaner::PragmaIncludes>) override {
12201220
if (BuildBefore)
1221-
ASSERT_TRUE(UnblockPreamble.wait(timeoutSeconds(5)))
1221+
ASSERT_TRUE(UnblockPreamble.wait(timeoutSeconds(60)))
12221222
<< "Expected notification";
12231223
BuildBefore = true;
12241224
}
@@ -1307,7 +1307,7 @@ TEST_F(TUSchedulerTests, PublishWithStalePreamble) {
13071307
ASSERT_THAT(BlockForDiags(PI), testing::Pair("1", "3"));
13081308

13091309
UnblockPreamble.notify();
1310-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(5)));
1310+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
13111311

13121312
// Make sure that we have eventual consistency.
13131313
EXPECT_THAT(Collector.diagVersions().back(), Pair(PI.Version, PI.Version));
@@ -1316,7 +1316,7 @@ TEST_F(TUSchedulerTests, PublishWithStalePreamble) {
13161316
PI.Version = "4";
13171317
PI.Contents = "#define FOO\n" + PI.Version;
13181318
S.update(File, PI, WantDiagnostics::No);
1319-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(5)));
1319+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
13201320
EXPECT_THAT(Collector.diagVersions().back(), Pair("3", "3"));
13211321
}
13221322

@@ -1353,7 +1353,7 @@ TEST_F(TUSchedulerTests, IncluderCache) {
13531353
TUScheduler S(CDB, optsForTest());
13541354
auto GetFlags = [&](PathRef Header) {
13551355
S.update(Header, getInputs(Header, ";"), WantDiagnostics::Yes);
1356-
EXPECT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
1356+
EXPECT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
13571357
Notification CmdDone;
13581358
tooling::CompileCommand Cmd;
13591359
S.runWithPreamble("GetFlags", Header, TUScheduler::StaleOrAbsent,
@@ -1363,7 +1363,7 @@ TEST_F(TUSchedulerTests, IncluderCache) {
13631363
CmdDone.notify();
13641364
});
13651365
CmdDone.wait();
1366-
EXPECT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
1366+
EXPECT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
13671367
return Cmd.CommandLine;
13681368
};
13691369

@@ -1381,7 +1381,7 @@ TEST_F(TUSchedulerTests, IncluderCache) {
13811381
#include "unreliable.h"
13821382
)cpp";
13831383
S.update(Main, getInputs(Main, AllIncludes), WantDiagnostics::Yes);
1384-
EXPECT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
1384+
EXPECT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
13851385
EXPECT_THAT(GetFlags(NoCmd), Contains("-DMAIN"))
13861386
<< "Included from main file, has no own command";
13871387
EXPECT_THAT(GetFlags(Unreliable), Contains("-DMAIN"))
@@ -1397,7 +1397,7 @@ TEST_F(TUSchedulerTests, IncluderCache) {
13971397
#include "not_included.h"
13981398
)cpp";
13991399
S.update(Main2, getInputs(Main2, SomeIncludes), WantDiagnostics::Yes);
1400-
EXPECT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
1400+
EXPECT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
14011401
EXPECT_THAT(GetFlags(NoCmd),
14021402
AllOf(Contains("-DMAIN"), Not(Contains("-DMAIN2"))))
14031403
<< "mainfile association is stable";
@@ -1408,14 +1408,14 @@ TEST_F(TUSchedulerTests, IncluderCache) {
14081408
// Remove includes from main - this marks the associations as invalid but
14091409
// doesn't actually remove them until another preamble claims them.
14101410
S.update(Main, getInputs(Main, ""), WantDiagnostics::Yes);
1411-
EXPECT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
1411+
EXPECT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
14121412
EXPECT_THAT(GetFlags(NoCmd),
14131413
AllOf(Contains("-DMAIN"), Not(Contains("-DMAIN2"))))
14141414
<< "mainfile association not updated yet!";
14151415

14161416
// Open yet another file - this time it claims the associations.
14171417
S.update(Main3, getInputs(Main3, SomeIncludes), WantDiagnostics::Yes);
1418-
EXPECT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
1418+
EXPECT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
14191419
EXPECT_THAT(GetFlags(NoCmd), Contains("-DMAIN3"))
14201420
<< "association invalidated and then claimed by main3";
14211421
EXPECT_THAT(GetFlags(Unreliable), Contains("-DMAIN"))
@@ -1430,11 +1430,11 @@ TEST_F(TUSchedulerTests, IncluderCache) {
14301430
// Also run update for Main3 to invalidate the preeamble to make sure next
14311431
// update populates include cache associations.
14321432
S.update(Main3, getInputs(Main3, SomeIncludes), WantDiagnostics::Yes);
1433-
EXPECT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
1433+
EXPECT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
14341434
// Re-add the file and make sure nothing crashes.
14351435
CDB.FailAll = false;
14361436
S.update(Main3, getInputs(Main3, SomeIncludes), WantDiagnostics::Yes);
1437-
EXPECT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
1437+
EXPECT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
14381438
EXPECT_THAT(GetFlags(NoCmd), Contains("-DMAIN3"))
14391439
<< "association invalidated and then claimed by main3";
14401440
}
@@ -1448,7 +1448,7 @@ TEST_F(TUSchedulerTests, PreservesLastActiveFile) {
14481448

14491449
auto CheckNoFileActionsSeesLastActiveFile =
14501450
[&](llvm::StringRef LastActiveFile) {
1451-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
1451+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
14521452
std::atomic<int> Counter(0);
14531453
// We only check for run and runQuick as runWithAST and
14541454
// runWithPreamble is always bound to a file.
@@ -1460,7 +1460,7 @@ TEST_F(TUSchedulerTests, PreservesLastActiveFile) {
14601460
++Counter;
14611461
EXPECT_EQ(LastActiveFile, boundPath());
14621462
});
1463-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
1463+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
14641464
EXPECT_EQ(2, Counter.load());
14651465
};
14661466

@@ -1589,7 +1589,7 @@ TEST_F(TUSchedulerTests, PreambleThrottle) {
15891589
Filenames.push_back(Path);
15901590
S.update(Path, getInputs(Path, ""), WantDiagnostics::Yes);
15911591
}
1592-
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
1592+
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(60)));
15931593

15941594
// The throttler saw all files, and we built them.
15951595
EXPECT_THAT(Throttler.Acquires,

0 commit comments

Comments
 (0)