| 138 | |
| 139 | #[test] |
| 140 | fn append_and_recover() { |
| 141 | let dir = tempfile::tempdir().expect("create temp dir"); |
| 142 | let audit_dir = dir.path().join("audit.wal"); |
| 143 | |
| 144 | let segment = AuditWalSegment::open(&audit_dir, false).expect("open audit WAL"); |
| 145 | |
| 146 | // Append two entries. |
| 147 | let lsn1 = segment |
| 148 | .append_durable(b"audit-entry-1", 100) |
| 149 | .expect("append entry 1"); |
| 150 | let lsn2 = segment |
| 151 | .append_durable(b"audit-entry-2", 200) |
| 152 | .expect("append entry 2"); |
| 153 | assert!(lsn2 > lsn1); |
| 154 | |
| 155 | // Recover. |
| 156 | let recovered = segment.recover().expect("recover audit WAL"); |
| 157 | assert_eq!(recovered.len(), 2); |
| 158 | assert_eq!(recovered[0].0, 100); // data_lsn |
| 159 | assert_eq!(recovered[0].1, b"audit-entry-1"); |
| 160 | assert_eq!(recovered[1].0, 200); |
| 161 | assert_eq!(recovered[1].1, b"audit-entry-2"); |
| 162 | } |
| 163 | |
| 164 | #[test] |
| 165 | fn empty_recovery() { |