[PATCH] D123636: [randstruct] Add test for "-frandomize-layout-seed-file" flag

Bill Wendling via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Apr 13 13:31:34 PDT 2022


void added inline comments.


================
Comment at: clang/unittests/AST/RandstructTest.cpp:56
+  llvm::SmallString<256> SeedFilename;
+  EXPECT_FALSE(llvm::sys::fs::createTemporaryFile("seed", "rng", SeedFileFD,
+                                                  SeedFilename));
----------------
aaron.ballman wrote:
> I think this is a case where you want to use `ASSERT_FALSE` because if this fails, the rest of the test also fails.
There's an explanation below.


================
Comment at: clang/unittests/AST/RandstructTest.cpp:72
+
+  return std::tuple<ASTUnit *, ASTUnit *>(AST.release(), ASTFileSeed.release());
+};
----------------
aaron.ballman wrote:
> Why not keep these as unique pointers and move them into the tuple? Then the callers don't have to call delete manually.
The d'tors for the `unique_ptr`s is called if I place them in the tuple. I think it's because I can't do something like this:

```
const unique_ptr<ASTUnit> std::tie(AST, ASTFileSeed) = makeAST(...);
```

in the test functions. When I assign it as a non-initializer, it apparently calls the d'tor. So, kinda stumped on what to do.

And the `EXPECT_FALSE` above is used because the `ASSERT_FALSE` adds an extra return point, which messes with the lambda.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D123636/new/

https://reviews.llvm.org/D123636



More information about the cfe-commits mailing list