emqx/apps/emqx_coap/intergration_test/Makefile

130 lines
4.2 KiB
Makefile

.PHONY: clean, clean_result, start_broker stop_broker case1 case2 case3
RELX_CONF = emqx-rel/relx.config
LIBCOAP_GIT = libcoap/README.md
all: clean_result $(RELX_CONF) $(LIBCOAP_GIT) start_broker clean_result case1 case2 case3 case4 stop_broker
@echo " "
@echo " test complete"
@echo " "
clean_result:
-rm -f case*.txt
start_broker:
-rm -f emqx-rel/_rel/emqx/log/*
-emqx-rel/_rel/emqx/bin/emqx stop
sleep 1
emqx-rel/_rel/emqx/bin/emqx start
sleep 1
emqx-rel/_rel/emqx/bin/emqx_ctl plugins load emqx_coap
stop_broker:
-emqx-rel/_rel/emqx/bin/emqx stop
case1:
libcoap/examples/coap-client -m get -s 5 "coap://127.0.0.1/mqtt/topic1?c=client1&u=tom&p=secret" > case1_output.txt &
sleep 1
libcoap/examples/coap-client -m put -e w123G45 "coap://127.0.0.1/mqtt/topic1?c=client2&u=mike&p=pw12"
sleep 6
python check_result.py case1 case1_output.txt==w123G45
case2:
# subscribe to topic="x/y"
libcoap/examples/coap-client -m get -s 5 "coap://127.0.0.1/mqtt/x%2Fy?c=client3&u=tom&p=secret" > case2_output1.txt &
# subscribe to topic="+/z"
libcoap/examples/coap-client -m get -s 5 "coap://127.0.0.1/mqtt/%2B%2Fz?c=client4&u=mike&p=pw12" > case2_output2.txt &
sleep 1
# publish to topic="x/y"
libcoap/examples/coap-client -m put -e big9wolf "coap://127.0.0.1/mqtt/x%2Fy?c=client5&u=sun&p=pw3"
# publish to topic="p/z"
libcoap/examples/coap-client -m put -e black2ant "coap://127.0.0.1/mqtt/p%2Fz?c=client5&u=sun&p=pw3"
sleep 6
python check_result.py case2 case2_output1.txt==big9wolf case2_output1.txt!=black2ant case2_output2.txt!=big9wolf case2_output2.txt==black2ant
case3:
libcoap/examples/coap-client -m get -T tk12 -s 5 "coap://127.0.0.1/mqtt/a%2Fb?c=client3&u=tom&p=secret" > case3_output1.txt &
libcoap/examples/coap-client -m get -T tk34 -s 5 "coap://127.0.0.1/mqtt/c%2Fd?c=client3&u=tom&p=secret" > case3_output2.txt &
sleep 1
libcoap/examples/coap-client -m put -e big9wolf "coap://127.0.0.1/mqtt/c%2Fd?c=client5&u=sun&p=pw3"
libcoap/examples/coap-client -m put -e black2ant "coap://127.0.0.1/mqtt/a%2Fb?c=client5&u=sun&p=pw3"
sleep 6
python check_result.py case3 case3_output1.txt==black2ant case3_output2.txt==big9wolf case3_output2.txt!=black2ant
case4:
# reload emqx_coap, does it work as expected?
sleep 1
emqx-rel/_rel/emqx/bin/emqx_ctl plugins unload emqx_coap
sleep 1
emqx-rel/_rel/emqx/bin/emqx_ctl plugins load emqx_coap
sleep 1
libcoap/examples/coap-client -m get -s 5 "coap://127.0.0.1/mqtt/topic1?c=client1&u=tom&p=secret" > case4_output.txt &
sleep 1
libcoap/examples/coap-client -m put -e w6J3G45 "coap://127.0.0.1/mqtt/topic1?c=client2&u=mike&p=pw12"
sleep 6
python check_result.py case4 case4_output.txt==w6J3G45
$(RELX_CONF):
git clone https://github.com/emqx/emqx-rel.git
git clone https://github.com/emqx/emq-coap.git
@echo "update emq-coap with this development code"
mv emq-coap emqx_coap
-rm -rf emqx_coap/etc
-rm -rf emqx_coap/include
-rm -rf emqx_coap/priv
-rm -rf emqx_coap/src
-rm -rf emqx_coap/Makefile
cp -rf ../etc emqx_coap/
cp -rf ../include emqx_coap/
cp -rf ../priv emqx_coap/
cp -rf ../src emqx_coap/
cp -rf ../Makefile emqx_coap/Makefile
-mkdir emqx-rel/deps
mv emqx_coap emqx-rel/deps/
@echo "start building ..."
make -C emqx-rel -f Makefile
coap: $(LIBCOAP_GIT)
@echo "make coap"
$(LIBCOAP_GIT):
git clone -b v4.1.2 http://github.com/obgm/libcoap
cd libcoap && ./autogen.sh && ./configure --enable-documentation=no --enable-tests=no
make -C libcoap -f Makefile
r: rebuild_emq
# r short for rebuild_emq
@echo " rebuild complete "
rebuild_emq:
-emqx-rel/_rel/emqx/bin/emqx stop
-rm -rf emqx-rel/deps/emqx_coap/etc
-rm -rf emqx-rel/deps/emqx_coap/include
-rm -rf emqx-rel/deps/emqx_coap/priv
-rm -rf emqx-rel/deps/emqx_coap/src
-rm -rf emqx-rel/deps/emqx_coap/Makefile
cp -rf ../etc emqx-rel/deps/emqx_coap/
cp -rf ../include emqx-rel/deps/emqx_coap/
cp -rf ../priv emqx-rel/deps/emqx_coap/
cp -rf ../src emqx-rel/deps/emqx_coap/
cp -rf ../Makefile emqx-rel/deps/emqx_coap/Makefile
make -C emqx-rel -f Makefile
clean: clean_result
-rm -f client/*.exe
-rm -f client/*.o
-rm -rf emqx-rel
-rm -rf libcoap
lazy: clean_result start_broker case2 stop_broker
# custom your command here
@echo "you are so lazy"