{
  "cases": [
    {
      "error_after_successful_sync": false,
      "pass": true,
      "point": "create_journal",
      "reserved": false
    },
    {
      "error_after_successful_sync": true,
      "pass": true,
      "point": "create_journal",
      "reserved": false
    },
    {
      "error_after_successful_sync": false,
      "pass": true,
      "point": "create_directory",
      "reserved": false
    },
    {
      "error_after_successful_sync": true,
      "pass": true,
      "point": "create_directory",
      "reserved": false
    },
    {
      "error_after_successful_sync": false,
      "pass": true,
      "point": "truncate_tail",
      "reserved": false
    },
    {
      "error_after_successful_sync": true,
      "pass": true,
      "point": "truncate_tail",
      "reserved": false
    },
    {
      "error_after_successful_sync": false,
      "pass": true,
      "point": "open_journal",
      "reserved": false
    },
    {
      "error_after_successful_sync": true,
      "pass": true,
      "point": "open_journal",
      "reserved": false
    },
    {
      "error_after_successful_sync": false,
      "pass": true,
      "point": "open_directory",
      "reserved": false
    },
    {
      "error_after_successful_sync": true,
      "pass": true,
      "point": "open_directory",
      "reserved": false
    },
    {
      "error_after_successful_sync": false,
      "pass": true,
      "point": "admit",
      "reserved": false
    },
    {
      "error_after_successful_sync": true,
      "pass": true,
      "point": "admit",
      "reserved": false
    },
    {
      "error_after_successful_sync": false,
      "pass": true,
      "point": "conflict",
      "reserved": false
    },
    {
      "error_after_successful_sync": true,
      "pass": true,
      "point": "conflict",
      "reserved": false
    },
    {
      "error_after_successful_sync": false,
      "pass": true,
      "point": "rollover_pending",
      "reserved": false
    },
    {
      "error_after_successful_sync": true,
      "pass": true,
      "point": "rollover_pending",
      "reserved": false
    },
    {
      "error_after_successful_sync": false,
      "pass": true,
      "point": "rollover_directory",
      "reserved": false
    },
    {
      "error_after_successful_sync": true,
      "pass": true,
      "point": "rollover_directory",
      "reserved": false
    },
    {
      "error_after_successful_sync": false,
      "pass": true,
      "point": "create_journal",
      "reserved": true
    },
    {
      "error_after_successful_sync": true,
      "pass": true,
      "point": "create_journal",
      "reserved": true
    },
    {
      "error_after_successful_sync": false,
      "pass": true,
      "point": "create_directory",
      "reserved": true
    },
    {
      "error_after_successful_sync": true,
      "pass": true,
      "point": "create_directory",
      "reserved": true
    },
    {
      "error_after_successful_sync": false,
      "pass": true,
      "point": "truncate_tail",
      "reserved": true
    },
    {
      "error_after_successful_sync": true,
      "pass": true,
      "point": "truncate_tail",
      "reserved": true
    },
    {
      "error_after_successful_sync": false,
      "pass": true,
      "point": "open_journal",
      "reserved": true
    },
    {
      "error_after_successful_sync": true,
      "pass": true,
      "point": "open_journal",
      "reserved": true
    },
    {
      "error_after_successful_sync": false,
      "pass": true,
      "point": "open_directory",
      "reserved": true
    },
    {
      "error_after_successful_sync": true,
      "pass": true,
      "point": "open_directory",
      "reserved": true
    },
    {
      "error_after_successful_sync": false,
      "pass": true,
      "point": "admit",
      "reserved": true
    },
    {
      "error_after_successful_sync": true,
      "pass": true,
      "point": "admit",
      "reserved": true
    },
    {
      "error_after_successful_sync": false,
      "pass": true,
      "point": "conflict",
      "reserved": true
    },
    {
      "error_after_successful_sync": true,
      "pass": true,
      "point": "conflict",
      "reserved": true
    },
    {
      "error_after_successful_sync": false,
      "pass": true,
      "point": "rollover_pending",
      "reserved": true
    },
    {
      "error_after_successful_sync": true,
      "pass": true,
      "point": "rollover_pending",
      "reserved": true
    },
    {
      "error_after_successful_sync": false,
      "pass": true,
      "point": "rollover_directory",
      "reserved": true
    },
    {
      "error_after_successful_sync": true,
      "pass": true,
      "point": "rollover_directory",
      "reserved": true
    }
  ],
  "limitations": "36 test-only injected errors before fsync or after a successful fsync. Actual filesystem operations, no power cut or device failure. Before-sync cases observe surviving bytes; lost unacknowledged tails tested separately."
}