#include <forb/syncobj.h>
#include <fosa.h>
#include <error.h>
+#include <wvtest.h>
forb_syncobj_t syncobj;
fosa_clock_get_time(FOSA_CLOCK_ABSOLUTE, &hello_time);
hello_time = fosa_abs_time_incr(hello_time, hello_interval);
- ret = forb_syncobj_timedwait(&syncobj, &hello_time);
+ WVPASSEQ(ret = forb_syncobj_timedwait(&syncobj, &hello_time), 0);
if (ret != 0) {
error(1, errno, "forb_syncobj_timedwait() error %d\n", ret);
}
fosa_clock_get_time(FOSA_CLOCK_ABSOLUTE, &now);
- if (fosa_abs_time_smaller_or_equal(hello_time, now)) {
+ if (WVFAIL(fosa_abs_time_smaller_or_equal(hello_time, now))) {
error(1, 0, "Should not wait longet than timeout\n");
}
return NULL;
}
-int main()
+WVTEST_MAIN("FORB's syncobj")
{
fosa_abs_time_t now, hello_time;
- fosa_rel_time_t hello_interval = fosa_msec_to_rel_time(1000);
+ fosa_rel_time_t hello_interval = fosa_msec_to_rel_time(100);
int ret;
- fosa_thread_id_t tid;
+ pthread_t tid;
- forb_syncobj_init(&syncobj, 0);
+ WVPASSEQ(forb_syncobj_init(&syncobj, 0), 0);
fosa_clock_get_time(FOSA_CLOCK_ABSOLUTE, &hello_time);
hello_time = fosa_abs_time_incr(hello_time, hello_interval);
ret = forb_syncobj_timedwait(&syncobj, &hello_time);
- if (ret != 0 && ret != FOSA_ETIMEDOUT) {
+ if (!WVPASS(ret == FOSA_ETIMEDOUT || ret == 0)) {
error(1, errno, "forb_syncobj_timedwait() error %d\n", ret);
}
fosa_clock_get_time(FOSA_CLOCK_ABSOLUTE, &now);
- if (fosa_abs_time_smaller_or_equal(now, hello_time)) {
+ if (WVFAIL(fosa_abs_time_smaller_or_equal(now, hello_time))) {
error(1, 0, "Wait less then timeout\n");
}
-
- fosa_thread_create(&tid, NULL, thread, NULL);
+ pthread_create(&tid, NULL, thread, NULL);
forb_syncobj_signal(&syncobj);
- return 0;
+ pthread_join(tid, NULL);
}