isomorfeus-ferret 0.17.2 → 0.17.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/ext/isomorfeus_ferret_ext/benchmark.c +9 -20
  3. data/ext/isomorfeus_ferret_ext/benchmarks_all.h +1 -2
  4. data/ext/isomorfeus_ferret_ext/bm_hash.c +1 -2
  5. data/ext/isomorfeus_ferret_ext/brotli_dec_decode.c +4 -2
  6. data/ext/isomorfeus_ferret_ext/brotli_enc_encode.c +3 -2
  7. data/ext/isomorfeus_ferret_ext/frb_analysis.c +4 -5
  8. data/ext/isomorfeus_ferret_ext/frb_field_info.c +3 -4
  9. data/ext/isomorfeus_ferret_ext/frb_index.c +118 -125
  10. data/ext/isomorfeus_ferret_ext/frb_lazy_doc.c +14 -16
  11. data/ext/isomorfeus_ferret_ext/frb_search.c +31 -23
  12. data/ext/isomorfeus_ferret_ext/frb_store.c +27 -13
  13. data/ext/isomorfeus_ferret_ext/frb_utils.c +3 -6
  14. data/ext/isomorfeus_ferret_ext/frt_analysis.c +39 -46
  15. data/ext/isomorfeus_ferret_ext/frt_analysis.h +9 -9
  16. data/ext/isomorfeus_ferret_ext/frt_array.c +11 -22
  17. data/ext/isomorfeus_ferret_ext/frt_bitvector.h +3 -6
  18. data/ext/isomorfeus_ferret_ext/frt_doc_field.c +87 -0
  19. data/ext/isomorfeus_ferret_ext/frt_doc_field.h +26 -0
  20. data/ext/isomorfeus_ferret_ext/frt_document.c +4 -97
  21. data/ext/isomorfeus_ferret_ext/frt_document.h +2 -27
  22. data/ext/isomorfeus_ferret_ext/frt_except.c +8 -6
  23. data/ext/isomorfeus_ferret_ext/frt_except.h +1 -2
  24. data/ext/isomorfeus_ferret_ext/frt_field_index.c +13 -32
  25. data/ext/isomorfeus_ferret_ext/frt_field_index.h +0 -6
  26. data/ext/isomorfeus_ferret_ext/frt_field_info.c +69 -0
  27. data/ext/isomorfeus_ferret_ext/frt_field_info.h +49 -0
  28. data/ext/isomorfeus_ferret_ext/frt_field_infos.c +196 -0
  29. data/ext/isomorfeus_ferret_ext/frt_field_infos.h +35 -0
  30. data/ext/isomorfeus_ferret_ext/frt_global.c +10 -4
  31. data/ext/isomorfeus_ferret_ext/frt_global.h +11 -15
  32. data/ext/isomorfeus_ferret_ext/frt_hash.c +8 -8
  33. data/ext/isomorfeus_ferret_ext/frt_hash.h +1 -2
  34. data/ext/isomorfeus_ferret_ext/frt_hashset.c +20 -40
  35. data/ext/isomorfeus_ferret_ext/frt_hashset.h +1 -2
  36. data/ext/isomorfeus_ferret_ext/frt_helper.c +7 -15
  37. data/ext/isomorfeus_ferret_ext/frt_in_stream.c +35 -45
  38. data/ext/isomorfeus_ferret_ext/frt_in_stream.h +3 -2
  39. data/ext/isomorfeus_ferret_ext/frt_ind.c +20 -38
  40. data/ext/isomorfeus_ferret_ext/frt_index.c +292 -790
  41. data/ext/isomorfeus_ferret_ext/frt_index.h +1 -102
  42. data/ext/isomorfeus_ferret_ext/frt_lang.c +5 -10
  43. data/ext/isomorfeus_ferret_ext/frt_lazy_doc.c +3 -3
  44. data/ext/isomorfeus_ferret_ext/frt_lazy_doc.h +1 -1
  45. data/ext/isomorfeus_ferret_ext/frt_lazy_doc_field.c +18 -25
  46. data/ext/isomorfeus_ferret_ext/frt_lazy_doc_field.h +5 -5
  47. data/ext/isomorfeus_ferret_ext/frt_mdbx_store.c +102 -70
  48. data/ext/isomorfeus_ferret_ext/frt_mempool.c +8 -16
  49. data/ext/isomorfeus_ferret_ext/frt_multimapper.c +23 -46
  50. data/ext/isomorfeus_ferret_ext/frt_multimapper.h +4 -8
  51. data/ext/isomorfeus_ferret_ext/frt_out_stream.c +31 -43
  52. data/ext/isomorfeus_ferret_ext/frt_out_stream.h +2 -2
  53. data/ext/isomorfeus_ferret_ext/frt_posh.c +6 -819
  54. data/ext/isomorfeus_ferret_ext/frt_posh.h +0 -57
  55. data/ext/isomorfeus_ferret_ext/frt_priorityqueue.c +11 -22
  56. data/ext/isomorfeus_ferret_ext/frt_priorityqueue.h +1 -2
  57. data/ext/isomorfeus_ferret_ext/frt_q_boolean.c +85 -171
  58. data/ext/isomorfeus_ferret_ext/frt_q_match_all.c +8 -16
  59. data/ext/isomorfeus_ferret_ext/frt_q_multi_term.c +1 -2
  60. data/ext/isomorfeus_ferret_ext/frt_q_parser.c +49 -98
  61. data/ext/isomorfeus_ferret_ext/frt_q_phrase.c +52 -104
  62. data/ext/isomorfeus_ferret_ext/frt_q_range.c +6 -12
  63. data/ext/isomorfeus_ferret_ext/frt_q_span.c +113 -226
  64. data/ext/isomorfeus_ferret_ext/frt_q_wildcard.c +1 -2
  65. data/ext/isomorfeus_ferret_ext/frt_ram_store.c +134 -85
  66. data/ext/isomorfeus_ferret_ext/frt_search.c +82 -164
  67. data/ext/isomorfeus_ferret_ext/frt_similarity.c +11 -22
  68. data/ext/isomorfeus_ferret_ext/frt_similarity.h +1 -2
  69. data/ext/isomorfeus_ferret_ext/frt_store.c +13 -25
  70. data/ext/isomorfeus_ferret_ext/frt_store.h +86 -52
  71. data/ext/isomorfeus_ferret_ext/frt_term_vectors.c +8 -16
  72. data/ext/isomorfeus_ferret_ext/frt_win32.h +5 -10
  73. data/ext/isomorfeus_ferret_ext/isomorfeus_ferret.c +12 -11
  74. data/ext/isomorfeus_ferret_ext/isomorfeus_ferret.h +11 -13
  75. data/ext/isomorfeus_ferret_ext/lz4.c +422 -195
  76. data/ext/isomorfeus_ferret_ext/lz4.h +114 -46
  77. data/ext/isomorfeus_ferret_ext/lz4frame.c +421 -242
  78. data/ext/isomorfeus_ferret_ext/lz4frame.h +122 -53
  79. data/ext/isomorfeus_ferret_ext/lz4hc.c +127 -111
  80. data/ext/isomorfeus_ferret_ext/lz4hc.h +14 -14
  81. data/ext/isomorfeus_ferret_ext/lz4xxhash.h +1 -1
  82. data/ext/isomorfeus_ferret_ext/mdbx.c +3762 -2526
  83. data/ext/isomorfeus_ferret_ext/mdbx.h +115 -70
  84. data/ext/isomorfeus_ferret_ext/test.c +40 -87
  85. data/ext/isomorfeus_ferret_ext/test.h +3 -6
  86. data/ext/isomorfeus_ferret_ext/test_1710.c +11 -13
  87. data/ext/isomorfeus_ferret_ext/test_analysis.c +32 -64
  88. data/ext/isomorfeus_ferret_ext/test_array.c +6 -12
  89. data/ext/isomorfeus_ferret_ext/test_bitvector.c +12 -24
  90. data/ext/isomorfeus_ferret_ext/test_document.c +23 -33
  91. data/ext/isomorfeus_ferret_ext/test_except.c +10 -21
  92. data/ext/isomorfeus_ferret_ext/test_fields.c +62 -68
  93. data/ext/isomorfeus_ferret_ext/test_file_deleter.c +15 -23
  94. data/ext/isomorfeus_ferret_ext/test_filter.c +17 -27
  95. data/ext/isomorfeus_ferret_ext/test_global.c +14 -29
  96. data/ext/isomorfeus_ferret_ext/test_hash.c +19 -38
  97. data/ext/isomorfeus_ferret_ext/test_hashset.c +8 -16
  98. data/ext/isomorfeus_ferret_ext/test_helper.c +4 -8
  99. data/ext/isomorfeus_ferret_ext/test_highlighter.c +16 -28
  100. data/ext/isomorfeus_ferret_ext/test_index.c +277 -487
  101. data/ext/isomorfeus_ferret_ext/test_lang.c +7 -14
  102. data/ext/isomorfeus_ferret_ext/test_mdbx_store.c +2 -5
  103. data/ext/isomorfeus_ferret_ext/test_mempool.c +5 -10
  104. data/ext/isomorfeus_ferret_ext/test_multimapper.c +3 -6
  105. data/ext/isomorfeus_ferret_ext/test_priorityqueue.c +9 -18
  106. data/ext/isomorfeus_ferret_ext/test_q_const_score.c +4 -6
  107. data/ext/isomorfeus_ferret_ext/test_q_filtered.c +3 -4
  108. data/ext/isomorfeus_ferret_ext/test_q_fuzzy.c +9 -15
  109. data/ext/isomorfeus_ferret_ext/test_q_parser.c +8 -16
  110. data/ext/isomorfeus_ferret_ext/test_q_span.c +19 -35
  111. data/ext/isomorfeus_ferret_ext/test_ram_store.c +14 -13
  112. data/ext/isomorfeus_ferret_ext/test_search.c +60 -109
  113. data/ext/isomorfeus_ferret_ext/test_segments.c +8 -13
  114. data/ext/isomorfeus_ferret_ext/test_similarity.c +2 -4
  115. data/ext/isomorfeus_ferret_ext/test_sort.c +14 -24
  116. data/ext/isomorfeus_ferret_ext/test_store.c +96 -115
  117. data/ext/isomorfeus_ferret_ext/test_term.c +9 -15
  118. data/ext/isomorfeus_ferret_ext/test_term_vectors.c +9 -14
  119. data/ext/isomorfeus_ferret_ext/test_test.c +4 -8
  120. data/ext/isomorfeus_ferret_ext/test_threading.c +14 -20
  121. data/ext/isomorfeus_ferret_ext/testhelper.c +11 -21
  122. data/ext/isomorfeus_ferret_ext/testhelper.h +1 -1
  123. data/ext/isomorfeus_ferret_ext/tests_all.h +1 -2
  124. data/lib/isomorfeus/ferret/index/index.rb +1 -1
  125. data/lib/isomorfeus/ferret/version.rb +1 -1
  126. metadata +24 -4
@@ -24,11 +24,10 @@ static void with_lock_test(void *p) {
24
24
  Assert(l->lock->is_locked(l->lock), "lock should be locked");
25
25
  }
26
26
 
27
- static void with_lock_name_test(void *p)
28
- {
27
+ static void with_lock_name_test(void *p) {
29
28
  WithLockNameTestArg *l = (WithLockNameTestArg *)p;
30
29
  TestCase *tc = l->tc;
31
- FrtLock *lock = frt_open_lock(l->store, l->lock_name);
30
+ FrtLock *lock = frt_open_lock(l->store, segm_idx_name, l->lock_name);
32
31
  Assert(lock->is_locked(lock), "lock should be locked");
33
32
  frt_close_lock(lock);
34
33
  }
@@ -36,22 +35,21 @@ static void with_lock_name_test(void *p)
36
35
  /**
37
36
  * Test that the lock is created and deleted correctly
38
37
  */
39
- static void test_lock(TestCase *tc, void *data)
40
- {
38
+ static void test_lock(TestCase *tc, void *data) {
41
39
  FrtStore *store = (FrtStore *)data;
42
40
  FrtLock *lock, *lock1, *lock2;
43
41
  bool handled;
44
42
  WithLockTestArg wlta;
45
43
  WithLockNameTestArg wlnta;
46
44
 
47
- lock1 = frt_open_lock(store, TEST_LOCK_NAME);
45
+ lock1 = frt_open_lock(store, segm_idx_name, TEST_LOCK_NAME);
48
46
  Aiequal(false, lock1->is_locked(lock1));
49
47
  Aiequal(true, lock1->obtain(lock1));
50
48
  Aiequal(true, lock1->is_locked(lock1));
51
49
  lock1->release(lock1);
52
50
  Aiequal(false, lock1->is_locked(lock1));
53
51
  Aiequal(true, lock1->obtain(lock1));
54
- lock2 = frt_open_lock(store, TEST_LOCK_NAME);
52
+ lock2 = frt_open_lock(store, segm_idx_name, TEST_LOCK_NAME);
55
53
  Aiequal(true, lock2->is_locked(lock2));
56
54
  lock1->release(lock1);
57
55
  Aiequal(false, lock2->is_locked(lock2));
@@ -59,7 +57,7 @@ static void test_lock(TestCase *tc, void *data)
59
57
  frt_close_lock(lock2);
60
58
 
61
59
  /* test with_lock */
62
- lock = frt_open_lock(store, TEST_LOCK_NAME);
60
+ lock = frt_open_lock(store, segm_idx_name, TEST_LOCK_NAME);
63
61
  Assert(!lock->is_locked(lock), "lock shouldn't be locked yet");
64
62
  wlta.lock = lock; wlta.tc = tc;
65
63
  frt_with_lock(lock, &with_lock_test, &wlta);
@@ -85,15 +83,15 @@ static void test_lock(TestCase *tc, void *data)
85
83
  frt_close_lock(lock);
86
84
 
87
85
  /* test with_lock_name */
88
- lock = frt_open_lock(store, TEST_LOCK_NAME);
86
+ lock = frt_open_lock(store, segm_idx_name, TEST_LOCK_NAME);
89
87
  Assert(!lock->is_locked(lock), "lock shouldn't be locked yet");
90
88
  wlnta.lock_name = TEST_LOCK_NAME; wlnta.tc = tc; wlnta.store = store;
91
- frt_with_lock_name(store, TEST_LOCK_NAME, &with_lock_name_test, &wlnta);
89
+ frt_with_lock_name(store, segm_idx_name, TEST_LOCK_NAME, &with_lock_name_test, &wlnta);
92
90
  Assert(!lock->is_locked(lock), "lock should be unlocked again");
93
91
  Assert(lock->obtain(lock), "lock should be obtainable");
94
92
  handled = false;
95
93
  FRT_TRY
96
- frt_with_lock_name(store, TEST_LOCK_NAME, &with_lock_name_test, &wlnta);
94
+ frt_with_lock_name(store, segm_idx_name, TEST_LOCK_NAME, &with_lock_name_test, &wlnta);
97
95
  Assert(false, "A locking exception should have been raised");
98
96
  break;
99
97
  case FRT_LOCK_ERROR:
@@ -117,32 +115,31 @@ static void test_lock(TestCase *tc, void *data)
117
115
  static void test_basic_file_ops(TestCase *tc, void *data) {
118
116
  FrtStore *store = (FrtStore *)data;
119
117
 
120
- store->clear_all(store); /* Make sure the test directory is empty. */
121
- Assert(!store->exists(store, "_1.f1"), "File1 should not been created yet");
122
- store->touch(store, "_1.f1");
123
- Aiequal(1, store->count(store));
124
- Assert(store->count(store) == 1, "The store now contains one file");
125
- Assert(store->exists(store, "_1.f1"), "File1 should now been created");
126
- store->touch(store, "_1.f2");
127
- Assert(store->count(store) == 2, "The store now contains two files");
128
- Assert(store->exists(store, "_1.f2"), "File2 should now been created");
129
- store->remove(store, "_1.f1");
130
- Assert(store->count(store) == 1, "The store now contains one file");
131
- Assert(!store->exists(store, "_1.f1"), "File1 should have been removed");
132
- Assert(store->exists(store, "_1.f2"), "File2 should still exist");
118
+ store->clear_all(store, segm_idx_name); /* Make sure the test directory is empty. */
119
+ Assert(!store->exists(store, segm_idx_name, "_1.f1"), "File1 should not been created yet");
120
+ store->touch(store, segm_idx_name, "_1.f1");
121
+ Aiequal(1, store->count(store, segm_idx_name));
122
+ Assert(store->count(store, segm_idx_name) == 1, "The store now contains one file");
123
+ Assert(store->exists(store, segm_idx_name, "_1.f1"), "File1 should now been created");
124
+ store->touch(store, segm_idx_name, "_1.f2");
125
+ Assert(store->count(store, segm_idx_name) == 2, "The store now contains two files");
126
+ Assert(store->exists(store, segm_idx_name, "_1.f2"), "File2 should now been created");
127
+ store->remove(store, segm_idx_name, "_1.f1");
128
+ Assert(store->count(store, segm_idx_name) == 1, "The store now contains one file");
129
+ Assert(!store->exists(store, segm_idx_name, "_1.f1"), "File1 should have been removed");
130
+ Assert(store->exists(store, segm_idx_name, "_1.f2"), "File2 should still exist");
133
131
 
134
132
  /* test that lock files get deleted by clear_all */
135
- store->touch(store, "ferret-write.lck");
136
- Assert(store->exists(store, "ferret-write.lck"),"lock should still exist");
137
- store->clear_all(store);
138
- Assert(!store->exists(store, "ferret-write.lck"), "lock should be deleted");
133
+ store->touch(store, segm_idx_name, "ferret-write.lck");
134
+ Assert(store->exists(store, segm_idx_name, "ferret-write.lck"),"lock should still exist");
135
+ store->clear_all(store, segm_idx_name);
136
+ Assert(!store->exists(store, segm_idx_name, "ferret-write.lck"), "lock should be deleted");
139
137
  }
140
138
 
141
139
  /**
142
140
  * Test argument used to test the store->each function
143
141
  */
144
- struct EachArg
145
- {
142
+ struct EachArg {
146
143
  char str[100];
147
144
  char *p;
148
145
  };
@@ -150,8 +147,7 @@ struct EachArg
150
147
  /**
151
148
  * Test function used to test store->each function
152
149
  */
153
- static void concat_filenames(const char *fname, struct EachArg *ea)
154
- {
150
+ static void concat_filenames(const char *fname, struct EachArg *ea) {
155
151
  strcpy(ea->p, fname);
156
152
  ea->p += strlen(fname);
157
153
  }
@@ -159,19 +155,18 @@ static void concat_filenames(const char *fname, struct EachArg *ea)
159
155
  /**
160
156
  * Test the store->each function
161
157
  */
162
- static void test_each(TestCase *tc, void *data)
163
- {
158
+ static void test_each(TestCase *tc, void *data) {
164
159
  FrtStore *store = (FrtStore *)data;
165
160
 
166
161
  struct EachArg ea;
167
162
  ea.p = ea.str;
168
163
 
169
- store->clear_all(store); /* Make sure the test directory is empty. */
170
- store->touch(store, "_1.f1");
171
- store->touch(store, "_1.f2");
172
- store->touch(store, "_1.f3");
173
- store->touch(store, "_1.f4");
174
- store->each(store, (void(*)(const char *fname, void *arg))&concat_filenames, &ea);
164
+ store->clear_all(store, segm_idx_name); /* Make sure the test directory is empty. */
165
+ store->touch(store, segm_idx_name, "_1.f1");
166
+ store->touch(store, segm_idx_name, "_1.f2");
167
+ store->touch(store, segm_idx_name, "_1.f3");
168
+ store->touch(store, segm_idx_name, "_1.f4");
169
+ store->each(store, segm_idx_name, (void(*)(const char *fname, void *arg))&concat_filenames, &ea);
175
170
  *(ea.p) = 0;
176
171
  Assert(strstr(ea.str, "_1.f1") != NULL, "should contain this file");
177
172
  Assert(strstr(ea.str, "_1.f2") != NULL, "should contain this file");
@@ -183,54 +178,52 @@ static void test_each(TestCase *tc, void *data)
183
178
  /**
184
179
  * Test the store->rename function
185
180
  */
186
- static void test_rename(TestCase *tc, void *data)
187
- {
181
+ static void test_rename(TestCase *tc, void *data) {
188
182
  int cnt_before, cnt_after;
189
183
  FrtStore *store = (FrtStore *)data;
190
- store->touch(store, "_from.f1");
191
- Assert(store->exists(store, "_from.f1"), "File should exist");
192
- Assert(!store->exists(store, "_to.f1"), "File should not exist");
193
- cnt_before = store->count(store);
194
- store->rename(store, "_from.f1", "_to.f1");
195
- cnt_after = store->count(store);
184
+ store->touch(store, segm_idx_name, "_from.f1");
185
+ Assert(store->exists(store, segm_idx_name, "_from.f1"), "File should exist");
186
+ Assert(!store->exists(store, segm_idx_name, "_to.f1"), "File should not exist");
187
+ cnt_before = store->count(store, segm_idx_name);
188
+ store->rename(store, segm_idx_name, "_from.f1", "_to.f1");
189
+ cnt_after = store->count(store, segm_idx_name);
196
190
  Aiequal(cnt_before, cnt_after);
197
- Assert(store->exists(store, "_to.f1"), "File should now exist");
198
- Assert(!store->exists(store, "_from.f1"), "File should no longer exist");
191
+ Assert(store->exists(store, segm_idx_name, "_to.f1"), "File should now exist");
192
+ Assert(!store->exists(store, segm_idx_name, "_from.f1"), "File should no longer exist");
199
193
  }
200
194
 
201
195
  /**
202
196
  * Test the reading and writing of bytes (8 bit)
203
197
  */
204
- static void test_rw_bytes(TestCase *tc, void *data)
205
- {
198
+ static void test_rw_bytes(TestCase *tc, void *data) {
206
199
  int i;
207
200
  FrtStore *store = (FrtStore *)data;
208
201
  frt_uchar bytes[6] = { 0x34, 0x87, 0xF9, 0xEA, 0x00, 0xFF };
209
- FrtOutStream *ostream = store->new_output(store, "_rw_byte.cfs");
202
+ FrtOutStream *ostream = store->new_output(store, segm_idx_name, "_rw_byte.fdt");
210
203
  FrtInStream *istream;
211
- Assert(store->exists(store, "_rw_byte.cfs"), "File should now exist");
204
+
212
205
  for (i = 0; i < 6; i++) {
213
206
  frt_os_write_byte(ostream, bytes[i]);
214
207
  }
215
208
  frt_os_close(ostream);
209
+ Assert(store->exists(store, segm_idx_name, "_rw_byte.fdt"), "File should now exist");
216
210
 
217
- istream = store->open_input(store, "_rw_byte.cfs");
211
+ istream = store->open_input(store, segm_idx_name, "_rw_byte.fdt");
218
212
  for (i = 0; i < 6; i++) {
219
213
  Aiequal(bytes[i], frt_is_read_byte(istream));
220
214
  }
221
215
  frt_is_close(istream);
222
- Aiequal(6, store->length(store, "_rw_byte.cfs"));
223
- Assert(store->exists(store, "_rw_byte.cfs"), "File should now exist");
216
+ Aiequal(6, store->length(store, segm_idx_name, "_rw_byte.fdt"));
217
+ Assert(store->exists(store, segm_idx_name, "_rw_byte.fdt"), "File should now exist");
224
218
  }
225
219
 
226
220
  /**
227
221
  * Test the reading and writing of 32-bit integers
228
222
  */
229
- static void test_rw_i32(TestCase *tc, void *data)
230
- {
223
+ static void test_rw_i32(TestCase *tc, void *data) {
231
224
  int i;
232
225
  FrtStore *store = (FrtStore *)data;
233
- FrtOutStream *ostream = store->new_output(store, "_rw_int.cfs");
226
+ FrtOutStream *ostream = store->new_output(store, segm_idx_name, "_rw_int.fdt");
234
227
  FrtInStream *istream;
235
228
  frt_i32 ints[4] = { POSH_I32_MAX, POSH_I32_MIN, -1, 0 };
236
229
 
@@ -239,25 +232,24 @@ static void test_rw_i32(TestCase *tc, void *data)
239
232
  }
240
233
  frt_os_close(ostream);
241
234
 
242
- istream = store->open_input(store, "_rw_int.cfs");
235
+ istream = store->open_input(store, segm_idx_name, "_rw_int.fdt");
243
236
  for (i = 0; i < 4; i++) {
244
237
  Aiequal(ints[i], frt_is_read_i32(istream));
245
238
  }
246
239
 
247
240
  frt_is_close(istream);
248
- Aiequal(16, store->length(store, "_rw_int.cfs"));
241
+ Aiequal(16, store->length(store, segm_idx_name, "_rw_int.fdt"));
249
242
  }
250
243
 
251
244
  /**
252
245
  * Test the reading and writing of 64-bit integers
253
246
  */
254
- static void test_rw_i64(TestCase *tc, void *data)
255
- {
247
+ static void test_rw_i64(TestCase *tc, void *data) {
256
248
  int i;
257
249
  FrtStore *store = (FrtStore *)data;
258
250
  frt_u64 longs[4] =
259
251
  { POSH_I64_MIN, POSH_I64_MAX, POSH_I64(-1), POSH_I64(0) };
260
- FrtOutStream *ostream = store->new_output(store, "_rw_long.cfs");
252
+ FrtOutStream *ostream = store->new_output(store, segm_idx_name, "_rw_long.fdt");
261
253
  FrtInStream *istream;
262
254
 
263
255
  for (i = 0; i < 4; i++) {
@@ -265,23 +257,22 @@ static void test_rw_i64(TestCase *tc, void *data)
265
257
  }
266
258
  frt_os_close(ostream);
267
259
 
268
- istream = store->open_input(store, "_rw_long.cfs");
260
+ istream = store->open_input(store, segm_idx_name, "_rw_long.fdt");
269
261
  for (i = 0; i < 4; i++) {
270
262
  Aiequal(longs[i], frt_is_read_i64(istream));
271
263
  }
272
264
  frt_is_close(istream);
273
- Aiequal(32, store->length(store, "_rw_long.cfs"));
265
+ Aiequal(32, store->length(store, segm_idx_name, "_rw_long.fdt"));
274
266
  }
275
267
 
276
268
  /**
277
269
  * Test the reading and writing of 32-bit unsigned integers
278
270
  */
279
- static void test_rw_u32(TestCase *tc, void *data)
280
- {
271
+ static void test_rw_u32(TestCase *tc, void *data) {
281
272
  int i;
282
273
  FrtStore *store = (FrtStore *)data;
283
274
  frt_u32 uints[4] = { POSH_U32_MAX, POSH_U32_MIN, 100000, 1 };
284
- FrtOutStream *ostream = store->new_output(store, "_rw_uint.cfs");
275
+ FrtOutStream *ostream = store->new_output(store, segm_idx_name, "_rw_uint.fdt");
285
276
  FrtInStream *istream;
286
277
 
287
278
  for (i = 0; i < 4; i++) {
@@ -289,24 +280,23 @@ static void test_rw_u32(TestCase *tc, void *data)
289
280
  }
290
281
  frt_os_close(ostream);
291
282
 
292
- istream = store->open_input(store, "_rw_uint.cfs");
283
+ istream = store->open_input(store, segm_idx_name, "_rw_uint.fdt");
293
284
  for (i = 0; i < 4; i++) {
294
285
  Aiequal(uints[i], frt_is_read_u32(istream));
295
286
  }
296
287
  frt_is_close(istream);
297
- Aiequal(16, store->length(store, "_rw_uint.cfs"));
288
+ Aiequal(16, store->length(store, segm_idx_name, "_rw_uint.fdt"));
298
289
  }
299
290
 
300
291
  /**
301
292
  * Test the reading and writing of 64-bit unsigned integers
302
293
  */
303
- static void test_rw_u64(TestCase *tc, void *data)
304
- {
294
+ static void test_rw_u64(TestCase *tc, void *data) {
305
295
  int i;
306
296
  FrtStore *store = (FrtStore *)data;
307
297
  frt_u64 ulongs[4] =
308
298
  { POSH_U64_MAX, POSH_U64_MIN, POSH_U64(100000000000000), POSH_U64(1) };
309
- FrtOutStream *ostream = store->new_output(store, "_rw_ulong.cfs");
299
+ FrtOutStream *ostream = store->new_output(store, segm_idx_name, "_rw_ulong.fdt");
310
300
  FrtInStream *istream;
311
301
 
312
302
  for (i = 0; i < 4; i++) {
@@ -314,23 +304,22 @@ static void test_rw_u64(TestCase *tc, void *data)
314
304
  }
315
305
  frt_os_close(ostream);
316
306
 
317
- istream = store->open_input(store, "_rw_ulong.cfs");
307
+ istream = store->open_input(store, segm_idx_name, "_rw_ulong.fdt");
318
308
  for (i = 0; i < 4; i++) {
319
309
  Aiequal(ulongs[i], frt_is_read_u64(istream));
320
310
  }
321
311
  frt_is_close(istream);
322
- Aiequal(32, store->length(store, "_rw_ulong.cfs"));
312
+ Aiequal(32, store->length(store, segm_idx_name, "_rw_ulong.fdt"));
323
313
  }
324
314
 
325
315
  /**
326
316
  * Test reading and writing of variable size integers
327
317
  */
328
- static void test_rw_vints(TestCase *tc, void *data)
329
- {
318
+ static void test_rw_vints(TestCase *tc, void *data) {
330
319
  int i;
331
320
  FrtStore *store = (FrtStore *)data;
332
321
  unsigned int vints[4] = { UINT_MAX, 0, 10000, 1 };
333
- FrtOutStream *ostream = store->new_output(store, "_rw_vint.cfs");
322
+ FrtOutStream *ostream = store->new_output(store, segm_idx_name, "_rw_vint.fdt");
334
323
  FrtInStream *istream;
335
324
 
336
325
  for (i = 0; i < 4; i++) {
@@ -338,7 +327,7 @@ static void test_rw_vints(TestCase *tc, void *data)
338
327
  }
339
328
  frt_os_close(ostream);
340
329
 
341
- istream = store->open_input(store, "_rw_vint.cfs");
330
+ istream = store->open_input(store, segm_idx_name, "_rw_vint.fdt");
342
331
  for (i = 0; i < 4; i++) {
343
332
  Aiequal(vints[i], frt_is_read_vint(istream));
344
333
  }
@@ -348,12 +337,11 @@ static void test_rw_vints(TestCase *tc, void *data)
348
337
  /**
349
338
  * Test reading and writing of variable size integers
350
339
  */
351
- static void test_rw_vlls(TestCase *tc, void *data)
352
- {
340
+ static void test_rw_vlls(TestCase *tc, void *data) {
353
341
  int i;
354
342
  FrtStore *store = (FrtStore *)data;
355
343
  unsigned long long vlls[4] = { ULLONG_MAX, 0, 10000, 1 };
356
- FrtOutStream *ostream = store->new_output(store, "_rw_vll.cfs");
344
+ FrtOutStream *ostream = store->new_output(store, segm_idx_name, "_rw_vll.fdt");
357
345
  FrtInStream *istream;
358
346
 
359
347
  for (i = 0; i < 4; i++) {
@@ -361,7 +349,7 @@ static void test_rw_vlls(TestCase *tc, void *data)
361
349
  }
362
350
  frt_os_close(ostream);
363
351
 
364
- istream = store->open_input(store, "_rw_vll.cfs");
352
+ istream = store->open_input(store, segm_idx_name, "_rw_vll.fdt");
365
353
  for (i = 0; i < 4; i++) {
366
354
  Aiequal(vlls[i], frt_is_read_vll(istream));
367
355
  }
@@ -371,8 +359,7 @@ static void test_rw_vlls(TestCase *tc, void *data)
371
359
  /**
372
360
  * Test reading and writing of variable size 64-bit integers
373
361
  */
374
- static void test_rw_voff_ts(TestCase *tc, void *data)
375
- {
362
+ static void test_rw_voff_ts(TestCase *tc, void *data) {
376
363
  int i;
377
364
  FrtStore *store = (FrtStore *)data;
378
365
  FrtOutStream *ostream;
@@ -381,18 +368,17 @@ static void test_rw_voff_ts(TestCase *tc, void *data)
381
368
  { LONG_MAX, 0, 1000000, 1 };
382
369
  if (sizeof(off_t) == 8) {
383
370
  voff_ts[0] = POSH_I64_MAX;
384
- }
385
- else {
371
+ } else {
386
372
  voff_ts[0] = POSH_I32_MAX;
387
373
  }
388
- ostream = store->new_output(store, "_rw_voff_t.cfs");
374
+ ostream = store->new_output(store, segm_idx_name, "_rw_voff_t.fdt");
389
375
 
390
376
  for (i = 0; i < 4; i++) {
391
377
  frt_os_write_voff_t(ostream, (off_t)voff_ts[i]);
392
378
  }
393
379
  frt_os_close(ostream);
394
380
 
395
- istream = store->open_input(store, "_rw_voff_t.cfs");
381
+ istream = store->open_input(store, segm_idx_name, "_rw_voff_t.fdt");
396
382
  for (i = 0; i < 4; i++) {
397
383
  Aiequal(voff_ts[i], frt_is_read_voff_t(istream));
398
384
  }
@@ -402,8 +388,7 @@ static void test_rw_voff_ts(TestCase *tc, void *data)
402
388
  /**
403
389
  * Test reading and writing of strings
404
390
  */
405
- static void test_rw_strings(TestCase *tc, void *data)
406
- {
391
+ static void test_rw_strings(TestCase *tc, void *data) {
407
392
  int i;
408
393
  char *tmp;
409
394
  FrtStore *store = (FrtStore *)data;
@@ -417,12 +402,12 @@ static void test_rw_strings(TestCase *tc, void *data)
417
402
  strcat(buf, str);
418
403
  }
419
404
 
420
- ostream = store->new_output(store, "_rw_string.cfs");
405
+ ostream = store->new_output(store, segm_idx_name, "_rw_string.fdt");
421
406
  frt_os_write_string(ostream, str);
422
407
  frt_os_write_string(ostream, buf);
423
408
  frt_os_close(ostream);
424
409
 
425
- istream = store->open_input(store, "_rw_string.cfs");
410
+ istream = store->open_input(store, segm_idx_name, "_rw_string.fdt");
426
411
 
427
412
  tmp = frt_is_read_string(istream);
428
413
  Asequal(str, tmp);
@@ -431,14 +416,13 @@ static void test_rw_strings(TestCase *tc, void *data)
431
416
  Asequal(buf, tmp);
432
417
  free(tmp);
433
418
  frt_is_close(istream);
434
- Aiequal(59063, store->length(store, "_rw_string.cfs"));
419
+ Aiequal(59063, store->length(store, segm_idx_name, "_rw_string.fdt"));
435
420
  }
436
421
 
437
422
  /**
438
423
  * Test reading and writing of non-ascii characters
439
424
  */
440
- static void test_rw_funny_strings(TestCase *tc, void *data)
441
- {
425
+ static void test_rw_funny_strings(TestCase *tc, void *data) {
442
426
  int i;
443
427
  char *tmp;
444
428
  FrtStore *store = (FrtStore *)data;
@@ -451,12 +435,12 @@ static void test_rw_funny_strings(TestCase *tc, void *data)
451
435
  strcat(buf, str);
452
436
  }
453
437
 
454
- ostream = store->new_output(store, "_funny_string.cfs");
438
+ ostream = store->new_output(store, segm_idx_name, "_funny_string.fdt");
455
439
  frt_os_write_string(ostream, str);
456
440
  frt_os_write_string(ostream, buf);
457
441
  frt_os_close(ostream);
458
442
 
459
- istream = store->open_input(store, "_funny_string.cfs");
443
+ istream = store->open_input(store, segm_idx_name, "_funny_string.fdt");
460
444
  tmp = frt_is_read_string(istream);
461
445
  Asequal(str, tmp);
462
446
  free(tmp);
@@ -464,19 +448,18 @@ static void test_rw_funny_strings(TestCase *tc, void *data)
464
448
  Asequal(buf, tmp);
465
449
  free(tmp);
466
450
  frt_is_close(istream);
467
- Aiequal(17021, store->length(store, "_funny_string.cfs"));
451
+ Aiequal(17021, store->length(store, segm_idx_name, "_funny_string.fdt"));
468
452
  }
469
453
 
470
454
  /**
471
455
  * Test seek in both input stream and output stream, ie test the frt_os_seek and
472
456
  * frt_is_seek functions
473
457
  */
474
- static void test_buffer_seek(TestCase *tc, void *data)
475
- {
458
+ static void test_buffer_seek(TestCase *tc, void *data) {
476
459
  int i;
477
460
  FrtStore *store = (FrtStore *)data;
478
461
 
479
- FrtOutStream *ostream = store->new_output(store, "_rw_seek.cfs");
462
+ FrtOutStream *ostream = store->new_output(store, segm_idx_name, "_rw_seek.fdt");
480
463
  char text[60] = "This is another int test string !@#$%#$%&%$*%^&*()(_";
481
464
  FrtInStream *istream;
482
465
 
@@ -495,7 +478,7 @@ static void test_buffer_seek(TestCase *tc, void *data)
495
478
  frt_os_write_voff_t(ostream, 98763210);
496
479
  frt_os_close(ostream);
497
480
 
498
- istream = store->open_input(store, "_rw_seek.cfs");
481
+ istream = store->open_input(store, segm_idx_name, "_rw_seek.fdt");
499
482
  frt_is_seek(istream, 56);
500
483
  Aiequal(56, frt_is_pos(istream));
501
484
  Aiequal(12345, frt_is_read_vint(istream));
@@ -511,18 +494,17 @@ static void test_buffer_seek(TestCase *tc, void *data)
511
494
  /**
512
495
  * Test cloning of InputStream
513
496
  */
514
- static void test_is_clone(TestCase *tc, void *data)
515
- {
497
+ static void test_is_clone(TestCase *tc, void *data) {
516
498
  int i;
517
499
  FrtStore *store = (FrtStore *)data;
518
- FrtOutStream *ostream = store->new_output(store, "_clone.cfs");
500
+ FrtOutStream *ostream = store->new_output(store, segm_idx_name, "_clone.fdt");
519
501
  FrtInStream *istream, *alt_istream;
520
502
 
521
503
  for (i = 0; i < 10; i++) {
522
504
  frt_os_write_i64(ostream, i);
523
505
  }
524
506
  frt_os_close(ostream);
525
- istream = store->open_input(store, "_clone.cfs");
507
+ istream = store->open_input(store, segm_idx_name, "_clone.fdt");
526
508
  frt_is_seek(istream, 24);
527
509
  alt_istream = frt_is_clone(istream);
528
510
  Aiequal(frt_is_pos(istream), frt_is_pos(alt_istream));
@@ -542,16 +524,15 @@ static void test_is_clone(TestCase *tc, void *data)
542
524
  * Test the read_bytes method. This method reads a number of bytes into a
543
525
  * buffer.
544
526
  */
545
- static void test_read_bytes(TestCase *tc, void *data)
546
- {
527
+ static void test_read_bytes(TestCase *tc, void *data) {
547
528
  char str[11] = "0000000000";
548
529
  FrtStore *store = (FrtStore *)data;
549
- FrtOutStream *ostream = store->new_output(store, "_read_bytes.cfs");
530
+ FrtOutStream *ostream = store->new_output(store, segm_idx_name, "_read_bytes.fdt");
550
531
  FrtInStream *istream;
551
532
 
552
533
  frt_os_write_bytes(ostream, (frt_uchar *)"how are you doing?", 18);
553
534
  frt_os_close(ostream);
554
- istream = store->open_input(store, "_read_bytes.cfs");
535
+ istream = store->open_input(store, segm_idx_name, "_read_bytes.fdt");
555
536
  frt_is_read_bytes(istream, (frt_uchar *)(str + 2), 4);
556
537
  Asequal("00how 0000", str);
557
538
  frt_is_read_bytes(istream, (frt_uchar *)(str + 1), 8);
@@ -565,7 +546,7 @@ static void test_read_bytes(TestCase *tc, void *data)
565
546
  * store that you might want to create.
566
547
  */
567
548
  void create_test_store_suite(TestSuite *suite, FrtStore *store) {
568
- store->clear_all(store);
549
+ store->clear_all(store, segm_idx_name);
569
550
 
570
551
  tst_run_test(suite, test_basic_file_ops, store);
571
552
  tst_run_test(suite, test_rename, store);
@@ -585,5 +566,5 @@ void create_test_store_suite(TestSuite *suite, FrtStore *store) {
585
566
  tst_run_test(suite, test_read_bytes, store);
586
567
  tst_run_test(suite, test_lock, store);
587
568
 
588
- store->clear_all(store);
569
+ store->clear_all(store, segm_idx_name);
589
570
  }
@@ -60,8 +60,7 @@ static const char *DICT[DICT_LEN] = {
60
60
  };
61
61
 
62
62
  /*
63
- static char *rev(char *str)
64
- {
63
+ static char *rev(char *str) {
65
64
  char *rev = frt_estrdup(str);
66
65
  int i, j;
67
66
  for (i = 0, j = (int)strlen(str)-1; i < j; i++, j--) {
@@ -78,8 +77,7 @@ static char *rev(char *str)
78
77
  *
79
78
  *****************************************************************************/
80
79
 
81
- static void test_segment_field_index_single_field(TestCase *tc, void *data)
82
- {
80
+ static void test_segment_field_index_single_field(TestCase *tc, void *data) {
83
81
  int i;
84
82
  FrtStore *store = (FrtStore *)data;
85
83
  FrtSegmentFieldIndex *sfi;
@@ -107,8 +105,7 @@ static void test_segment_field_index_single_field(TestCase *tc, void *data)
107
105
  frt_sfi_close(sfi);
108
106
  }
109
107
 
110
- static void add_multi_field_terms(FrtStore *store)
111
- {
108
+ static void add_multi_field_terms(FrtStore *store) {
112
109
  int i;
113
110
  int field_num = 0;
114
111
  FrtTermInfosWriter *tiw = frt_tiw_open(store, "_0", 8, 8);
@@ -124,8 +121,7 @@ static void add_multi_field_terms(FrtStore *store)
124
121
  frt_tiw_close(tiw);
125
122
  }
126
123
 
127
- static void test_segment_field_index_multi_field(TestCase *tc, void *data)
128
- {
124
+ static void test_segment_field_index_multi_field(TestCase *tc, void *data) {
129
125
  FrtStore *store = (FrtStore *)data;
130
126
  FrtSegmentFieldIndex *sfi;
131
127
  FrtSegmentTermIndex *sti;
@@ -153,8 +149,7 @@ static void test_segment_field_index_multi_field(TestCase *tc, void *data)
153
149
  frt_sfi_close(sfi);
154
150
  }
155
151
 
156
- void test_segment_term_enum(TestCase *tc, void *data)
157
- {
152
+ void test_segment_term_enum(TestCase *tc, void *data) {
158
153
  int i;
159
154
  FrtStore *store = (FrtStore *)data;
160
155
  FrtSegmentFieldIndex *sfi;
@@ -163,7 +158,7 @@ void test_segment_term_enum(TestCase *tc, void *data)
163
158
  add_multi_field_terms(store);
164
159
 
165
160
  sfi = frt_sfi_open(store, "_0");
166
- FrtInStream *is = store->open_input(store, "_0.tis");
161
+ FrtInStream *is = store->open_input(store, segm_idx_name, "_0.tis");
167
162
  FRT_DEREF(is);
168
163
  te = frt_ste_new(is, sfi);
169
164
  te->set_field(te, 0);
@@ -284,8 +279,7 @@ void test_segment_term_enum(TestCase *tc, void *data)
284
279
  frt_sfi_close(sfi);
285
280
  }
286
281
 
287
- static void test_term_infos_reader(TestCase *tc, void *data)
288
- {
282
+ static void test_term_infos_reader(TestCase *tc, void *data) {
289
283
  FrtStore *store = (FrtStore *)data;
290
284
  FrtSegmentFieldIndex *sfi;
291
285
  FrtTermInfosReader *tir;
@@ -338,9 +332,9 @@ static void test_term_infos_reader(TestCase *tc, void *data)
338
332
  frt_sfi_close(sfi);
339
333
  }
340
334
 
341
- TestSuite *ts_term(TestSuite *suite)
342
- {
335
+ TestSuite *ts_term(TestSuite *suite) {
343
336
  FrtStore *store = frt_open_ram_store(NULL);
337
+ store->create_folder(store, segm_idx_name);
344
338
 
345
339
  suite = ADD_SUITE(suite);
346
340