1 #include <gtest/gtest.h>
4 #include "core/InformationManager.hxx"
5 #include "core/BasicBlock.hxx"
6 #include "core/Comment.hxx"
9 extern char * TEST_DATA_DIRECTORY
;
11 TEST(CommentTest
, deserializeValidInstance
) {
12 InformationManager manager
;
13 QDir
directory(QString("%1/%2").arg(TEST_DATA_DIRECTORY
,"/core/Comment/valid/"));
16 directory
.setNameFilters(filters
);
18 for (auto fileinfo
: directory
.entryInfoList()) {
19 if (false == fileinfo
.isFile())
22 QFile
file(fileinfo
.absoluteFilePath());
23 file
.open(QFile::ReadOnly
| QFile::Text
);
24 QXmlStreamReader
reader(&file
);
25 reader
.readNextStartElement();
27 Comment
* c
= Comment::deserialize(reader
, &manager
);
28 ASSERT_NE((void*)NULL
, (void*)c
);
29 EXPECT_EQ(fileinfo
.baseName().toULongLong(NULL
, 16), c
->getAddress());
33 TEST(CommentTest
, deserializeInvalidInstance
) {
34 InformationManager manager
;
35 QDir
directory(QString("%1/%2").arg(TEST_DATA_DIRECTORY
,"/core/Comment/invalid/"));
38 directory
.setNameFilters(filters
);
40 for (auto fileinfo
: directory
.entryInfoList()) {
41 if (false == fileinfo
.isFile())
44 QFile
file(fileinfo
.absoluteFilePath());
45 file
.open(QFile::ReadOnly
| QFile::Text
);
46 QXmlStreamReader
reader(&file
);
47 reader
.readNextStartElement();
49 Comment
* c
= Comment::deserialize(reader
, &manager
);
50 ASSERT_EQ((void*)NULL
, (void*)c
);
54 TEST(CommentTest
, serializeThenDeserializeIsIdentity
) {
55 InformationManager manager
;
56 Comment
* c
= manager
.newGlobalComment(0x42234223);
58 for (QString text
: QStringList({"αβγδ", "<test>", "ä"})) {
59 c
->setText(text
.toStdString());
61 QTemporaryFile tmpfile
;
65 QXmlStreamWriter
writer(&tmpfile
);
71 QXmlStreamReader
reader(&tmpfile
);
72 reader
.readNextStartElement();
73 Comment
* d
= Comment::deserialize(reader
, &manager
);
74 ASSERT_NE((void*)NULL
, (void*)d
);
75 EXPECT_STREQ(c
->getText().c_str(), d
->getText().c_str());
76 EXPECT_EQ(0x42234223, d
->getAddress());