11#include <config-kwin.h>
27 void testSealedRamFile();
30static const QByteArray s_testByteArray = QByteArrayLiteral(
"Test Data \0\1\2\3");
31static const char s_writeTestArray[] =
"test";
33void TestUtils::testRamFile()
35 KWin::RamFile file(
"test", s_testByteArray.constData(), s_testByteArray.size());
36 QVERIFY(file.isValid());
37 QCOMPARE(file.size(), s_testByteArray.size());
39 QVERIFY(file.fd() != -1);
42 int num = read(file.fd(), buf,
sizeof buf);
43 QCOMPARE(num, file.size());
45 QCOMPARE(qstrcmp(s_testByteArray.constData(), buf), 0);
48void TestUtils::testSealedRamFile()
52 QVERIFY(file.isValid());
56 auto written = write(file.fd(), s_writeTestArray, strlen(s_writeTestArray));
57 QCOMPARE(written, -1);
60 void *data = mmap(
nullptr, file.size(), PROT_WRITE, MAP_SHARED, file.fd(), 0);
61 QCOMPARE(data, MAP_FAILED);
63 data = mmap(
nullptr, file.size(), PROT_WRITE, MAP_PRIVATE, file.fd(), 0);
64 QVERIFY(data != MAP_FAILED);
66 QSKIP(
"Sealing requires memfd suport.");
71#include "test_utils.moc"
Creates a file in memory.
@ SealWrite
Seal the file descriptor for writing.
QTEST_MAIN(OnScreenNotificationTest)