Skip to content
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

Implement stub program and API for users to create file watches #43

Open
ashmrtn opened this issue Sep 13, 2017 · 0 comments
Open

Implement stub program and API for users to create file watches #43

ashmrtn opened this issue Sep 13, 2017 · 0 comments

Comments

@ashmrtn
Copy link
Member

ashmrtn commented Sep 13, 2017

File watches are a feature that would make checking for data consistency a lot easier on users. Therefore, CrashMonkey should support a system where a user can tell CrashMonkey what files should no longer change. These watches may be tied to certain checkpoints in the workload, or they may be something that holds through the entire workload.

For watches, we can assume a few things:

  1. the call will block until the watch has been setup
  2. the watch will either reference a checkpoint, or be before any file system operations have completed
  3. if the watch references a checkpoint, the watch function is called directly after a call to checkpoint

This part of the watch infrastructure gives user workloads the ability to tell CrashMonkey to watch a file. Since workloads can be run either by CrashMonkey (by subclassing BaseTest.h) or with CrashMonkey in the background, we need to provide both a stub binary and a simple API to setup watches. Watch setup should use sockets to communicate with the CrashMonkey test harness (see utils/communication/).

When the user requests a watch on a file, the stub should do the following:

  1. send the file path and checkpoint number (or some "null" checkpoint number if the workload is just starting) to the CrashMonkey test harness via socket
  2. wait for the CrashMonkey test harness that either the watch has been successfully setup or there was a problem with the watch.
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

No branches or pull requests

1 participant