[PATCH] D56336: [Support] unflake TempFileCollisions test
Bob Haarman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 9 17:19:45 PDT 2019
inglorion updated this revision to Diff 194421.
inglorion edited the summary of this revision.
inglorion added a reviewer: rsmith.
inglorion removed a subscriber: rsmith.
inglorion added a comment.
Updated as suggested by @rsmith (thanks!)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D56336/new/
https://reviews.llvm.org/D56336
Files:
llvm/unittests/Support/Path.cpp
Index: llvm/unittests/Support/Path.cpp
===================================================================
--- llvm/unittests/Support/Path.cpp
+++ llvm/unittests/Support/Path.cpp
@@ -700,10 +700,18 @@
}
};
- // We should be able to create exactly 16 temporary files.
- for (int i = 0; i < 16; ++i)
- EXPECT_TRUE(TryCreateTempFile());
- EXPECT_FALSE(TryCreateTempFile());
+ // Our single-character template allows for 16 unique names. Check that
+ // calling TryCreateTempFile repeatedly results in 16 successes.
+ // Because the test depends on random numbers, it could theoretically fail.
+ // However, the probability of this happening is tiny: with 32 calls, each
+ // of which will retry up to 128 times, to not get a given digit we would
+ // have to fail at least 15 + 17 * 128 = 2191 attempts. The probability of
+ // 2191 attempts not producing a given hexadecimal digit is
+ // (1 - 1/16) ** 2191 or 3.88e-62.
+ int Successes = 0;
+ for (int i = 0; i < 32; ++i)
+ if (TryCreateTempFile()) ++Successes;
+ EXPECT_EQ(Successes, 16);
for (fs::TempFile &T : TempFiles)
cantFail(T.discard());
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D56336.194421.patch
Type: text/x-patch
Size: 1136 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190410/ece2ab3f/attachment.bin>
More information about the llvm-commits
mailing list