(t *testing.T)
| 841 | } |
| 842 | |
| 843 | func TestDB_MergeHintFileDifferentDataStructures(t *testing.T) { |
| 844 | runForMergeModes(t, func(t *testing.T, mode mergeTestMode) { |
| 845 | opts := DefaultOptions |
| 846 | opts.SegmentSize = KB |
| 847 | opts.Dir = fmt.Sprintf("/tmp/test-merge-hintfile-ds-%s/", mode.name) |
| 848 | opts.EnableHintFile = true |
| 849 | opts.EnableMergeV2 = mode.enableMergeV2 |
| 850 | |
| 851 | removeDir(opts.Dir) |
| 852 | |
| 853 | db, err := Open(opts) |
| 854 | require.NoError(t, err) |
| 855 | |
| 856 | bucketBTree := "bucket_btree" |
| 857 | txCreateBucket(t, db, DataStructureBTree, bucketBTree, nil) |
| 858 | for i := 0; i < 100; i++ { |
| 859 | txPut(t, db, bucketBTree, testutils.GetTestBytes(i), testutils.GetTestBytes(i), Persistent, nil, nil) |
| 860 | } |
| 861 | |
| 862 | bucketSet := "bucket_set" |
| 863 | txCreateBucket(t, db, DataStructureSet, bucketSet, nil) |
| 864 | key := testutils.GetTestBytes(0) |
| 865 | for i := 0; i < 50; i++ { |
| 866 | txSAdd(t, db, bucketSet, key, testutils.GetTestBytes(i), nil, nil) |
| 867 | } |
| 868 | |
| 869 | bucketList := "bucket_list" |
| 870 | txCreateBucket(t, db, DataStructureList, bucketList, nil) |
| 871 | listKey := testutils.GetTestBytes(0) |
| 872 | for i := 0; i < 30; i++ { |
| 873 | txPush(t, db, bucketList, listKey, testutils.GetTestBytes(i), true, nil, nil) |
| 874 | } |
| 875 | |
| 876 | bucketZSet := "bucket_zset" |
| 877 | txCreateBucket(t, db, DataStructureSortedSet, bucketZSet, nil) |
| 878 | zsetKey := testutils.GetTestBytes(0) |
| 879 | for i := 0; i < 20; i++ { |
| 880 | txZAdd(t, db, bucketZSet, zsetKey, testutils.GetTestBytes(i), float64(i), nil, nil) |
| 881 | } |
| 882 | |
| 883 | for i := 0; i < 25; i++ { |
| 884 | txDel(t, db, bucketBTree, testutils.GetTestBytes(i), nil) |
| 885 | } |
| 886 | for i := 0; i < 10; i++ { |
| 887 | txSRem(t, db, bucketSet, key, testutils.GetTestBytes(i), nil) |
| 888 | } |
| 889 | for i := 0; i < 5; i++ { |
| 890 | txPop(t, db, bucketList, listKey, testutils.GetTestBytes(i), nil, false) |
| 891 | } |
| 892 | for i := 0; i < 5; i++ { |
| 893 | txZRem(t, db, bucketZSet, zsetKey, testutils.GetTestBytes(i), nil) |
| 894 | } |
| 895 | |
| 896 | require.NoError(t, db.Merge()) |
| 897 | |
| 898 | sets := collectMergeFileSets(t, opts.Dir) |
| 899 | idsToCheck := dataFileIDsForMode(mode, sets) |
| 900 | require.Greater(t, len(idsToCheck), 0) |
nothing calls this directly
no test coverage detected