annotate mrjunejune/test/test.h @ 149:f41ac17926d2

[Config] Added ctags scripts and actual tags.
author June Park <parkjune1995@gmail.com>
date Sat, 10 Jan 2026 07:07:10 -0800
parents c1eab8c0b0f9
children f3084bca7317
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
1 #include "seobeo/seobeo.h"
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
2 #include "seobeo/snapshot_creator.h"
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
3 #include <stdio.h>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
4 #include <stdlib.h>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
5 #include <unistd.h>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
6 #include <sys/wait.h>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
7 #include <signal.h>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
8
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
9 #define TEST_PORT "6969"
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
10 #define TEST_HOST "127.0.0.1"
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
11 #define TEST_URL "http://127.0.0.1:6969"
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
12 #define MAX_RESPONSE_SIZE (1024 * 1024)
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
13 #ifndef SNAPSHOT_DIR
145
c1eab8c0b0f9 [MrJuneJune] Small improvement UX and tests passes now.
June Park <parkjune1995@gmail.com>
parents: 129
diff changeset
14 #define SNAPSHOT_DIR "/Users/mrjunejune/zenbu/mrjunejune/test/snapshots"
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
15 #endif
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
16
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
17 pid_t start_test_server(const char *server_binary);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
18 void stop_test_server(pid_t server_pid);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
19
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
20
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
21 pid_t start_test_server(const char *server_binary)
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
22 {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
23 pid_t server_pid = fork();
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
24
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
25 if (server_pid < 0)
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
26 {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
27 perror("fork");
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
28 return -1;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
29 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
30
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
31 if (server_pid == 0)
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
32 {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
33 printf("Starting server on port %s...\n", TEST_PORT);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
34 execl(server_binary, server_binary, NULL);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
35 perror("execl failed");
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
36 exit(1);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
37 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
38
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
39 printf("Server started (PID: %d)\n", server_pid);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
40
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
41 usleep(100000);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
42 int status;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
43 pid_t result = waitpid(server_pid, &status, WNOHANG);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
44 if (result != 0)
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
45 {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
46 if (WIFEXITED(status))
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
47 {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
48 fprintf(stderr, "Server exited immediately with code: %d\n", WEXITSTATUS(status));
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
49 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
50 else if (WIFSIGNALED(status))
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
51 {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
52 fprintf(stderr, "Server was killed by signal: %d\n", WTERMSIG(status));
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
53 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
54 return -1;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
55 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
56
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
57 sleep(2);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
58 printf("Server ready\n\n");
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
59
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
60 return server_pid;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
61 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
62
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
63 void stop_test_server(pid_t server_pid)
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
64 {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
65 if (server_pid > 0)
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
66 {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
67 printf("\nStopping server (PID: %d)...\n", server_pid);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
68 kill(server_pid, SIGTERM);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
69 waitpid(server_pid, NULL, 0);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
70 printf("Server stopped\n");
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
71 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
72 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
73
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
74