Skip to content

Commit 53c2788

Browse files
Yifan ZhuSchrodingerZhu
authored andcommitted
fix tests
1 parent 10689de commit 53c2788

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

libc/test/integration/src/pthread/pthread_rwlock_test.cpp

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,11 @@ static void high_reader_count_test() {
112112
ASSERT_EQ(LIBC_NAMESPACE::pthread_rwlock_rdlock(&rwlock), EAGAIN);
113113
ASSERT_EQ(LIBC_NAMESPACE::pthread_rwlock_tryrdlock(&rwlock), EAGAIN);
114114
// allocate 4 reader slots.
115-
rwlock.__state -= 4 * 4;
115+
ASSERT_EQ(LIBC_NAMESPACE::pthread_rwlock_unlock(&rwlock), 0);
116+
ASSERT_EQ(LIBC_NAMESPACE::pthread_rwlock_unlock(&rwlock), 0);
117+
ASSERT_EQ(LIBC_NAMESPACE::pthread_rwlock_unlock(&rwlock), 0);
118+
ASSERT_EQ(LIBC_NAMESPACE::pthread_rwlock_unlock(&rwlock), 0);
119+
116120
pthread_t threads[20];
117121
for (auto &i : threads) {
118122
ASSERT_EQ(LIBC_NAMESPACE::pthread_create(
@@ -345,8 +349,9 @@ randomized_process_operation(SharedData &data,
345349
ASSERT_EQ(LIBC_NAMESPACE::pthread_create(
346350
&i, nullptr,
347351
[](void *arg) -> void * {
348-
randomized_thread_operation(
349-
reinterpret_cast<SharedData *>(arg));
352+
for (int i = 0; i < 5; ++i)
353+
randomized_thread_operation(
354+
reinterpret_cast<SharedData *>(arg));
350355
return nullptr;
351356
},
352357
&data),
@@ -359,7 +364,6 @@ randomized_process_operation(SharedData &data,
359364
while (finish_count.load() != expected_count) {
360365
LIBC_NAMESPACE::sleep_briefly();
361366
}
362-
ASSERT_EQ(LIBC_NAMESPACE::pthread_rwlock_destroy(&data.lock), 0);
363367
ASSERT_EQ(data.total_writer_count.load(), data.data);
364368
ASSERT_FALSE(data.writer_flag);
365369
ASSERT_EQ(data.reader_count, 0);
@@ -378,6 +382,7 @@ static void single_process_test(int preference) {
378382
ASSERT_EQ(LIBC_NAMESPACE::pthread_rwlock_init(&data.lock, nullptr), 0);
379383
LIBC_NAMESPACE::cpp::Atomic<int> finish_count{0};
380384
randomized_process_operation(data, finish_count, 1);
385+
ASSERT_EQ(LIBC_NAMESPACE::pthread_rwlock_destroy(&data.lock), 0);
381386
}
382387

383388
static void multiple_process_test(int preference) {
@@ -388,6 +393,11 @@ static void multiple_process_test(int preference) {
388393
PShared *shared_data = reinterpret_cast<PShared *>(
389394
LIBC_NAMESPACE::mmap(nullptr, sizeof(PShared), PROT_READ | PROT_WRITE,
390395
MAP_SHARED | MAP_ANONYMOUS, -1, 0));
396+
shared_data->data.data = 0;
397+
shared_data->data.reader_count = 0;
398+
shared_data->data.writer_flag = false;
399+
shared_data->data.total_writer_count.store(0);
400+
shared_data->finish_count.store(0);
391401
pthread_rwlockattr_t attr{};
392402
ASSERT_EQ(LIBC_NAMESPACE::pthread_rwlockattr_init(&attr), 0);
393403
ASSERT_EQ(LIBC_NAMESPACE::pthread_rwlockattr_setkind_np(&attr, preference),
@@ -406,6 +416,7 @@ static void multiple_process_test(int preference) {
406416
LIBC_NAMESPACE::waitpid(pid, &status, 0);
407417
ASSERT_EQ(status, 0);
408418
}
419+
ASSERT_EQ(LIBC_NAMESPACE::pthread_rwlock_destroy(&shared_data->data.lock), 0);
409420
LIBC_NAMESPACE::munmap(shared_data, sizeof(PShared));
410421
}
411422

0 commit comments

Comments
 (0)