1 # SPDX-License-Identifier: GPL-2.0
3 bin_PROGRAMS += client/bluetoothctl
5 client_bluetoothctl_SOURCES = client/main.c \
6 client/display.h client/display.c \
7 client/agent.h client/agent.c \
10 client/adv_monitor.h \
11 client/adv_monitor.c \
12 client/gatt.h client/gatt.c \
13 client/admin.h client/admin.c \
14 client/player.h client/player.c
15 monitor/uuid.h monitor/uuid.c
16 client_bluetoothctl_LDADD = gdbus/libgdbus-internal.la src/libshared-glib.la \
17 $(GLIB_LIBS) $(DBUS_LIBS) -lreadline
21 bin_PROGRAMS += monitor/btmon
23 monitor_btmon_SOURCES = monitor/main.c monitor/bt.h \
24 monitor/display.h monitor/display.c \
25 monitor/hcidump.h monitor/hcidump.c \
26 monitor/ellisys.h monitor/ellisys.c \
27 monitor/control.h monitor/control.c \
28 monitor/packet.h monitor/packet.c \
29 monitor/vendor.h monitor/vendor.c \
30 monitor/lmp.h monitor/lmp.c \
31 monitor/crc.h monitor/crc.c \
32 monitor/ll.h monitor/ll.c \
33 monitor/l2cap.h monitor/l2cap.c \
34 monitor/sdp.h monitor/sdp.c \
35 monitor/avctp.h monitor/avctp.c \
36 monitor/avdtp.h monitor/avdtp.c \
37 monitor/a2dp.h monitor/a2dp.c \
38 monitor/rfcomm.h monitor/rfcomm.c \
39 monitor/bnep.h monitor/bnep.c \
40 monitor/uuid.h monitor/uuid.c \
41 monitor/hwdb.h monitor/hwdb.c \
42 monitor/keys.h monitor/keys.c \
43 monitor/analyze.h monitor/analyze.c \
44 monitor/intel.h monitor/intel.c \
45 monitor/broadcom.h monitor/broadcom.c \
46 monitor/msft.h monitor/msft.c \
47 monitor/jlink.h monitor/jlink.c \
48 monitor/tty.h monitor/emulator.h \
49 monitor/att.h monitor/att.c \
50 src/log.h src/bluez-log.c src/log.c \
51 src/textfile.h src/textfile.c \
52 src/settings.h src/settings.c
53 monitor_btmon_LDADD = lib/libbluetooth-internal.la \
54 src/libshared-mainloop.la \
55 $(GLIB_LIBS) $(UDEV_LIBS) -ldl @LIBXML_LIBS@
57 man_MANS += monitor/btmon.1
60 manual_pages += monitor/btmon.1
63 libexec_PROGRAMS += tools/btmon-logger
65 tools_btmon_logger_SOURCES = tools/btmon-logger.c
66 tools_btmon_logger_LDADD = src/libshared-mainloop.la
67 tools_btmon_logger_DEPENDENCIES = src/libshared-mainloop.la \
68 tools/bluetooth-logger.service
71 systemdsystemunit_DATA += tools/bluetooth-logger.service
75 CLEANFILES += tools/bluetooth-logger.service
76 EXTRA_DIST += tools/bluetooth-logger.service.in
79 noinst_PROGRAMS += emulator/btvirt emulator/b1ee emulator/hfp \
80 peripheral/btsensor tools/3dsp \
81 tools/mgmt-tester tools/gap-tester \
82 tools/l2cap-tester tools/sco-tester \
83 tools/smp-tester tools/hci-tester \
84 tools/rfcomm-tester tools/bnep-tester \
85 tools/userchan-tester tools/iso-tester \
86 tools/mesh-tester tools/ioctl-tester
88 emulator_btvirt_SOURCES = emulator/main.c monitor/bt.h \
89 emulator/serial.h emulator/serial.c \
90 emulator/server.h emulator/server.c \
91 emulator/vhci.h emulator/vhci.c \
92 emulator/btdev.h emulator/btdev.c \
93 emulator/bthost.h emulator/bthost.c \
95 emulator/phy.h emulator/phy.c \
96 emulator/amp.h emulator/amp.c \
97 emulator/le.h emulator/le.c
98 emulator_btvirt_LDADD = lib/libbluetooth-internal.la src/libshared-mainloop.la
100 emulator_b1ee_SOURCES = emulator/b1ee.c
101 emulator_b1ee_LDADD = src/libshared-mainloop.la
103 emulator_hfp_SOURCES = emulator/hfp.c
104 emulator_hfp_LDADD = src/libshared-mainloop.la
106 peripheral_btsensor_SOURCES = peripheral/main.c \
107 peripheral/efivars.h peripheral/efivars.c \
108 peripheral/attach.h peripheral/attach.c \
109 peripheral/log.h peripheral/log.c \
110 peripheral/gap.h peripheral/gap.c \
111 peripheral/gatt.h peripheral/gatt.c
112 peripheral_btsensor_LDADD = src/libshared-mainloop.la \
113 lib/libbluetooth-internal.la
115 tools_3dsp_SOURCES = tools/3dsp.c monitor/bt.h
116 tools_3dsp_LDADD = src/libshared-mainloop.la
118 tools_mgmt_tester_SOURCES = tools/mgmt-tester.c monitor/bt.h \
119 emulator/hciemu.h emulator/hciemu.c \
120 emulator/vhci.h emulator/vhci.c \
121 emulator/btdev.h emulator/btdev.c \
122 emulator/bthost.h emulator/bthost.c \
124 tools_mgmt_tester_LDADD = lib/libbluetooth-internal.la \
125 src/libshared-glib.la $(GLIB_LIBS)
127 tools_mesh_tester_SOURCES = tools/mesh-tester.c monitor/bt.h \
128 emulator/hciemu.h emulator/hciemu.c \
129 emulator/vhci.h emulator/vhci.c \
130 emulator/btdev.h emulator/btdev.c \
131 emulator/bthost.h emulator/bthost.c \
133 tools_mesh_tester_LDADD = lib/libbluetooth-internal.la \
134 src/libshared-glib.la $(GLIB_LIBS)
136 tools_l2cap_tester_SOURCES = tools/l2cap-tester.c monitor/bt.h \
137 emulator/hciemu.h emulator/hciemu.c \
138 emulator/vhci.h emulator/vhci.c \
139 emulator/btdev.h emulator/btdev.c \
140 emulator/bthost.h emulator/bthost.c \
142 tools_l2cap_tester_LDADD = lib/libbluetooth-internal.la \
143 src/libshared-glib.la $(GLIB_LIBS)
145 tools_rfcomm_tester_SOURCES = tools/rfcomm-tester.c monitor/bt.h \
146 emulator/hciemu.h emulator/hciemu.c \
147 emulator/vhci.h emulator/vhci.c \
148 emulator/btdev.h emulator/btdev.c \
149 emulator/bthost.h emulator/bthost.c \
151 tools_rfcomm_tester_LDADD = lib/libbluetooth-internal.la \
152 src/libshared-glib.la $(GLIB_LIBS)
154 tools_bnep_tester_SOURCES = tools/bnep-tester.c monitor/bt.h \
155 emulator/hciemu.h emulator/hciemu.c \
156 emulator/vhci.h emulator/vhci.c \
157 emulator/btdev.h emulator/btdev.c \
158 emulator/bthost.h emulator/bthost.c \
160 tools_bnep_tester_LDADD = lib/libbluetooth-internal.la \
161 src/libshared-glib.la $(GLIB_LIBS)
163 tools_smp_tester_SOURCES = tools/smp-tester.c monitor/bt.h \
164 emulator/hciemu.h emulator/hciemu.c \
165 emulator/vhci.h emulator/vhci.c \
166 emulator/btdev.h emulator/btdev.c \
167 emulator/bthost.h emulator/bthost.c \
169 tools_smp_tester_LDADD = lib/libbluetooth-internal.la \
170 src/libshared-glib.la $(GLIB_LIBS)
172 tools_gap_tester_SOURCES = tools/gap-tester.c monitor/bt.h \
173 emulator/hciemu.h emulator/hciemu.c \
174 emulator/vhci.h emulator/vhci.c \
175 emulator/btdev.h emulator/btdev.c \
176 emulator/bthost.h emulator/bthost.c \
178 tools_gap_tester_LDADD = lib/libbluetooth-internal.la \
179 gdbus/libgdbus-internal.la \
180 src/libshared-glib.la \
181 $(GLIB_LIBS) $(DBUS_LIBS)
183 tools_sco_tester_SOURCES = tools/sco-tester.c monitor/bt.h \
184 emulator/hciemu.h emulator/hciemu.c \
185 emulator/vhci.h emulator/vhci.c \
186 emulator/btdev.h emulator/btdev.c \
187 emulator/bthost.h emulator/bthost.c \
189 tools_sco_tester_LDADD = lib/libbluetooth-internal.la \
190 src/libshared-glib.la $(GLIB_LIBS)
192 tools_hci_tester_SOURCES = tools/hci-tester.c monitor/bt.h
193 tools_hci_tester_LDADD = src/libshared-glib.la $(GLIB_LIBS)
195 tools_userchan_tester_SOURCES = tools/userchan-tester.c monitor/bt.h \
196 emulator/hciemu.h emulator/hciemu.c \
197 emulator/vhci.h emulator/vhci.c \
198 emulator/btdev.h emulator/btdev.c \
199 emulator/bthost.h emulator/bthost.c \
201 tools_userchan_tester_LDADD = lib/libbluetooth-internal.la \
202 src/libshared-glib.la $(GLIB_LIBS)
204 tools_iso_tester_SOURCES = tools/iso-tester.c monitor/bt.h \
205 emulator/hciemu.h emulator/hciemu.c \
206 emulator/vhci.h emulator/vhci.c \
207 emulator/btdev.h emulator/btdev.c \
208 emulator/bthost.h emulator/bthost.c \
210 tools_iso_tester_LDADD = lib/libbluetooth-internal.la \
211 src/libshared-glib.la $(GLIB_LIBS)
213 tools_ioctl_tester_SOURCES = tools/ioctl-tester.c monitor/bt.h \
214 emulator/hciemu.h emulator/hciemu.c \
215 emulator/vhci.h emulator/vhci.c \
216 emulator/btdev.h emulator/btdev.c \
217 emulator/bthost.h emulator/bthost.c \
219 tools_ioctl_tester_LDADD = lib/libbluetooth-internal.la \
220 src/libshared-glib.la $(GLIB_LIBS)
224 bin_PROGRAMS += tools/hciattach tools/hciconfig tools/hcitool tools/hcidump \
225 tools/rfcomm tools/rctest tools/l2test tools/l2ping \
226 tools/sdptool tools/ciptool \
227 tools/bluemoon tools/hex2hcd tools/mpris-proxy tools/isotest
229 tools_hciattach_SOURCES = tools/hciattach.c tools/hciattach.h \
230 tools/hciattach_st.c \
231 tools/hciattach_ti.c \
232 tools/hciattach_tialt.c \
233 tools/hciattach_ath3k.c \
234 tools/hciattach_qualcomm.c \
235 tools/hciattach_intel.c \
236 tools/hciattach_sprd.c \
238 tools/hciattach_bcm43xx.c
239 tools_hciattach_LDADD = lib/libbluetooth-internal.la @LIBXML_LIBS@ @INIPARSER_LIBS@
241 tools_hciconfig_SOURCES = tools/hciconfig.c
242 tools_hciconfig_LDADD = lib/libbluetooth-internal.la
244 tools_hcitool_SOURCES = tools/hcitool.c src/oui.h src/oui.c
245 tools_hcitool_LDADD = lib/libbluetooth-internal.la $(UDEV_LIBS)
247 tools_hcidump_SOURCES = tools/hcidump.c \
248 tools/parser/parser.h tools/parser/parser.c \
251 tools/parser/l2cap.h tools/parser/l2cap.c \
255 tools/parser/sdp.h tools/parser/sdp.c \
256 tools/parser/rfcomm.h tools/parser/rfcomm.c \
257 tools/parser/bnep.c \
258 tools/parser/cmtp.c \
259 tools/parser/hidp.c \
260 tools/parser/hcrp.c \
261 tools/parser/avdtp.c \
262 tools/parser/avctp.c \
263 tools/parser/avrcp.c \
265 tools/parser/obex.c \
266 tools/parser/capi.c \
268 tools/parser/tcpip.c \
269 tools/parser/ericsson.c \
272 tools_hcidump_LDADD = lib/libbluetooth-internal.la
274 tools_rfcomm_LDADD = lib/libbluetooth-internal.la
276 tools_rctest_LDADD = lib/libbluetooth-internal.la
278 tools_l2test_LDADD = lib/libbluetooth-internal.la
280 tools_l2ping_LDADD = lib/libbluetooth-internal.la
282 tools_sdptool_SOURCES = tools/sdptool.c src/sdp-xml.h src/sdp-xml.c
283 tools_sdptool_LDADD = lib/libbluetooth-internal.la $(GLIB_LIBS)
285 tools_ciptool_LDADD = lib/libbluetooth-internal.la
287 tools_bluemoon_SOURCES = tools/bluemoon.c monitor/bt.h
288 tools_bluemoon_LDADD = src/libshared-mainloop.la
290 tools_hex2hcd_SOURCES = tools/hex2hcd.c
292 tools_mpris_proxy_SOURCES = tools/mpris-proxy.c
293 tools_mpris_proxy_LDADD = gdbus/libgdbus-internal.la $(GLIB_LIBS) $(DBUS_LIBS)
296 man_MANS += tools/hciattach.1 tools/hciconfig.1 \
297 tools/hcitool.1 tools/hcidump.1 \
298 tools/rfcomm.1 tools/rctest.1 tools/l2ping.1 \
299 tools/sdptool.1 tools/ciptool.1
302 manual_pages += tools/hciattach.1 tools/hciconfig.1 \
303 tools/hcitool.1 tools/hcidump.1 \
304 tools/rfcomm.1 tools/rctest.1 tools/l2ping.1 \
305 tools/sdptool.1 tools/ciptool.1 tools/bdaddr.1 tools/isotest.1
308 udevdir = $(UDEV_DIR)
310 udev_PROGRAMS = tools/hid2hci
312 tools_hid2hci_LDADD = $(UDEV_LIBS)
315 man_MANS += tools/hid2hci.1
318 manual_pages += tools/hid2hci.1
321 bin_PROGRAMS += tools/meshctl
323 tools_meshctl_SOURCES = tools/meshctl.c \
324 tools/mesh/config-model.h\
325 tools/mesh-gatt/mesh-net.h \
326 tools/mesh-gatt/node.h tools/mesh-gatt/node.c \
327 tools/mesh-gatt/gatt.h tools/mesh-gatt/gatt.c \
328 tools/mesh-gatt/crypto.h\
329 tools/mesh-gatt/crypto.c \
330 tools/mesh-gatt/keys.h \
331 tools/mesh-gatt/net.h tools/mesh-gatt/net.c \
332 tools/mesh-gatt/prov.h tools/mesh-gatt/prov.c \
333 tools/mesh-gatt/util.h tools/mesh-gatt/util.c \
334 tools/mesh-gatt/agent.h tools/mesh-gatt/agent.c \
335 tools/mesh-gatt/prov-db.h \
336 tools/mesh-gatt/prov-db.c \
337 tools/mesh-gatt/config-client.c \
338 tools/mesh-gatt/config-server.c \
339 tools/mesh-gatt/onoff-model.h \
340 tools/mesh-gatt/onoff-model.c
341 tools_meshctl_LDADD = gdbus/libgdbus-internal.la src/libshared-glib.la \
342 lib/libbluetooth-internal.la \
343 $(GLIB_LIBS) $(DBUS_LIBS) -ljson-c -lreadline
346 bin_PROGRAMS += tools/mesh-cfgclient
348 tools_mesh_cfgclient_SOURCES = tools/mesh-cfgclient.c \
349 tools/mesh/model.h tools/mesh/config-model.h \
350 tools/mesh/cfgcli.h tools/mesh/cfgcli.c \
351 tools/mesh/keys.h tools/mesh/keys.c \
352 tools/mesh/util.h tools/mesh/util.c \
353 tools/mesh/remote.h tools/mesh/remote.c \
354 tools/mesh/agent.h tools/mesh/agent.c \
355 tools/mesh/mesh-db.h tools/mesh/mesh-db.c \
356 mesh/util.h mesh/util.c \
357 mesh/crypto.h mesh/crypto.c
359 tools_mesh_cfgclient_LDADD = lib/libbluetooth-internal.la src/libshared-ell.la src/libshared-glib.la \
360 @GLIB_LIBS@ @DBUS_LIBS@ $(ell_ldadd) -ljson-c -lreadline
364 EXTRA_DIST += tools/mesh-gatt/local_node.json tools/mesh-gatt/prov_db.json
367 bin_PROGRAMS += tools/btattach
368 bin_PROGRAMS += tools/btsnoop
369 bin_PROGRAMS += tools/avtest
371 noinst_PROGRAMS += tools/bdaddr tools/avinfo \
372 tools/scotest tools/amptest tools/hwdb \
373 tools/hcieventmask tools/hcisecfilter \
376 tools/btiotest tools/bneptest tools/mcaptest \
377 tools/cltest tools/oobtest tools/seq2bseq \
378 tools/nokfw tools/bcmfw tools/create-image \
379 tools/eddystone tools/ibeacon \
380 tools/btgatt-client tools/btgatt-server \
381 tools/test-runner tools/check-selftest
383 tools_bdaddr_SOURCES = tools/bdaddr.c src/oui.h src/oui.c
384 tools_bdaddr_LDADD = lib/libbluetooth-internal.la @UDEV_LIBS@
386 tools_avinfo_LDADD = lib/libbluetooth-internal.la
388 tools_avtest_LDADD = lib/libbluetooth-internal.la
390 tools_scotest_LDADD = lib/libbluetooth-internal.la
392 tools_amptest_LDADD = lib/libbluetooth-internal.la
394 tools_hwdb_LDADD = lib/libbluetooth-internal.la
396 tools_hcieventmask_LDADD = lib/libbluetooth-internal.la
398 tools_btinfo_SOURCES = tools/btinfo.c monitor/bt.h
399 tools_btinfo_LDADD = src/libshared-mainloop.la
401 tools_btattach_SOURCES = tools/btattach.c monitor/bt.h
402 tools_btattach_LDADD = src/libshared-mainloop.la
404 tools_btsnoop_SOURCES = tools/btsnoop.c
405 tools_btsnoop_LDADD = src/libshared-mainloop.la
407 tools_btproxy_SOURCES = tools/btproxy.c monitor/bt.h
408 tools_btproxy_LDADD = src/libshared-mainloop.la
410 tools_btiotest_SOURCES = tools/btiotest.c btio/btio.h btio/btio.c
411 tools_btiotest_LDADD = lib/libbluetooth-internal.la $(GLIB_LIBS)
413 tools_mcaptest_SOURCES = tools/mcaptest.c \
414 btio/btio.h btio/btio.c \
415 src/log.c src/bluez-log.c src/log.h \
416 profiles/health/mcap.h profiles/health/mcap.c
417 tools_mcaptest_LDADD = lib/libbluetooth-internal.la $(GLIB_LIBS) @LIBXML_LIBS@ \
418 src/libshared-mainloop.la -lrt
420 tools_bneptest_SOURCES = tools/bneptest.c \
421 btio/btio.h btio/btio.c \
422 src/log.h src/log.c src/bluez-log.c \
423 profiles/network/bnep.h profiles/network/bnep.c
424 tools_bneptest_LDADD = lib/libbluetooth-internal.la $(GLIB_LIBS) @LIBXML_LIBS@ \
425 src/libshared-mainloop.la
427 tools_cltest_SOURCES = tools/cltest.c
428 tools_cltest_LDADD = lib/libbluetooth-internal.la src/libshared-mainloop.la
430 tools_oobtest_SOURCES = tools/oobtest.c
431 tools_oobtest_LDADD = lib/libbluetooth-internal.la src/libshared-mainloop.la
433 tools_seq2bseq_SOURCES = tools/seq2bseq.c
435 tools_nokfw_SOURCES = tools/nokfw.c
437 tools_create_image_SOURCES = tools/create-image.c
439 tools_eddystone_SOURCES = tools/eddystone.c monitor/bt.h
440 tools_eddystone_LDADD = src/libshared-mainloop.la
442 tools_ibeacon_SOURCES = tools/ibeacon.c monitor/bt.h
443 tools_ibeacon_LDADD = src/libshared-mainloop.la
445 tools_btgatt_client_SOURCES = tools/btgatt-client.c src/uuid-helper.c
446 tools_btgatt_client_LDADD = src/libshared-mainloop.la \
447 lib/libbluetooth-internal.la
449 tools_btgatt_server_SOURCES = tools/btgatt-server.c src/uuid-helper.c
450 tools_btgatt_server_LDADD = src/libshared-mainloop.la \
451 lib/libbluetooth-internal.la
454 man_MANS += tools/btattach.1 tools/isotest.1
457 EXTRA_DIST += tools/btattach.1 tools/bdaddr.1
460 noinst_PROGRAMS += attrib/gatttool tools/btmgmt \
461 tools/obex-client-tool tools/obex-server-tool \
462 tools/bluetooth-player tools/obexctl
464 attrib_gatttool_SOURCES = attrib/gatttool.c attrib/att.c attrib/gatt.c \
465 attrib/gattrib.c btio/btio.c \
466 attrib/gatttool.h attrib/interactive.c \
467 attrib/utils.c src/log.c src/bluez-log.c client/display.c \
469 attrib_gatttool_LDADD = lib/libbluetooth-internal.la \
470 src/libshared-glib.la $(GLIB_LIBS) -lreadline @LIBXML_LIBS@
472 tools_obex_client_tool_SOURCES = $(gobex_sources) $(btio_sources) \
473 tools/obex-client-tool.c
474 tools_obex_client_tool_LDADD = lib/libbluetooth-internal.la \
475 $(GLIB_LIBS) -lreadline
477 tools_obex_server_tool_SOURCES = $(gobex_sources) $(btio_sources) \
478 tools/obex-server-tool.c
479 tools_obex_server_tool_LDADD = lib/libbluetooth-internal.la $(GLIB_LIBS)
481 tools_bluetooth_player_SOURCES = tools/bluetooth-player.c client/player.c
482 client/display.h client/display.c
483 tools_bluetooth_player_LDADD = gdbus/libgdbus-internal.la \
484 src/libshared-glib.la \
485 $(GLIB_LIBS) $(DBUS_LIBS) -lreadline
487 tools_obexctl_SOURCES = tools/obexctl.c \
488 client/display.h client/display.c
489 tools_obexctl_LDADD = gdbus/libgdbus-internal.la src/libshared-glib.la \
490 $(GLIB_LIBS) $(DBUS_LIBS) -lreadline
492 tools_btmgmt_SOURCES = tools/btmgmt.c src/uuid-helper.c client/display.c
493 tools_btmgmt_LDADD = lib/libbluetooth-internal.la src/libshared-mainloop.la \
498 noinst_PROGRAMS += tools/gatt-service
500 tools_gatt_service_SOURCES = tools/gatt-service.c
501 tools_gatt_service_LDADD = $(GLIB_LIBS) $(DBUS_LIBS) gdbus/libgdbus-internal.la
503 tools_isotest_LDADD = lib/libbluetooth-internal.la
505 noinst_PROGRAMS += profiles/iap/iapd
507 profiles_iap_iapd_SOURCES = profiles/iap/main.c
508 profiles_iap_iapd_LDADD = gdbus/libgdbus-internal.la $(GLIB_LIBS) $(DBUS_LIBS)
512 cupsdir = $(libdir)/cups/backend
514 cups_PROGRAMS = profiles/cups/bluetooth
516 profiles_cups_bluetooth_SOURCES = profiles/cups/main.c \
517 profiles/cups/cups.h \
518 profiles/cups/sdp.c \
519 profiles/cups/spp.c \
522 profiles_cups_bluetooth_LDADD = $(GLIB_LIBS) $(DBUS_LIBS) \
523 lib/libbluetooth-internal.la \
524 gdbus/libgdbus-internal.la
527 test_scripts += test/sap_client.py test/bluezutils.py \
528 test/dbusdef.py test/monitor-bluetooth test/list-devices \
529 test/test-discovery test/test-manager test/test-adapter \
530 test/test-device test/simple-agent \
531 test/simple-endpoint test/test-sap-server \
532 test/test-proximity test/test-network \
533 test/test-thermometer test/test-profile test/test-health \
534 test/test-health-sink test/service-record.dtd \
535 test/service-did.xml test/service-spp.xml test/service-opp.xml \
536 test/service-ftp.xml test/simple-player test/test-nap \
537 test/test-heartrate test/test-alert test/test-hfp \
538 test/test-cyclingspeed test/opp-client test/ftp-client \
539 test/pbap-client test/map-client test/example-advertisement \
540 test/example-gatt-server test/example-gatt-client \
541 test/test-gatt-profile test/test-mesh test/agent.py