| 84 |
log_error("section_data_create(i=%d) error\n", i); |
log_error("section_data_create(i=%d) error\n", i); |
| 85 |
return -3; |
return -3; |
| 86 |
} |
} |
| 87 |
|
} |
| 88 |
|
|
| 89 |
for (j = 0; j < BBS_article_limit_per_block * BBS_article_block_limit_per_section; j++) |
for (j = 0; j < BBS_article_limit_per_block * BBS_article_block_limit_per_section; j++) |
| 90 |
|
{ |
| 91 |
|
for (i = 0; i < section_count; i++) |
| 92 |
{ |
{ |
| 93 |
last_aid++; |
last_aid++; |
| 94 |
|
|
| 108 |
break; |
break; |
| 109 |
} |
} |
| 110 |
} |
} |
| 111 |
|
} |
| 112 |
|
|
| 113 |
|
for (i = 0; i < section_count; i++) |
| 114 |
|
{ |
| 115 |
printf("Load %d articles into section %d\n", p_section[i]->article_count, i); |
printf("Load %d articles into section %d\n", p_section[i]->article_count, i); |
| 116 |
} |
} |
| 117 |
|
|
|
last_aid = 0; |
|
|
|
|
| 118 |
for (i = 0; i < section_count; i++) |
for (i = 0; i < section_count; i++) |
| 119 |
{ |
{ |
| 120 |
if (p_section[i]->article_count == 0) |
if (p_section[i]->article_count == 0) |
| 122 |
continue; |
continue; |
| 123 |
} |
} |
| 124 |
|
|
| 125 |
|
last_aid = i + 1; |
| 126 |
|
|
| 127 |
for (j = 0; j < p_section[i]->article_count; j++) |
for (j = 0; j < p_section[i]->article_count; j++) |
| 128 |
{ |
{ |
|
last_aid++; |
|
|
|
|
| 129 |
p_article = section_data_find_article_by_index(p_section[i], j); |
p_article = section_data_find_article_by_index(p_section[i], j); |
| 130 |
if (p_article == NULL || p_article->aid != last_aid) |
if (p_article == NULL || p_article->aid != last_aid) |
| 131 |
{ |
{ |
| 132 |
printf("Inconsistent aid at index %d != %d\n", j, last_aid); |
printf("Inconsistent aid at section %d index %d != %d\n", i, j, last_aid); |
| 133 |
} |
} |
| 134 |
|
|
| 135 |
if (section_data_mark_del_article(p_section[i], p_article->aid) != 1) |
if (section_data_mark_del_article(p_section[i], p_article->aid) != 1) |
| 136 |
{ |
{ |
| 137 |
printf("section_data_mark_del_article(aid = %d) error\n", p_article->aid); |
printf("section_data_mark_del_article(aid = %d) error\n", p_article->aid); |
| 138 |
} |
} |
| 139 |
|
|
| 140 |
|
last_aid += section_count; |
| 141 |
} |
} |
| 142 |
|
|
| 143 |
printf("Verify %d articles in section %d\n", p_section[i]->article_count, i); |
printf("Verify %d articles in section %d\n", p_section[i]->article_count, i); |
| 144 |
|
|
| 145 |
printf("Delete %d articles in section %d\n", p_section[i]->delete_count, i); |
printf("Delete %d articles in section %d\n", p_section[i]->delete_count, i); |
| 146 |
} |
} |
| 147 |
|
|
| 190 |
continue; |
continue; |
| 191 |
} |
} |
| 192 |
|
|
| 193 |
|
article_count = 0; |
| 194 |
|
|
| 195 |
|
p_article = p_section[i]->p_article_head; |
| 196 |
|
|
| 197 |
|
do |
| 198 |
|
{ |
| 199 |
|
article_count++; |
| 200 |
|
p_article = p_article->p_next; |
| 201 |
|
} while (p_article != p_section[i]->p_article_head); |
| 202 |
|
|
| 203 |
|
if (article_count != p_section[i]->article_count) |
| 204 |
|
{ |
| 205 |
|
printf("Count of articles in section %d is different from expected %d != %d\n", |
| 206 |
|
i, article_count, p_section[i]->article_count); |
| 207 |
|
} |
| 208 |
|
|
| 209 |
|
printf("Verify %d articles in section %d\n", group_count, i); |
| 210 |
|
} |
| 211 |
|
|
| 212 |
|
for (i = 0; i < section_count; i++) |
| 213 |
|
{ |
| 214 |
|
if (p_section[i]->article_count == 0) |
| 215 |
|
{ |
| 216 |
|
continue; |
| 217 |
|
} |
| 218 |
|
|
| 219 |
for (j = 0; j < group_count; j++) |
for (j = 0; j < group_count; j++) |
| 220 |
{ |
{ |
| 221 |
p_article = section_data_find_article_by_index(p_section[i], j); |
p_article = section_data_find_article_by_index(p_section[i], j); |
| 234 |
|
|
| 235 |
do |
do |
| 236 |
{ |
{ |
| 237 |
if (p_article->next_aid <= p_article->aid && p_article->next_aid != p_article->tid) |
p_article = p_article->p_topic_next; |
|
{ |
|
|
printf("Non-ascending aid found %d >= %d\n", p_article->aid, p_article->next_aid); |
|
|
break; |
|
|
} |
|
|
|
|
|
last_aid = p_article->next_aid; |
|
|
p_article = section_data_find_article_by_aid(p_section[i], last_aid); |
|
| 238 |
if (p_article == NULL) |
if (p_article == NULL) |
| 239 |
{ |
{ |
| 240 |
printf("NULL p_article at aid %d\n", last_aid); |
printf("NULL p_article found\n"); |
| 241 |
break; |
break; |
| 242 |
} |
} |
| 243 |
if (p_article->tid == 0) // loop |
if (p_article->tid == 0) // loop |
| 246 |
} |
} |
| 247 |
if (p_article->tid != j + 1) |
if (p_article->tid != j + 1) |
| 248 |
{ |
{ |
| 249 |
printf("Inconsistent tid at aid %d != %d\n", last_aid, j + 1); |
printf("Inconsistent tid %d != %d\n", last_aid, j + 1); |
| 250 |
break; |
break; |
| 251 |
} |
} |
| 252 |
article_count++; |
article_count++; |
| 262 |
printf("Verify %d topics in section %d\n", group_count, i); |
printf("Verify %d topics in section %d\n", group_count, i); |
| 263 |
} |
} |
| 264 |
|
|
| 265 |
|
printf("Testing #3 ...\n"); |
| 266 |
|
|
| 267 |
|
for (i = 0; i < section_conf_count; i++) |
| 268 |
|
{ |
| 269 |
|
if (section_data_find_section_by_name(sname[i]) == NULL) |
| 270 |
|
{ |
| 271 |
|
printf("section_data_find_section_by_name(%s) error\n", sname[i]); |
| 272 |
|
} |
| 273 |
|
} |
| 274 |
|
|
| 275 |
|
printf("Press ENTER to exit..."); |
| 276 |
|
getchar(); |
| 277 |
|
|
| 278 |
section_data_pool_cleanup(); |
section_data_pool_cleanup(); |
| 279 |
|
|
| 280 |
log_end(); |
log_end(); |