Update LYNQ test
Change-Id: I9e434803f0cce9f24048f2fbc5eed2d26fa33503
diff --git a/mbtk/test/liblynq_lib/lynq-qser-fota-demo.cpp b/mbtk/test/liblynq_lib/lynq-qser-fota-demo.cpp
new file mode 100755
index 0000000..de637ec
--- /dev/null
+++ b/mbtk/test/liblynq_lib/lynq-qser-fota-demo.cpp
@@ -0,0 +1,136 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <dlfcn.h>
+#include <stdint.h>
+#include <pthread.h>
+
+int (*lynq_get_upgrade_status)(void);
+int (*lynq_fota_set_addr_value)(char *value,int size);
+int (*lynq_fota_nrestart)(void);
+int (*lynq_rock_main)(int first_run);
+int (*lynq_read_process)(void);
+void *dlHandle_fota = NULL;
+
+void *thread_function_noreboot(void *arg)
+{
+
+ lynq_fota_nrestart();
+ return NULL;
+}
+
+void *thread_function_reboot(void *arg)
+{
+
+ lynq_rock_main(1);
+ return NULL;
+}
+
+
+int main(int argc,char *argv[])
+{
+ int ret = 0;
+ int reboot_flag;
+ char *value = argv[1];
+ printf("Enter main function\n");
+
+ const char *lynqLibPath_fota = "/lib/liblynq-fota.so";
+ dlHandle_fota = dlopen(lynqLibPath_fota, RTLD_NOW);
+ if (dlHandle_fota == NULL)
+ {
+ printf("dlopen dlHandle_fota failed: %s\n", dlerror());
+ return -1;
+ }
+
+ lynq_fota_set_addr_value = (int (*)(char *value,int size))dlsym(dlHandle_fota, "lynq_fota_set_addr_value");
+ if(lynq_fota_set_addr_value == NULL)
+ {
+ printf("lynq fota ser addr value is null\n");
+ return -1;
+ }
+
+ lynq_get_upgrade_status = (int (*)(void))dlsym(dlHandle_fota,"lynq_get_upgrade_status");
+ if(lynq_get_upgrade_status == NULL)
+ {
+ printf("lynq_get_upgrade_status is null\n");
+ return -1;
+ }
+ lynq_fota_nrestart = (int (*)())dlsym(dlHandle_fota,"lynq_fota_nrestart");
+ if(lynq_fota_nrestart == NULL)
+ {
+ printf("lynq_fota_nrestart is null\n");
+ return -1;
+ }
+ lynq_rock_main = (int (*)(int first_run))dlsym(dlHandle_fota,"lynq_rock_main");
+ if(lynq_rock_main == NULL)
+ {
+ printf("lynq_rock_main is null\n");
+ return -1;
+ }
+
+ lynq_read_process = (int (*)(void))dlsym(dlHandle_fota,"lynq_read_process");
+ if(lynq_read_process == NULL)
+ {
+ printf("lynq_read_process is null\n");
+ return -1;
+ }
+
+ ret = lynq_fota_set_addr_value(value,(int )strlen(value));
+ if(ret != 0)
+ {
+ printf("set upgrade package addr failed\n");
+ return -1;
+ }
+ while(1)
+ {
+ printf("Please chose action 0: upgrade done ,not reboot 1: upgrade done ,reboot 2:get upgrade status 3:read fota process \n");
+ scanf("%d",&reboot_flag);
+
+ switch(reboot_flag)
+ {
+ case 0:
+ {
+ pthread_t thread_id_noreboot;
+ int result = pthread_create(&thread_id_noreboot, NULL, thread_function_noreboot, NULL);
+ if (result != 0)
+ {
+ printf("pthread_create failed \n");
+ return -1;;
+ }
+ }
+ break;
+
+ case 1:
+ {
+ pthread_t thread_id_reboot;
+ int result = pthread_create(&thread_id_reboot, NULL, thread_function_reboot, NULL);
+ if (result != 0)
+ {
+ printf("pthread_create failed \n");
+ return -1;;
+ }
+ }
+ break;
+ case 2:
+ printf("Get fota upgrade status \n");
+ ret = lynq_get_upgrade_status();
+ printf("lynq_get_upgrade_status ret is %d\n",ret);
+ break;
+ case 3:
+ printf("get fota upgrade process\n");
+ ret = lynq_read_process();
+ printf("Now upgrade process is %d\n",ret);
+ break;
+ default:
+ printf("please input right flag 0 or 1 or 2 or 3\n");
+ break;
+
+ }
+
+ }
+ return 0;
+
+}
+