Page:
Getting Started
No results
1
Getting Started
sha512sum edited this page 2024-11-07 15:22:25 +00:00
Table of Contents
Table of Content
How to build
Larra dev environment provides a dev container environment with all required tools, libraries and configured (locally hosted) ejabberd server.
Build steps:
- Install docker, docker-compose and VS Code and open a project in Dev Container
- Build project using Cmake
- Using VS Code Task: "Build Debug GCC"
- Manually
mkdir -p build && cd build cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_EXAMPLES=ON -DENABLE_TESTS=ON .. && cmake --build . --parallel `nproc`
How to test
Unit tests
- Build project with -DENABLE_TESTS=ON to enable GTests
- Launch tests
./build/larra_xmpp_tests
Module tests
- Launch ejabber server by opening a project in a Dev Container environment or start it manually
- Launch client
/workspaces/larra/build/examples/output/connect
Make sure that larra client with your change is able to pass all tests without errors. For now it supports only Plain Authentication check.
Successful Plain Authentication logs:
[info] [connect.cpp] Connecting client...
[info] [printer_stream.hpp] Writing data to stream: <?xml version="1.0"?><stream:stream xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" from="test1@localhost" to="localhost" version="1.0" xml:lang="en">
[info] [printer_stream.hpp] Data writing completed: 172
[info] [printer_stream.hpp] Reading data from stream:
[info] [printer_stream.hpp] Readed data: <?xml version='1.0'?><stream:stream id='3964734841065883241' version='1.0' xml:lang='en' xmlns:stream='http://etherx.jabber.org/streams' to='test1@localhost' from='localhost' xmlns='jabber:client'>
[info] [printer_stream.hpp] Reading data from stream:
[info] [printer_stream.hpp] Readed data: <stream:features><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>PLAIN</mechanism></mechanisms><register xmlns='http://jabber.org/features/iq-register'/></stream:features>
[info] [printer_stream.hpp] Writing data to stream: <auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="PLAIN">AHRlc3QxAHRlc3Qx</auth>
[info] [printer_stream.hpp] Data writing completed: 88
[info] [printer_stream.hpp] Reading data from stream:
[info] [printer_stream.hpp] Readed data: <success xmlns='urn:ietf:params:xml:ns:xmpp-sasl'/>
[info] [connect.cpp] Done connecting client!