Skip to content

[llvm][cas] Implement a CAS stress tester #10606

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 13, 2025

Conversation

cachemeifyoucan
Copy link

@cachemeifyoucan cachemeifyoucan commented May 1, 2025

This is a basic tester for CAS ObjectStore that will insert random data into CAS and validate with several configurations randomly generated. It will check:

  • multi-threaded insertion
  • multi-process insertion
  • try randomly kill the subprocesses that are inserting data

And make sure it doesn't leave CAS in an invalid state. Suggested usage:

LLVM_CAS_LOG=2 llvm-cas-test --cas=... --print-config

@cachemeifyoucan cachemeifyoucan changed the title [llvm][cas] Implement basic fuzzer [llvm][cas] Implement a CAS stress tester May 7, 2025
@cachemeifyoucan
Copy link
Author

@swift-ci please test llvm

Copy link

@benlangmuir benlangmuir left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we are going to name this "llvm-cas-test" would we expect other kinds of testing functionality to be in this tool? I'm thinking of llvm-cas -check-lock-files , since it's also more of a stress test than a general utility.

I'd also be fine keeping this focused on fuzzing, but then I would go back to llvm-cas-fuzzer or similar name.

@cachemeifyoucan
Copy link
Author

I'd also be fine keeping this focused on fuzzing, but then I would go back to llvm-cas-fuzzer or similar name.

The name change is because I removed the libfuzzer dependency as I only using the coverage guided random input generation which I don't think add any value. I guess we can still call it -fuzzer but I like the idea of moving other testing function over into this tool.

This is a basic tester for CAS ObjectStore that will insert random data
into CAS and validate with several configurations randomly generated.
It will check:

* multi-threaded insertion
* multi-process insertion
* try randomly kill the subprocesses that are inserting data

And make sure it doesn't leave CAS in an invalid state. Suggested usage:
```
LLVM_CAS_LOG=2 llvm-cas-test --cas=... --print-config
```
@cachemeifyoucan
Copy link
Author

@swift-ci please test llvm

@cachemeifyoucan cachemeifyoucan merged commit acc4eb1 into swiftlang:next May 13, 2025
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants