(t *testing.T)
| 769 | } |
| 770 | |
| 771 | func TestTx_PrefixSearchScan_NotFound(t *testing.T) { |
| 772 | regs := "(.+)" |
| 773 | bucket := "bucket_prefix_search_scan_test" |
| 774 | |
| 775 | t.Run("prefix search in empty bucket", func(t *testing.T) { |
| 776 | withDefaultDB(t, func(t *testing.T, db *DB) { |
| 777 | txCreateBucket(t, db, DataStructureBTree, bucket, nil) |
| 778 | |
| 779 | tx, err := db.Begin(false) |
| 780 | require.NoError(t, err) |
| 781 | |
| 782 | prefix := []byte("key_") |
| 783 | _, err = tx.PrefixSearchScan("foobucket", prefix, regs, 0, 10) |
| 784 | assert.Error(t, err) |
| 785 | |
| 786 | assert.NoError(t, tx.Commit()) |
| 787 | }) |
| 788 | }) |
| 789 | |
| 790 | t.Run("prefix search scan", func(t *testing.T) { |
| 791 | withDefaultDB(t, func(t *testing.T, db *DB) { |
| 792 | { // set up the data |
| 793 | txCreateBucket(t, db, DataStructureBTree, bucket, nil) |
| 794 | |
| 795 | tx, err = db.Begin(true) // write tx begin |
| 796 | require.NoError(t, err) |
| 797 | |
| 798 | for i := 0; i <= 10; i++ { |
| 799 | key := []byte("key_" + fmt.Sprintf("%07d", i)) |
| 800 | val := []byte("val" + fmt.Sprintf("%07d", i)) |
| 801 | |
| 802 | err := tx.Put(bucket, key, val, Persistent) |
| 803 | assert.NoError(t, err) |
| 804 | } |
| 805 | // tx commit |
| 806 | assert.NoError(t, tx.Commit()) |
| 807 | } |
| 808 | |
| 809 | { // no key exists in bucket |
| 810 | tx, err := db.Begin(false) |
| 811 | require.NoError(t, err) |
| 812 | |
| 813 | prefix := []byte("key_foo") |
| 814 | _, err = tx.PrefixSearchScan(bucket, prefix, regs, 0, 10) |
| 815 | assert.Error(t, err) |
| 816 | |
| 817 | assert.NoError(t, tx.Rollback()) |
| 818 | } |
| 819 | |
| 820 | { // scan by closed tx |
| 821 | tx, err := db.Begin(false) |
| 822 | require.NoError(t, err) |
| 823 | |
| 824 | assert.NoError(t, tx.Commit()) |
| 825 | |
| 826 | _, err = tx.PrefixSearchScan(bucket, []byte("key_"), regs, 0, 10) |
| 827 | assert.Error(t, err) |
| 828 | } |
nothing calls this directly
no test coverage detected