Seregon/zftpd

Zero-copy FTP/HTTP Daemon compatible with all POSIX systems

C/11.0 KB/No license
tests/test_buffer_pool.c
zftpd / tests / test_buffer_pool.c
1#include "ftp_buffer_pool.h"
2#include "ftp_config.h"
3#include <stddef.h>
4
5int main(void)
6{
7 void *bufs[FTP_MAX_SESSIONS];
8
9 for (size_t i = 0U; i < (size_t)FTP_MAX_SESSIONS; i++) {
10 bufs[i] = ftp_buffer_acquire();
11 if (bufs[i] == NULL) {
12 return 1;
13 }
14 for (size_t j = 0U; j < i; j++) {
15 if (bufs[j] == bufs[i]) {
16 return 2;
17 }
18 }
19 }
20
21 if (ftp_buffer_acquire() != NULL) {
22 return 3;
23 }
24
25 for (size_t i = 0U; i < (size_t)FTP_MAX_SESSIONS; i++) {
26 ftp_buffer_release(bufs[i]);
27 }
28
29 for (size_t i = 0U; i < (size_t)FTP_MAX_SESSIONS; i++) {
30 bufs[i] = ftp_buffer_acquire();
31 if (bufs[i] == NULL) {
32 return 4;
33 }
34 }
35
36 for (size_t i = 0U; i < (size_t)FTP_MAX_SESSIONS; i++) {
37 ftp_buffer_release(bufs[i]);
38 }
39
40 return 0;
41}
42