@@ -78,6 +78,16 @@ def wait_for_mooncake_master(host: str = "127.0.0.1", port: int = FD_MOONCAKE_MA
7878 return False
7979
8080
81+ def prepare_log_dir (name ):
82+ """
83+ Prepare log directory for test.
84+ """
85+ base = os .getenv ("FD_LOG_DIR" , "log" )
86+ path = os .path .join (base , name )
87+ os .makedirs (path , exist_ok = True )
88+ return path
89+
90+
8191@pytest .fixture (scope = "session" , autouse = True )
8292def setup_and_run_server ():
8393 """
@@ -136,8 +146,8 @@ def setup_and_run_server():
136146 )
137147
138148 env_master = os .environ .copy ()
139- env_master [ "FD_LOG_DIR" ] = "log_master"
140- os . makedirs ( "log_master" , exist_ok = True )
149+ master_log_dir = prepare_log_dir ( "log_master" )
150+ env_master [ "FD_LOG_DIR" ] = master_log_dir
141151
142152 master_cmd = [
143153 "mooncake_master" ,
@@ -147,7 +157,7 @@ def setup_and_run_server():
147157 f"--http_metadata_server_port={ FD_MOONCAKE_METADATA_PORT } " ,
148158 ]
149159
150- with open ("log_master/ nohup" , "w" ) as logfile :
160+ with open (os . path . join ( master_log_dir , " nohup") , "w" ) as logfile :
151161 process_master = subprocess .Popen (
152162 master_cmd ,
153163 stdout = logfile ,
@@ -160,7 +170,7 @@ def setup_and_run_server():
160170 if not wait_for_mooncake_master (port = FD_MOONCAKE_MASTER_PORT , timeout = 30 ):
161171 print ("[ERROR] Mooncake Master failed to start" )
162172 # Print mooncake master log for debugging
163- master_log_path = "log_master/ nohup"
173+ master_log_path = os . path . join ( master_log_dir , " nohup")
164174 if os .path .exists (master_log_path ):
165175 print (f"\n ===== Mooncake Master Log ({ master_log_path } ) =====" )
166176 with open (master_log_path , "r" ) as f :
@@ -175,9 +185,9 @@ def setup_and_run_server():
175185 # ======================== Start Router ========================
176186 print ("start router..." )
177187 env_router = os .environ .copy ()
178- env_router [ "FD_LOG_DIR" ] = "log_router"
179- os . makedirs ( "log_router" , exist_ok = True )
180- router_log_path = "log_router/ nohup.log"
188+ router_log_dir = prepare_log_dir ( "log_router" )
189+ env_router [ "FD_LOG_DIR" ] = router_log_dir
190+ router_log_path = os . path . join ( router_log_dir , " nohup" )
181191
182192 router_cmd = [
183193 sys .executable ,
@@ -201,13 +211,14 @@ def setup_and_run_server():
201211 print ("start prefill..." )
202212 env_prefill = os .environ .copy ()
203213 env_prefill ["CUDA_VISIBLE_DEVICES" ] = "0"
204- env_prefill ["FD_LOG_DIR" ] = "log_prefill"
205- os .makedirs ("log_prefill" , exist_ok = True )
214+ prefill_log_dir = prepare_log_dir ("log_prefill" )
215+ env_prefill ["FD_LOG_DIR" ] = prefill_log_dir
216+
206217 # Mooncake environment variables for prefill
207218 for k , v in mooncake_env .items ():
208219 env_prefill [k ] = v
209220
210- prefill_log_path = "log_prefill/ nohup.log"
221+ prefill_log_path = os . path . join ( prefill_log_dir , " nohup" )
211222 prefill_cmd = [
212223 sys .executable ,
213224 "-m" ,
@@ -254,13 +265,13 @@ def setup_and_run_server():
254265 print ("start decode..." )
255266 env_decode = os .environ .copy ()
256267 env_decode ["CUDA_VISIBLE_DEVICES" ] = "1"
257- env_decode [ "FD_LOG_DIR" ] = "log_decode"
258- os . makedirs ( "log_decode" , exist_ok = True )
268+ decode_log_dir = prepare_log_dir ( "log_decode" )
269+ env_decode [ "FD_LOG_DIR" ] = decode_log_dir
259270 # Mooncake environment variables for decode
260271 for k , v in mooncake_env .items ():
261272 env_decode [k ] = v
262273
263- decode_log_path = "log_decode/ nohup.log"
274+ decode_log_path = os . path . join ( decode_log_dir , " nohup.log")
264275 decode_cmd = [
265276 sys .executable ,
266277 "-m" ,
0 commit comments