mirror of
https://git.rwth-aachen.de/acs/public/villas/node/
synced 2025-03-09 00:00:00 +01:00
cosmetic changes
This commit is contained in:
parent
4c80f8cded
commit
0830132a83
7 changed files with 114 additions and 32 deletions
|
@ -38,7 +38,7 @@ struct node_type {
|
|||
* @retval 0 Success. Everything went well.
|
||||
* @retval <0 Error. Something went wrong.
|
||||
*/
|
||||
int (*init)(int argc, char * argv[], config_setting_t *cfg);
|
||||
int (*init)(int argc, char *argv[], config_setting_t *cfg);
|
||||
|
||||
/** Global de-initialization per node type.
|
||||
*
|
||||
|
|
|
@ -41,7 +41,7 @@ struct fpga {
|
|||
};
|
||||
|
||||
/** @see node_vtable::init */
|
||||
int fpga_init(int argc, char * argv[], config_setting_t *cfg);
|
||||
int fpga_init(int argc, char *argv[], config_setting_t *cfg);
|
||||
|
||||
/** @see node_vtable::deinit */
|
||||
int fpga_deinit();
|
||||
|
|
|
@ -62,7 +62,7 @@ struct websocket_connection {
|
|||
int websocket_protocol_cb(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len);
|
||||
|
||||
/** @see node_vtable::init */
|
||||
int websocket_init(int argc, char * argv[], config_setting_t *cfg);
|
||||
int websocket_init(int argc, char *argv[], config_setting_t *cfg);
|
||||
|
||||
/** @see node_vtable::deinit */
|
||||
int websocket_deinit();
|
||||
|
|
|
@ -57,7 +57,7 @@ int fpga_parse_cards(config_setting_t *cfg)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int fpga_init(int argc, char * argv[], config_setting_t *cfg)
|
||||
int fpga_init(int argc, char *argv[], config_setting_t *cfg)
|
||||
{
|
||||
int ret;
|
||||
|
||||
|
|
|
@ -36,10 +36,10 @@ static struct plugin p;
|
|||
/* Private static storage */
|
||||
struct list interfaces;
|
||||
|
||||
int socket_init(int argc, char * argv[], config_setting_t *cfg)
|
||||
int socket_init(int argc, char *argv[], config_setting_t *cfg)
|
||||
{
|
||||
if (getuid() != 0)
|
||||
error("The 'socket' node-type requires superuser privileges!");
|
||||
error("The 'socket' node-type requires super-user privileges!");
|
||||
|
||||
nl_init(); /* Fill link cache */
|
||||
list_init(&interfaces);
|
||||
|
|
|
@ -12,26 +12,29 @@
|
|||
|
||||
#include <errno.h>
|
||||
|
||||
/** This URI points to a Sciebo share which contains some test files.
|
||||
* The Sciebo share is read/write accessible via WebDAV. */
|
||||
#define BASE_URI "https://1Nrd46fZX8HbggT:badpass@rwth-aachen.sciebo.de/public.php/webdav/node/tests"
|
||||
|
||||
#define TEST_DATA_DOWNLOAD "ook4iekohC2Teegoghu6ayoo1OThooregheebaet8Zod1angah0che7quai4ID7A"
|
||||
#define TEST_DATA_UPLOAD "jaeke4quei3oongeebuchahz9aabahkie8oor3Gaejem1AhSeph5Ahch9ohz3eeh"
|
||||
#define TEST_DATA_APPEND1 "xa5gieTohlei9iu1uVaePae6Iboh3eeheeme5iejue5sheshae4uzisha9Faesei"
|
||||
#define TEST_DATA_APPEND2 "bitheeRae7igee2miepahJaefoGad1Ooxeif0Mooch4eojoumueYahn4ohc9poo2"
|
||||
|
||||
Test(advio, download)
|
||||
{
|
||||
AFILE *af;
|
||||
size_t len;
|
||||
int ret;
|
||||
char buffer[1024];
|
||||
|
||||
const char *url = "http://www.textfiles.com/100/angela.art";
|
||||
size_t len;
|
||||
char buffer[64];
|
||||
|
||||
af = afopen(url, "r", 0);
|
||||
af = afopen(BASE_URI "/download" , "r", 0);
|
||||
cr_assert(af, "Failed to download file");
|
||||
cr_log_info("Opened file %s", url);
|
||||
|
||||
while (!afeof(af)) {
|
||||
errno = 0;
|
||||
len = afread(buffer, 1, sizeof(buffer), af);
|
||||
cr_log_info("Read %zu bytes", len);
|
||||
|
||||
fwrite(buffer, 1, len, stdout);
|
||||
}
|
||||
len = afread(buffer, 1, sizeof(buffer), af);
|
||||
|
||||
cr_assert_gt(len, 0);
|
||||
cr_assert_arr_eq(buffer, TEST_DATA_DOWNLOAD, strlen(TEST_DATA_DOWNLOAD));
|
||||
|
||||
ret = afclose(af);
|
||||
cr_assert_eq(ret, 0, "Failed to close/upload file");
|
||||
|
@ -40,33 +43,77 @@ Test(advio, download)
|
|||
Test(advio, upload)
|
||||
{
|
||||
AFILE *af;
|
||||
size_t len1, len2;
|
||||
int ret;
|
||||
|
||||
const char *uri = "file:///tmp/test.txt";
|
||||
char rnd[128];
|
||||
char buffer[128];
|
||||
size_t len;
|
||||
size_t tlen = strlen(TEST_DATA_UPLOAD);
|
||||
|
||||
char buffer[tlen];
|
||||
|
||||
/* Get some random bytes */
|
||||
len1 = read_random(rnd, sizeof(rnd));
|
||||
|
||||
/* Open file for writing */
|
||||
af = afopen(uri, "w+", 0);
|
||||
af = afopen(BASE_URI "/upload", "w+", 0);
|
||||
cr_assert(af, "Failed to download file");
|
||||
|
||||
len2 = afwrite(rnd, 1, len1, af);
|
||||
cr_assert_eq(len1, len2);
|
||||
len = afwrite(TEST_DATA_UPLOAD, 1, strlen(TEST_DATA_UPLOAD), af);
|
||||
cr_assert_eq(len, strlen(TEST_DATA_UPLOAD));
|
||||
|
||||
ret = afclose(af);
|
||||
cr_assert_eq(ret, 0, "Failed to close/upload file");
|
||||
|
||||
/* Open for reading and comparison */
|
||||
af = afopen(uri, "r", 0);
|
||||
af = afopen(BASE_URI "/upload", "r", 0);
|
||||
cr_assert(af, "Failed to download file");
|
||||
|
||||
len2 = afread(buffer, 1, len1, af);
|
||||
cr_assert_arr_eq(rnd, buffer, len2);
|
||||
len = afread(buffer, 1, strlen(TEST_DATA_UPLOAD), af);
|
||||
cr_assert_eq(len, strlen(TEST_DATA_UPLOAD));
|
||||
|
||||
cr_assert_arr_eq(buffer, TEST_DATA_UPLOAD, len);
|
||||
|
||||
ret = afclose(af);
|
||||
cr_assert(ret == 0, "Failed to close file");
|
||||
}
|
||||
|
||||
Test(advio, append)
|
||||
{
|
||||
AFILE *af;
|
||||
|
||||
int ret;
|
||||
|
||||
size_t len;
|
||||
size_t tlen = strlen(TEST_DATA_APPEND1) + strlen(TEST_DATA_APPEND2);
|
||||
|
||||
char buffer[tlen];
|
||||
|
||||
/* Open file for writing first chunk */
|
||||
af = afopen(BASE_URI "/append", "w+", 0);
|
||||
cr_assert(af, "Failed to download file");
|
||||
|
||||
len = afwrite(TEST_DATA_APPEND1, 1, strlen(TEST_DATA_APPEND1), af);
|
||||
cr_assert_eq(len, strlen(TEST_DATA_APPEND1));
|
||||
|
||||
ret = afclose(af);
|
||||
cr_assert_eq(ret, 0, "Failed to close/upload file");
|
||||
|
||||
/* Open file for writing second chunk */
|
||||
af = afopen(BASE_URI "/append", "a", 0);
|
||||
cr_assert(af, "Failed to download file");
|
||||
|
||||
len = afwrite(TEST_DATA_APPEND1, 1, strlen(TEST_DATA_APPEND2), af);
|
||||
cr_assert_eq(len, strlen(TEST_DATA_APPEND2));
|
||||
|
||||
ret = afclose(af);
|
||||
cr_assert_eq(ret, 0, "Failed to close/upload file");
|
||||
|
||||
/* Open for reading and comparison */
|
||||
af = afopen(BASE_URI "/append", "r", 0);
|
||||
cr_assert(af, "Failed to download file");
|
||||
|
||||
len = afread(buffer, 1, tlen, af);
|
||||
cr_assert_eq(len, tlen);
|
||||
|
||||
ret = afclose(af);
|
||||
cr_assert(ret == 0, "Failed to close file");
|
||||
|
||||
cr_assert_arr_eq(buffer, TEST_DATA_APPEND1, strlen(TEST_DATA_APPEND1));
|
||||
cr_assert_arr_eq(buffer + strlen(TEST_DATA_APPEND1), TEST_DATA_APPEND2, strlen(TEST_DATA_APPEND2));
|
||||
}
|
35
tests/integration.sh
Executable file
35
tests/integration.sh
Executable file
|
@ -0,0 +1,35 @@
|
|||
#!/bin/bash
|
||||
|
||||
SCRIPT=$(realpath ${BASH_SOURCE[0]})
|
||||
SCRIPTPATH=$(dirname $SCRIPT)
|
||||
|
||||
TOPDIR=$(realpath ${SCRIPTPATH}/..)
|
||||
BUILDDIR=${TOPDIR}/build/release
|
||||
PATH=${BUILDDIR}:${PATH}
|
||||
|
||||
CONFIGFILE=$(mktemp)
|
||||
DATAFILE_ORIG=$(mktemp)
|
||||
DATAFILE_LOOP=$(mktemp)
|
||||
|
||||
cat > ${CONFIGFILE} <<- EOM
|
||||
nodes = {
|
||||
node1 = {
|
||||
type = "socket";
|
||||
layer = "udp";
|
||||
|
||||
local = "*:12000";
|
||||
remote = "localhost:12000"
|
||||
}
|
||||
}
|
||||
EOM
|
||||
|
||||
# Generate test data
|
||||
villas-signal random -l 10 -r 100 > ${DATAFILE_ORIG}
|
||||
|
||||
villas-pipe ${CONFIGFILE} node1 < ${DATAFILE_ORIG} > ${DATAFILE_LOOP}
|
||||
|
||||
diff -u ${DATAFILE_ORIG} ${DATAFILE_LOOP}
|
||||
|
||||
rm ${DATAFILE_ORIG}
|
||||
rm ${DATAFILE_LOOP}
|
||||
rm ${CONFIGFILE}
|
Loading…
Add table
Reference in a new issue