2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-09-02 07:15:31 +00:00

zdtm/static/sem: Use "union semun" instead of int

Use "union semun" for semctl() to make testcase also work on s390x.

Signed-off-by: Alice Frosi <alice@linux.vnet.ibm.com>
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
This commit is contained in:
Alice Frosi
2017-06-30 20:31:50 +02:00
committed by Pavel Emelyanov
parent a01d879b62
commit adc47efdd2

View File

@@ -110,7 +110,13 @@ int main(int argc, char **argv)
{ {
int id, key; int id, key;
int i; int i;
int val[NSEMS]; /* See man semctl */
union semun {
int val;
struct semid_ds *buf;
unsigned short *array;
struct seminfo *__buf;
} val[NSEMS];
int ret, fail_count = 0; int ret, fail_count = 0;
test_init(argc, argv); test_init(argc, argv);
@@ -129,7 +135,7 @@ int main(int argc, char **argv)
} }
for (i = 0; i < NSEMS; i++) { for (i = 0; i < NSEMS; i++) {
val[i] = lrand48() & 0x7; val[i].val = lrand48() & 0x7;
if (semctl(id, i, SETVAL, val[i]) == -1) { if (semctl(id, i, SETVAL, val[i]) == -1) {
fail_count++; fail_count++;
@@ -142,7 +148,7 @@ int main(int argc, char **argv)
test_waitsig(); test_waitsig();
for (i = 0; i < NSEMS; i++) { for (i = 0; i < NSEMS; i++) {
ret = check_sem_by_id(id, i, val[i]); ret = check_sem_by_id(id, i, val[i].val);
if (ret < 0) { if (ret < 0) {
fail_count++; fail_count++;
fail("Check sem %d by id failed", i); fail("Check sem %d by id failed", i);
@@ -155,14 +161,14 @@ int main(int argc, char **argv)
goto out_destroy; goto out_destroy;
} }
val[i] = semctl(id, 0, GETVAL); val[i].val = semctl(id, 0, GETVAL);
if (val[i] < 0) { if (val[i].val < 0) {
fail("Failed to get sem %d value", i); fail("Failed to get sem %d value", i);
fail_count++; fail_count++;
goto out_destroy; goto out_destroy;
} }
if (val[i] != 0) { if (val[i].val != 0) {
fail("Non-zero sem %d value: %d", i, val[i]); fail("Non-zero sem %d value: %d", i, val[i].val);
fail_count++; fail_count++;
} }
} }