mirror of
https://github.com/falk-werner/webfuse-provider
synced 2026-03-02 04:09:18 +00:00
feat(webfuse): add multiclient support (#23)
* fixes verbosity option when set through command line * adds support for build type and allows to run gdb in container * adds missing toolchain headers to project * renames container macros * adds gdbserver * fixes verbosity option when set through command line * adds support for build type and allows to run gdb in container * adds missing toolchain headers to project * renames container macros * adds gdbserver * removes language settings, which contains alternating values * adds wrapper script to launch gdbserver * fix docker command in wrapper script * fixes run in dind setup * replaces docker's init through dump-init * moves filesystem to session * fixes verbosity option when set through command line * adds support for build type and allows to run gdb in container * renames container macros * adds gdbserver * fixes verbosity option when set through command line * adds support for build type and allows to run gdb in container * renames container macros * adds gdbserver * adds wrapper script to launch gdbserver * fix docker command in wrapper script * fixes run in dind setup * replaces docker's init through dump-init * moves filesystem to session * adds container_of * added dlist * allows multiple clients to connect * removes directory when session is closed * adds dependecy to uuid-dev * allow clients to register filesystems * updates documentation * moves mountpoint handling into filesystem: mountpoints are removed during session cleanup * adds filesystem name/id to request parameters * fixes security issue: add_filesystem did not check name * removes default link, if it is broken * recreates symlink "default", if filesystem is gone * updates documentation * fixes memory leak * makes authentication work .. again * updates provider to support changed protocol * removes execute right of hello.txt * fixes style issues * fixes javascript style issues * fixes flase positive from Flawfinder * fixes some javascript style issues * removes use of PATH_MAX * removes use of GNU extensions in container_of implementation * ignores findings of flawfinder * replaces dlist by slist * removes duplicate implementation of slist (message_queue)
This commit is contained in:
29
test/test_container_of.cc
Normal file
29
test/test_container_of.cc
Normal file
@@ -0,0 +1,29 @@
|
||||
#include <gtest/gtest.h>
|
||||
#include "webfuse/core/container_of.h"
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
struct MyStruct
|
||||
{
|
||||
int first;
|
||||
int second;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
TEST(ContainerOf, FirstMember)
|
||||
{
|
||||
MyStruct my_struct = {23, 42};
|
||||
|
||||
int * first = &my_struct.first;
|
||||
ASSERT_EQ(&my_struct, WF_CONTAINER_OF(first, MyStruct, first));
|
||||
}
|
||||
|
||||
TEST(ContainerOf, SecondMember)
|
||||
{
|
||||
MyStruct my_struct = {23, 42};
|
||||
|
||||
int * second = &my_struct.second;
|
||||
ASSERT_EQ(&my_struct, WF_CONTAINER_OF(second, MyStruct, second));
|
||||
}
|
||||
35
test/test_slist.cc
Normal file
35
test/test_slist.cc
Normal file
@@ -0,0 +1,35 @@
|
||||
#include <gtest/gtest.h>
|
||||
#include "webfuse/core/slist.h"
|
||||
|
||||
TEST(wf_slist_remove_after, RemoveFirst)
|
||||
{
|
||||
struct wf_slist list;
|
||||
struct wf_slist_item item[10];
|
||||
|
||||
wf_slist_init(&list);
|
||||
wf_slist_append(&list, &item[0]);
|
||||
|
||||
wf_slist_item * removed = wf_slist_remove_after(&list, NULL);
|
||||
ASSERT_TRUE(wf_slist_empty(&list));
|
||||
ASSERT_EQ(nullptr, list.first);
|
||||
ASSERT_EQ(nullptr, list.last);
|
||||
ASSERT_EQ(&item[0], removed);
|
||||
}
|
||||
|
||||
TEST(wf_slist_remove_after, RemoveLast)
|
||||
{
|
||||
struct wf_slist list;
|
||||
struct wf_slist_item item[10];
|
||||
|
||||
wf_slist_init(&list);
|
||||
wf_slist_append(&list, &item[0]);
|
||||
wf_slist_append(&list, &item[1]);
|
||||
wf_slist_append(&list, &item[2]);
|
||||
|
||||
wf_slist_item * removed = wf_slist_remove_after(&list, &item[1]);
|
||||
ASSERT_FALSE(wf_slist_empty(&list));
|
||||
ASSERT_EQ(&item[0], list.first);
|
||||
ASSERT_EQ(&item[1], list.last);
|
||||
ASSERT_EQ(nullptr, item[1].next);
|
||||
ASSERT_EQ(&item[2], removed);
|
||||
}
|
||||
18
test/test_string.cc
Normal file
18
test/test_string.cc
Normal file
@@ -0,0 +1,18 @@
|
||||
#include <gtest/gtest.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "webfuse/core/string.h"
|
||||
|
||||
TEST(wf_string_create, Default)
|
||||
{
|
||||
char * value = wf_create_string("test %s/%d", "hello", 42);
|
||||
ASSERT_STREQ("test hello/42", value);
|
||||
free(value);
|
||||
}
|
||||
|
||||
TEST(wf_string_create, EmptyString)
|
||||
{
|
||||
char * value = wf_create_string("");
|
||||
ASSERT_STREQ("", value);
|
||||
free(value);
|
||||
}
|
||||
Reference in New Issue
Block a user