/[LeafOK_CVS]/lbbs/src/test_file_loader.c
ViewVC logotype

Diff of /lbbs/src/test_file_loader.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.1 by sysadm, Fri May 16 12:22:35 2025 UTC Revision 1.2 by sysadm, Sat May 17 05:54:42 2025 UTC
# Line 18  Line 18 
18  #include "log.h"  #include "log.h"
19  #include <stdio.h>  #include <stdio.h>
20  #include <unistd.h>  #include <unistd.h>
21    #include <errno.h>
22    #include <sys/shm.h>
23    
24  const char *files[] = {  const char *files[] = {
25          "../data/welcome.txt",          "../data/welcome.txt",
26          "../data/copyright.txt",          "../data/copyright.txt",
27          "../data/register.txt",          "../data/register.txt",
28          "../data/license.txt",          "../data/license.txt",
29          "../data/login_error.txt"};          "../data/login_error.txt",
30            "../data/read_help.txt"};
31    
32  int files_cnt = 5;  int files_cnt = 6;
33    
34  int main(int argc, char *argv[])  int main(int argc, char *argv[])
35  {  {
36          int ret;          int ret;
         int file_loader_pool_size = 2;  
37          int i;          int i;
38          const FILE_MMAP *p_file_mmap;          const void *p_file_shm;
39    
40          if (log_begin("../log/bbsd.log", "../log/error.log") < 0)          if (log_begin("../log/bbsd.log", "../log/error.log") < 0)
41          {          {
# Line 44  int main(int argc, char *argv[]) Line 46  int main(int argc, char *argv[])
46          log_std_redirect(STDOUT_FILENO);          log_std_redirect(STDOUT_FILENO);
47          log_err_redirect(STDERR_FILENO);          log_err_redirect(STDERR_FILENO);
48    
49          ret = file_loader_init(file_loader_pool_size);          ret = file_loader_init();
50          if (ret < 0)          if (ret < 0)
51          {          {
52                  printf("file_loader_init() error (%d)\n", ret);                  printf("file_loader_init() error (%d)\n", ret);
53                  return ret;                  return ret;
54          }          }
55    
56          ret = file_loader_init(file_loader_pool_size);          ret = file_loader_init();
57          if (ret == 0)          if (ret == 0)
58          {          {
59                  printf("Rerun file_loader_init() error\n");                  printf("Rerun file_loader_init() error\n");
# Line 59  int main(int argc, char *argv[]) Line 61  int main(int argc, char *argv[])
61    
62          printf("Testing #1\n");          printf("Testing #1\n");
63    
64          for (i = 0; i < file_loader_pool_size; i++)          for (i = 0; i < files_cnt; i++)
65          {          {
66                  if (load_file_mmap(files[i]) < 0)                  if (load_file_shm(files[i]) < 0)
67                  {                  {
68                          printf("Load file %s error\n", files[i]);                          printf("Load file %s error\n", files[i]);
69                  }                  }
70          }          }
71    
72          for (i = 0; i < file_loader_pool_size; i++)          for (i = 0; i < files_cnt; i++)
73          {          {
74                  if ((p_file_mmap = get_file_mmap(files[i])) == NULL)                  if ((p_file_shm = get_file_shm(files[i])) == NULL)
75                  {                  {
76                          printf("Get file mmap %s error\n", files[i]);                          printf("Get file shm %s error\n", files[i]);
77                  }                  }
78                  else                  else
79                  {                  {
80                          printf("File: %s size: ", files[i]);                          printf("File: %s size: %ld lines: %ld\n", files[i], *((size_t *)p_file_shm), *((size_t *)(p_file_shm + sizeof(size_t))));
                         printf("size: %ld lines: %ld\n", p_file_mmap->size, p_file_mmap->line_total);  
                 }  
         }  
81    
82          for (i = 0; i < file_loader_pool_size; i++)                          if (shmdt(p_file_shm) == -1)
83          {                          {
84                  if (unload_file_mmap(files[i]) < 0)                                  log_error("shmdt() error (%d)\n", errno);
85                  {                          }
                         printf("Unload file %s error\n", files[i]);  
86                  }                  }
87          }          }
88    
# Line 92  int main(int argc, char *argv[]) Line 90  int main(int argc, char *argv[])
90    
91          for (i = 0; i < files_cnt; i++)          for (i = 0; i < files_cnt; i++)
92          {          {
93                  if (i >= file_loader_pool_size)                  if (unload_file_shm(files[i]) < 0)
94                  {                  {
95                          if (unload_file_mmap(files[i - file_loader_pool_size]) < 0)                          printf("Unload file %s error\n", files[i]);
                         {  
                                 printf("Unload file %s error\n", files[i]);  
                         }  
96                  }                  }
97            }
98    
99                  if (load_file_mmap(files[i]) < 0)          for (i = 0; i < files_cnt; i++)
100            {
101                    if (load_file_shm(files[i]) < 0)
102                  {                  {
103                          printf("Load file %s error\n", files[i]);                          printf("Load file %s error\n", files[i]);
104                  }                  }
# Line 110  int main(int argc, char *argv[]) Line 108  int main(int argc, char *argv[])
108    
109          for (i = 0; i < files_cnt; i++)          for (i = 0; i < files_cnt; i++)
110          {          {
111                  if ((p_file_mmap = get_file_mmap(files[i])) == NULL)                  if (i % 2 == 0)
112                  {                  {
113                          printf("Get file mmap %s error\n", files[i]);                          if (unload_file_shm(files[i]) < 0)
114                            {
115                                    printf("Unload file %s error\n", files[i]);
116                            }
117                  }                  }
118                  else          }
119    
120            for (i = 0; i < files_cnt; i++)
121            {
122                    if (i % 2 != 0)
123                  {                  {
124                          printf("File: %s size: ", files[i]);                          if ((p_file_shm = get_file_shm(files[i])) == NULL)
125                          printf("size: %ld lines: %ld\n", p_file_mmap->size, p_file_mmap->line_total);                          {
126                                    printf("Get file shm %s error\n", files[i]);
127                            }
128                            else
129                            {
130                                    printf("File: %s size: %ld lines: %ld\n", files[i], *((size_t *)p_file_shm), *((size_t *)(p_file_shm + sizeof(size_t))));
131    
132                                    if (shmdt(p_file_shm) == -1)
133                                    {
134                                            log_error("shmdt() error (%d)\n", errno);
135                                    }
136                            }
137                  }                  }
138          }          }
139    


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1