aboutsummaryrefslogtreecommitdiff
path: root/tests/ubi-tests
diff options
context:
space:
mode:
authorMartin Lund <malu@gomspace.com>2018-09-05 15:47:38 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2018-09-08 18:48:46 +0200
commit04d76bcda9e1a948070927e6c5357d9760c32367 (patch)
tree9bfb48394c83058225ac618b17101012298e515a /tests/ubi-tests
parent6922b87e1b5190fce4db6ecc5b416672a8a4d6ba (diff)
ubi-tests: io_paral: Fix error handling of update_volume()
The io_paral test returns success even in case it throws e.g. the following error message: [io_paral] update_volume():125: written and read data are different This patch fixes so that the io_paral application returns a non-zero error code when an error is detected. Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'tests/ubi-tests')
-rw-r--r--tests/ubi-tests/io_paral.c28
1 files changed, 18 insertions, 10 deletions
diff --git a/tests/ubi-tests/io_paral.c b/tests/ubi-tests/io_paral.c
index b2b462e..6c77ec1 100644
--- a/tests/ubi-tests/io_paral.c
+++ b/tests/ubi-tests/io_paral.c
@@ -24,6 +24,7 @@
#include <errno.h>
#include <string.h>
#include <stdlib.h>
+#include <stdint.h>
#include <unistd.h>
#include <pthread.h>
#include <sys/types.h>
@@ -149,22 +150,22 @@ static void *update_thread(void *ptr)
if (ret) {
failed("ubi_rmvol");
errorm("cannot remove volume %d", vol_id);
- return NULL;
+ return (void *) -1;
}
ret = ubi_mkvol(libubi, node, &reqests[vol_id]);
if (ret) {
failed("ubi_mkvol");
errorm("cannot create volume %d", vol_id);
- return NULL;
+ return (void *) -1;
}
}
ret = update_volume(vol_id, bytes);
- if (ret)
- return NULL;
+ if (ret != 0)
+ return (void *) -1;
}
- return NULL;
+ return (void *) 0;
}
static void *write_thread(void *ptr)
@@ -179,7 +180,7 @@ static void *write_thread(void *ptr)
if (fd == -1) {
failed("open");
errorm("cannot open \"%s\"\n", vol_node);
- return NULL;
+ return (void *) -1;
}
ret = ubi_set_property(fd, UBI_VOL_PROP_DIRECT_WRITE, 1);
@@ -228,12 +229,13 @@ static void *write_thread(void *ptr)
}
close(fd);
- return NULL;
+ return (void *) 0;
}
int main(int argc, char * const argv[])
{
- int i, ret;
+ int i, ret, error=false;
+ intptr_t thread_ret;
pthread_t threads[THREADS_NUM];
if (initial_check(argc, argv))
@@ -301,8 +303,14 @@ int main(int argc, char * const argv[])
}
}
- for (i = 0; i < THREADS_NUM; i++)
- pthread_join(threads[i], NULL);
+ for (i = 0; i < THREADS_NUM; i++) {
+ pthread_join(threads[i], (void **) &thread_ret);
+ if (thread_ret != 0)
+ error = true;
+ }
+
+ if (error)
+ goto remove;
for (i = 0; i <= THREADS_NUM; i++) {
if (ubi_rmvol(libubi, node, i)) {