1111import time
1212import traceback
1313
14+ WAMRC_CMD = "../../wamr-compiler/build/wamrc"
1415
1516def start_server (cwd ):
1617 """
@@ -80,8 +81,31 @@ def main():
8081 """
8182 parser = argparse .ArgumentParser (description = "run the sample and examine outputs" )
8283 parser .add_argument ("working_directory" , type = str )
84+ parser .add_argument ("--aot" , action = 'store_true' , help = "Test with AOT" )
8385 args = parser .parse_args ()
8486
87+ test_aot = False
88+ suffix = ".wasm"
89+ if not args .aot :
90+ print ("Test with interpreter mode" )
91+ else :
92+ print ("Test with AOT mode" )
93+ test_aot = True
94+ suffix = ".aot"
95+ wasm_files = [ "timer" , "sensor" , "connection" ,
96+ "event_publisher" , "event_subscriber" ,
97+ "request_handler" , "request_sender" ]
98+ work_dir = args .working_directory
99+ wasm_apps_dir = work_dir + "/wasm-apps"
100+ print ("Compile wasm app into aot files" )
101+ for wasm_file in wasm_files :
102+ CMD = []
103+ CMD .append (WAMRC_CMD )
104+ CMD .append ("-o" )
105+ CMD .append (wasm_apps_dir + "/" + wasm_file + ".aot" )
106+ CMD .append (wasm_apps_dir + "/" + wasm_file + ".wasm" )
107+ subprocess .check_call (CMD )
108+
85109 ret = 1
86110 app_server = None
87111 try :
@@ -90,35 +114,47 @@ def main():
90114 # wait for a second
91115 time .sleep (1 )
92116
93- print ("--> Install timer.wasm ..." )
117+ print ("--> Install timer" + suffix + " ..." )
94118 install_wasm_application (
95- "timer" , "./wasm-apps/timer.wasm" , args .working_directory
119+ "timer" , "./wasm-apps/timer" + suffix , args .working_directory
96120 )
97121
98- print ("--> Install event_publisher.wasm..." )
122+ # wait for a second
123+ time .sleep (3 )
124+
125+ print ("--> Query all installed applications..." )
126+ query_installed_application (args .working_directory )
127+
128+ print ("--> Install event_publisher" + suffix + "..." )
99129 install_wasm_application (
100130 "event_publisher" ,
101- "./wasm-apps/event_publisher.wasm" ,
131+ "./wasm-apps/event_publisher" + suffix ,
102132 args .working_directory ,
103133 )
104134
105- print ("--> Install event_subscriber.wasm ..." )
135+ print ("--> Install event_subscriber" + suffix + " ..." )
106136 install_wasm_application (
107137 "event_subscriber" ,
108- "./wasm-apps/event_subscriber.wasm" ,
138+ "./wasm-apps/event_subscriber" + suffix ,
109139 args .working_directory ,
110140 )
111141
112- print ("--> Uninstall timer.wasm..." )
142+ print ("--> Query all installed applications..." )
143+ query_installed_application (args .working_directory )
144+
145+ print ("--> Uninstall timer" + suffix + "..." )
113146 uninstall_wasm_application ("timer" , args .working_directory )
114147
115- print ("--> Uninstall event_publisher.wasm..." )
148+ print ("--> Query all installed applications..." )
149+ query_installed_application (args .working_directory )
150+
151+ print ("--> Uninstall event_publisher" + suffix + "..." )
116152 uninstall_wasm_application (
117153 "event_publisher" ,
118154 args .working_directory ,
119155 )
120156
121- print ("--> Uninstall event_subscriber.wasm ..." )
157+ print ("--> Uninstall event_subscriber" + suffix + " ..." )
122158 uninstall_wasm_application (
123159 "event_subscriber" ,
124160 args .working_directory ,
@@ -127,26 +163,55 @@ def main():
127163 print ("--> Query all installed applications..." )
128164 query_installed_application (args .working_directory )
129165
130- print ("--> Install request_handler.wasm ..." )
166+ print ("--> Install request_handler" + suffix + " ..." )
131167 install_wasm_application (
132168 "request_handler" ,
133- "./wasm-apps/request_handler.wasm" ,
169+ "./wasm-apps/request_handler" + suffix ,
134170 args .working_directory ,
135171 )
136172
137173 print ("--> Query again..." )
138174 query_installed_application (args .working_directory )
139175
140- print ("--> Install request_sender.wasm ..." )
176+ print ("--> Install request_sender" + suffix + " ..." )
141177 install_wasm_application (
142178 "request_sender" ,
143- "./wasm-apps/request_sender.wasm" ,
179+ "./wasm-apps/request_sender" + suffix ,
144180 args .working_directory ,
145181 )
146182
147183 print ("--> Send GET to the Wasm application named request_handler..." )
148184 send_get_to_wasm_application ("request_handler" , "/url1" , args .working_directory )
149185
186+ print ("--> Uninstall request_handler" + suffix + "..." )
187+ uninstall_wasm_application (
188+ "request_handler" ,
189+ args .working_directory ,
190+ )
191+
192+ print ("--> Uninstall request_sender" + suffix + "..." )
193+ uninstall_wasm_application (
194+ "request_sender" ,
195+ args .working_directory ,
196+ )
197+
198+ # Install a wasm app named "__exit_app_manager__" just to make app manager exit
199+ # while the wasm app is uninstalled, so as to collect the code coverage data.
200+ # Only available when collecting code coverage is enabled.
201+ print ("--> Install timer" + suffix + "..." )
202+ install_wasm_application (
203+ "__exit_app_manager__" , "./wasm-apps/timer" + suffix , args .working_directory
204+ )
205+
206+ print ("--> Uninstall timer" + suffix + "..." )
207+ uninstall_wasm_application (
208+ "__exit_app_manager__" ,
209+ args .working_directory ,
210+ )
211+
212+ # wait for a second
213+ time .sleep (1 )
214+
150215 print ("--> All pass" )
151216 ret = 0
152217 except AssertionError :
0 commit comments