---
 testsuite/dhcpcd01/test_main.c | 24 +++++++++++++++++++++---
 testsuite/dhcpcd02/test_main.c | 19 +++++++++++++++++--
 2 files changed, 38 insertions(+), 5 deletions(-)

diff --git a/testsuite/dhcpcd01/test_main.c b/testsuite/dhcpcd01/test_main.c
index 358b4ac8..f04c3270 100644
--- a/testsuite/dhcpcd01/test_main.c
+++ b/testsuite/dhcpcd01/test_main.c
@@ -34,6 +34,7 @@
 
 #include <rtems.h>
 #include <rtems/dhcpcd.h>
+#include <fcntl.h>
 
 #define TEST_NAME "LIBBSD DHCPCD 1"
 
@@ -42,11 +43,17 @@ dhcpcd_hook_handler(rtems_dhcpcd_hook *hook, char *const 
*env)
 {
 
        (void)hook;
+       int fd;
+
+       fd = open("/var/hook_out", O_CREAT | O_WRONLY,
+               S_IRWXU | S_IRWXG | S_IRWXO);
 
        while (*env != NULL) {
-               printf("%s\n", *env);
+               dprintf(fd, "%s\n", *env);
                ++env;
        }
+
+       close(fd);
 }
 
 static rtems_dhcpcd_hook dhcpcd_hook = {
@@ -57,11 +64,22 @@ static rtems_dhcpcd_hook dhcpcd_hook = {
 static void
 test_main(void)
 {
+       int fd;
 
+       // Add hook
        rtems_dhcpcd_add_hook(&dhcpcd_hook);
 
-       rtems_task_delete(RTEMS_SELF);
-       assert(0);
+       // Verify whether an output file is created by the hook
+       while(true)
+       {
+               fd = open("/var/hook_out", O_RDONLY);
+               if (fd >= 0)
+               {
+                       close(fd);
+                       exit(0);
+               }
+               rtems_task_wake_after(RTEMS_MILLISECONDS_TO_TICKS(1000));
+       }
 }
 
 #define DEFAULT_NETWORK_DHCPCD_ENABLE
diff --git a/testsuite/dhcpcd02/test_main.c b/testsuite/dhcpcd02/test_main.c
index 611c12b1..d5a6900f 100644
--- a/testsuite/dhcpcd02/test_main.c
+++ b/testsuite/dhcpcd02/test_main.c
@@ -32,14 +32,29 @@
 #include <assert.h>
 
 #include <rtems.h>
+#include <fcntl.h>
+#include <glob.h>
 
 #define TEST_NAME "LIBBSD DHCPCD 2"
 
 static void
 test_main(void)
 {
-       rtems_task_delete(RTEMS_SELF);
-       assert(0);
+       int fd;
+       glob_t globbuf;
+
+       // Verify whether the dhcpcd creates a file with the lease
+       while(true)
+       {
+               glob("/var/db/dhcpcd-*.lease", 0, NULL, &globbuf);
+               fd = open(globbuf.gl_pathv[0], O_RDONLY);
+               if (fd >= 0)
+               {
+                       close(fd);
+                       exit(0);
+               }
+               rtems_task_wake_after(RTEMS_MILLISECONDS_TO_TICKS(1000));
+       }
 }
 
 #define DEFAULT_NETWORK_DHCPCD_ENABLE
-- 
2.12.3

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to