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 error reporting for watches #45

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

Implement error reporting for watches #45

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 allows CrashMonkey to report errors when the files being watched change in generated crash states.

Each time a crash state is generated, CrashMonkey should examine the checkpoint for the crash state (see #41/#42) and then check all file watches referencing that checkpoint and earlier.

When "checking" a watched file, CrashMonkey should checksum the file data and selected metadata (see #44) at that path present in the generated crash state. If the crash state's checksum does not match the checksum calculated when the file watch was setup, then CrashMonkey should note the error in detail (ex. "checksum for file is incorrect" -- see DataTestResult.h for an example of error strings) in a results/xResult struct (you will likely have to modify or make a new struct for this). Recording specific errors in a xResult struct will allow these errors to be printed to the log later in test harness execution.

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