mirror of
https://github.com/mutouyun/cpp-ipc.git
synced 2025-12-06 16:56:45 +08:00
add test case
This commit is contained in:
parent
885abd0c21
commit
59a9df60c4
@ -76,15 +76,15 @@ key_t create(destructor_t destructor) {
|
||||
key_t key = static_cast<key_t>(::TlsAlloc());
|
||||
if (key == TLS_OUT_OF_INDEXES) return invalid_value;
|
||||
auto rec = tls_data::records();
|
||||
if (!rec) rec = tls_data::records(new tls_data::map_t);
|
||||
if (!rec) return key;
|
||||
if (rec == nullptr) rec = tls_data::records(new tls_data::map_t);
|
||||
if (rec == nullptr) return key;
|
||||
rec->emplace(key, tls_data{ key, destructor });
|
||||
return key;
|
||||
}
|
||||
|
||||
void release(key_t key) {
|
||||
auto rec = tls_data::records();
|
||||
if (!rec) return;
|
||||
if (rec == nullptr) return;
|
||||
rec->erase(key);
|
||||
::TlsFree(static_cast<DWORD>(key));
|
||||
}
|
||||
|
||||
@ -188,12 +188,32 @@ void Unit::test_channel() {
|
||||
return cc;
|
||||
};
|
||||
|
||||
std::vector<char const *> const datas = {
|
||||
"hello!",
|
||||
"foo",
|
||||
"bar",
|
||||
"ISO/IEC",
|
||||
"14882:2011",
|
||||
"ISO/IEC 14882:2017 Information technology - Programming languages - C++",
|
||||
"ISO/IEC 14882:2020",
|
||||
"Modern C++ Design: Generic Programming and Design Patterns Applied"
|
||||
};
|
||||
|
||||
std::thread t1 {[&] {
|
||||
auto cc = wait_for_connected(1);
|
||||
for (std::size_t i = 0; i < datas.size(); ++i) {
|
||||
auto dd = cc.recv();
|
||||
QCOMPARE(dd.size(), std::strlen(datas[i]) + 1);
|
||||
QVERIFY(std::memcmp(dd.data(), datas[i], dd.size()) == 0);
|
||||
}
|
||||
}};
|
||||
|
||||
std::thread t2 {[&] {
|
||||
auto cc = wait_for_connected(2);
|
||||
for (std::size_t i = 0; i < datas.size(); ++i) {
|
||||
std::cout << "sending: " << datas[i] << std::endl;
|
||||
cc.send(datas[i]);
|
||||
}
|
||||
}};
|
||||
|
||||
t1.join();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user