FAIL_IF_EXIT
FAIL_IF_EXIT(pthread_rwlock_unlock(rw_lock));
FAIL_IF_EXIT(current_dscr != expected_dscr);
FAIL_IF_EXIT(current_dscr_usr != expected_dscr);
FAIL_IF_EXIT(pthread_rwlock_wrlock(rw_lock));
FAIL_IF_EXIT(pthread_rwlock_unlock(rw_lock));
FAIL_IF_EXIT(sem_wait(writer_sem));
FAIL_IF_EXIT(sem_post(reader_sem));
FAIL_IF_EXIT(err != 0 && err != PTHREAD_BARRIER_SERIAL_THREAD);
FAIL_IF_EXIT(pthread_rwlock_rdlock(rw_lock));
FAIL_IF_EXIT(err != 0 && err != PTHREAD_BARRIER_SERIAL_THREAD);
FAIL_IF_EXIT(get_dscr() != expected_dscr);
FAIL_IF_EXIT(get_dscr_usr() != expected_dscr);
FAIL_IF_EXIT(get_dscr() != expected_dscr);
FAIL_IF_EXIT(get_dscr_usr() != expected_dscr);
FAIL_IF_EXIT(sem_wait(prev));
FAIL_IF_EXIT(expected_dscr != get_dscr());
FAIL_IF_EXIT(expected_dscr != get_dscr_usr());
FAIL_IF_EXIT(sem_post(next));
FAIL_IF_EXIT(!base);
FAIL_IF_EXIT(perm_pkey < 0);
FAIL_IF_EXIT(sys_pkey_mprotect(base, size, PROT_RWX,
FAIL_IF_EXIT(!base);
FAIL_IF_EXIT(rest_pkey < 0);
FAIL_IF_EXIT(sys_pkey_mprotect(base, size, PROT_RWX,
FAIL_IF_EXIT(*fault_addr != PPC_INST_NOP &&
FAIL_IF_EXIT(*fault_addr != PPC_INST_BLR);
FAIL_IF_EXIT(1);