29 lines
1002 B
C
29 lines
1002 B
C
#include "sleep_replication.h"
|
|||
|
|
|
||
|
|
#include <assert.h>
|
||
|
|
#include <errno.h>
|
||
|
|
#include <string.h>
|
||
|
|
|
||
|
|
int main(void)
|
||
|
|
{
|
||
|
|
sleep_feed_t feed;
|
||
|
|
sleep_replication_t replica;
|
||
|
|
sleep_replication_request_t request;
|
||
|
|
memset(&feed, 0, sizeof(feed));
|
||
|
|
assert(sleep_replication_init(&replica, &feed, 1) == 0);
|
||
|
|
for (uint64_t i = 0; i < SLEEP_REPLICATION_QUEUE; i++) {
|
||
|
|
request.index = i; request.bytes = 0;
|
||
|
|
request.hash = request.nodes = 1;
|
||
|
|
assert(sleep_replication_request(&replica, &request) == 0);
|
||
|
|
}
|
||
|
|
assert(sleep_replication_want(&replica, 1000, 1) == -1);
|
||
|
|
assert(errno == ENOSPC && replica.request_count == SLEEP_REPLICATION_QUEUE);
|
||
|
|
assert(sleep_replication_unwant(&replica, 0, 64) == 0);
|
||
|
|
assert(replica.request_count == 64);
|
||
|
|
assert(sleep_replication_want(&replica, 1000, 2) == 0);
|
||
|
|
assert(replica.request_count == 66);
|
||
|
|
assert(sleep_replication_want(&replica, 1000, 2) == 0);
|
||
|
|
assert(replica.request_count == 66);
|
||
|
|
assert(sleep_replication_next(&replica, &request) == 1 && request.index == 64);
|
||
|
|
return 0;
|
||
|
|
}
|