add test case

This commit is contained in:
mutouyun 2018-12-17 00:00:13 +08:00
parent 885abd0c21
commit 59a9df60c4
2 changed files with 23 additions and 3 deletions

View File

@ -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));
}

View File

@ -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();