Skip to content

Commit 70eafcf

Browse files
committed
Add StyxSerializer C++ tests
1 parent 2210751 commit 70eafcf

14 files changed

Lines changed: 246 additions & 22 deletions

File tree

.vscode/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,8 @@
8484
"regex": "cpp",
8585
"stack": "cpp",
8686
"__node_handle": "cpp",
87-
"__bit_reference": "cpp"
87+
"__bit_reference": "cpp",
88+
"__config": "cpp"
8889
},
8990
"cmake.sourceDirectory": "${workspaceFolder}/linux/"
9091
}

java/v2styx-lib/src/main/java/com/v2soft/styxlib/l5/serialization/IDataSerializer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
public interface IDataSerializer {
99
int BASE_BINARY_SIZE = 7;
10-
10+
int getMessageSize(StyxMessage message);
1111
void serialize(StyxMessage message, IBufferWriter output) throws StyxException;
1212
void serializeStat(StyxStat stat, IBufferWriter output) throws StyxException;
1313
int getStatSerializedSize(StyxStat stat);

java/v2styx-lib/src/main/java/com/v2soft/styxlib/l5/serialization/impl/StyxSerializerImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
import java.util.List;
2121

2222
public class StyxSerializerImpl implements IDataSerializer {
23-
protected int getMessageSize(StyxMessage message) {
23+
@Override
24+
public int getMessageSize(StyxMessage message) {
2425
var size = IDataSerializer.BASE_BINARY_SIZE;
2526
if (message instanceof StyxTMessageFID) {
2627
size += 4;

native/V2StyxLib/modules/l5/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ if(BUILD_MODULE_L5)
55
src/BufferWriterImpl.cpp
66
src/BufferReaderImpl.cpp
77
src/StyxMessage.cpp
8+
src/StyxSerializerImpl.cpp
9+
src/StyxQID.cpp
10+
src/StyxStat.cpp
811
)
912
target_include_directories(module_l5 PUBLIC
1013
$<INSTALL_INTERFACE:include>
@@ -14,6 +17,7 @@ if(BUILD_MODULE_L5)
1417
add_executable(module_l5_tests
1518
test/test_BufferWriterImpl.cpp
1619
test/test_BufferReaderImpl.cpp
20+
test/test_StyxSerializerImpl.cpp
1721
)
1822
target_include_directories(module_l5_tests PRIVATE ./include/)
1923
target_link_libraries(module_l5_tests PRIVATE Catch2::Catch2WithMain module_l5)

native/V2StyxLib/modules/l5/include/serialization/BufferReaderImpl.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#pragma once
22
#include "serialization/IBufferReader.h"
33

4-
class BufferReaderImpl : public IBufferReader {
4+
class BufferReaderImpl : public styxlib::serialization::IBufferReader {
55
private:
66
const StyxBuffer buffer;
77
Styx::Size position;

native/V2StyxLib/modules/l5/include/serialization/IBufferReader.h

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@
22
#include <cstdint>
33
#include "data.h"
44

5-
class IBufferReader {
6-
public:
7-
virtual ~IBufferReader() = default;
8-
virtual uint8_t readUInt8() = 0;
9-
virtual uint16_t readUInt16() = 0;
10-
virtual uint32_t readUInt32() = 0;
11-
virtual uint64_t readUInt64() = 0;
12-
virtual StyxString readUTFString() = 0;
13-
virtual Styx::Size read(uint8_t* data, Styx::Size count) = 0;
14-
};
5+
namespace styxlib::serialization {
6+
7+
class IBufferReader {
8+
public:
9+
virtual ~IBufferReader() = default;
10+
virtual uint8_t readUInt8() = 0;
11+
virtual uint16_t readUInt16() = 0;
12+
virtual uint32_t readUInt32() = 0;
13+
virtual uint64_t readUInt64() = 0;
14+
virtual StyxString readUTFString() = 0;
15+
virtual Styx::Size read(uint8_t* data, Styx::Size count) = 0;
16+
};
17+
}

native/V2StyxLib/modules/l5/include/serialization/IDataSerializer.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
#pragma once
2-
#include "l5/messages/StyxMessage.h"
3-
#include "l5/structs/StyxStat.h"
4-
#include "l5/serialization/IBufferWritter.h"
2+
#include "messages/StyxMessage.h"
3+
#include "structs/StyxStat.h"
4+
#include "serialization/IBufferWriter.h"
55

66
class IDataSerializer {
77
public:
8-
virtual void serialize(const StyxMessage &message, IBufferWriter *output) = 0;
8+
virtual void serialize(const styxlib::messages::StyxMessage &message,
9+
IBufferWriter *output) = 0;
910
virtual void serializeStat(const StyxStat &stat, IBufferWriter *output) = 0;
1011
virtual int getStatSerializedSize(const StyxStat &stat) = 0;
1112
virtual int getQidSize() = 0;
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#pragma once
2+
3+
#include "serialization/IDataSerializer.h"
4+
5+
class StyxSerializerImpl : public IDataSerializer {
6+
public:
7+
StyxSerializerImpl() = default;
8+
~StyxSerializerImpl() = default;
9+
void serialize(const styxlib::messages::StyxMessage &message,
10+
IBufferWriter *output) override;
11+
void serializeStat(const StyxStat &stat, IBufferWriter *output) override;
12+
int getStatSerializedSize(const StyxStat &stat) override;
13+
int getQidSize() override;
14+
void serializeQid(const StyxQID &qid, IBufferWriter *output) override;
15+
};

native/V2StyxLib/modules/l5/include/structs/StyxQID.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,12 @@
33
#include <cstdint>
44

55
struct StyxQID {
6-
public:
76
uint8_t type;
87
uint32_t version;
98
uint64_t path;
10-
};
9+
10+
constexpr StyxQID(uint8_t t, uint32_t v, uint64_t p)
11+
: type(t), version(v), path(p) {}
12+
13+
const static StyxQID EMPTY;
14+
};

native/V2StyxLib/modules/l5/include/structs/StyxStat.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#pragma once
2-
#include "l5/structs/StyxQID.h"
3-
#include "l5/data.h"
2+
#include "structs/StyxQID.h"
3+
#include "data.h"
44

55
struct StyxStat {
66
int type; //for kernel use
@@ -14,4 +14,6 @@ struct StyxStat {
1414
StyxString userName; //owner name
1515
StyxString groupName; //group name
1616
StyxString modificationUser; //name of the user who last modified the file
17+
18+
const static StyxStat EMPTY;
1719
};

0 commit comments

Comments
 (0)