(t *testing.T)
| 251 | } |
| 252 | |
| 253 | func TestDropReadOnly(t *testing.T) { |
| 254 | dir, err := ioutil.TempDir("", "badger-test") |
| 255 | require.NoError(t, err) |
| 256 | defer removeDir(dir) |
| 257 | opts := getTestOptions(dir) |
| 258 | opts.ValueLogFileSize = 5 << 20 |
| 259 | db, err := Open(opts) |
| 260 | require.NoError(t, err) |
| 261 | N := uint64(1000) |
| 262 | populate := func(db *DB) { |
| 263 | writer := db.NewWriteBatch() |
| 264 | for i := uint64(0); i < N; i++ { |
| 265 | require.NoError(t, writer.Set([]byte(key("key", int(i))), val(true))) |
| 266 | } |
| 267 | require.NoError(t, writer.Flush()) |
| 268 | } |
| 269 | |
| 270 | populate(db) |
| 271 | require.Equal(t, int(N), numKeys(db)) |
| 272 | require.NoError(t, db.Close()) |
| 273 | |
| 274 | opts.ReadOnly = true |
| 275 | db2, err := Open(opts) |
| 276 | // acquireDirectoryLock returns ErrWindowsNotSupported on Windows. It can be ignored safely. |
| 277 | if runtime.GOOS == "windows" { |
| 278 | require.Equal(t, err, ErrWindowsNotSupported) |
| 279 | } else { |
| 280 | require.NoError(t, err) |
| 281 | require.Panics(t, func() { db2.DropAll() }) |
| 282 | require.NoError(t, db2.Close()) |
| 283 | } |
| 284 | } |
| 285 | |
| 286 | func TestWriteAfterClose(t *testing.T) { |
| 287 | dir, err := ioutil.TempDir("", "badger-test") |
nothing calls this directly
no test coverage detected
searching dependent graphs…