This commit is contained in:
Aria 2025-03-21 22:23:30 +11:00
commit 9c94d113d3
Signed by untrusted user who does not match committer: aria
GPG key ID: 19AB7AA462B8AB3B
10260 changed files with 1237388 additions and 0 deletions

View file

@ -0,0 +1,36 @@
#include "StarThread.hpp"
#include "gtest/gtest.h"
using namespace Star;
TEST(Thread, InvokeErrors) {
struct TestException {};
auto function = Thread::invoke("test", []() {
throw TestException();
});
EXPECT_THROW(function.finish(), TestException);
}
TEST(Thread, InvokeReturn) {
auto functionRet = Thread::invoke("test", []() {
return String("TestValue");
});
EXPECT_EQ(functionRet.finish(), String("TestValue"));
EXPECT_THROW(functionRet.finish(), InvalidMaybeAccessException);
}
TEST(Thread, ReadersWriterMutex) {
ReadersWriterMutex mutex;
ReadLocker rl1(mutex);
ReadLocker rl2(mutex);
WriteLocker wl(mutex, false);
EXPECT_FALSE(wl.tryLock());
rl1.unlock();
EXPECT_FALSE(wl.tryLock());
rl2.unlock();
EXPECT_TRUE(wl.tryLock());
}