mirror of
https://git.rwth-aachen.de/acs/public/villas/node/
synced 2025-03-09 00:00:00 +01:00
tests: fix integration tests
This commit is contained in:
parent
5707ee9d58
commit
57f21cba0f
24 changed files with 207 additions and 164 deletions
|
@ -38,8 +38,12 @@ cat > ${CONFIG_FILE} <<EOF
|
|||
"type" : "socket",
|
||||
"dummy" : "value2",
|
||||
|
||||
"local" : "*:12001",
|
||||
"remote" : "localhost:12000"
|
||||
"in" : {
|
||||
"address" : "*:12001"
|
||||
},
|
||||
"out" : {
|
||||
"address" : "localhost:12000"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -58,7 +62,7 @@ curl -sX POST --data '{ "action" : "nodes", "id" : "5a786626-fbc6-4c04-98c2-4802
|
|||
kill $!
|
||||
|
||||
# Compare local config with the fetched one
|
||||
jq -e '.response[0].name == "testnode1" and .response[0].type == "websocket" and .response[0].id == 0 and (.response | length == 2)' ${FETCHED_NODES} > /dev/null
|
||||
jq -e '.response[0].name == "testnode1" and .response[0].type == "websocket" and (.response | length == 2)' ${FETCHED_NODES} > /dev/null
|
||||
RC=$?
|
||||
|
||||
rm -f ${CONFIG_FILE} ${FETCHED_NODES}
|
||||
|
|
|
@ -32,14 +32,23 @@ cat <<EOF > ${LOCAL_CONF}
|
|||
"nodes" : {
|
||||
"node1" : {
|
||||
"type" : "socket",
|
||||
"local" : "*:12000",
|
||||
"remote" : "127.0.0.1:12001"
|
||||
"format" : "csv",
|
||||
|
||||
"in" : {
|
||||
"address" : "*:12000"
|
||||
},
|
||||
"out" : {
|
||||
"address" : "127.0.0.1:12001"
|
||||
}
|
||||
}
|
||||
},
|
||||
"paths" : [
|
||||
{
|
||||
"in" : "node1", "out" : "node1",
|
||||
"hooks" : [ { "type" : "print" } ]
|
||||
"in" : "node1",
|
||||
"out" : "node1",
|
||||
"hooks" : [
|
||||
{ "type" : "print" }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -63,11 +72,10 @@ curl -sX POST --data '{ "action" : "config", "id" : "5a786626-fbc6-4c04-98c2-480
|
|||
# Shutdown VILLASnode
|
||||
kill %%
|
||||
|
||||
|
||||
# Compare local config with the fetched one
|
||||
diff -u <(jq -S .response < ${FETCHED_CONF}) <(jq -S . < ${LOCAL_CONF})
|
||||
RC=$?
|
||||
|
||||
rm -f ${LOCAL_CONF} ${FETCHED_CONF}
|
||||
|
||||
exit $RC
|
||||
exit $RC
|
||||
|
|
|
@ -27,7 +27,6 @@ SCRIPTPATH=$(dirname ${SCRIPT})
|
|||
|
||||
LOCAL_CONF=${SCRIPTPATH}/../../etc/loopback.json
|
||||
|
||||
|
||||
# Start VILLASnode instance with local config (via advio)
|
||||
villas-node file://${LOCAL_CONF} &
|
||||
PID=$!
|
||||
|
@ -35,6 +34,7 @@ PID=$!
|
|||
# Wait for node to complete init
|
||||
sleep 1
|
||||
|
||||
RUNS=100
|
||||
FAILED=0
|
||||
SUCCESS=0
|
||||
|
||||
|
@ -44,11 +44,12 @@ mkfifo ${FIFO}
|
|||
|
||||
# Fifo must be opened in both directions!
|
||||
# https://www.gnu.org/software/libc/manual/html_node/FIFO-Special-Files.html#FIFO-Special-Files
|
||||
# Quote: "However, it has to be open at both ends simultaneously before you can proceed to do any input or output operations on it"
|
||||
# Quote: "However, it has to be open at both ends simultaneously before you can proceed to
|
||||
# do any input or output operations on it"
|
||||
exec 5<>${FIFO}
|
||||
|
||||
JOBS=""
|
||||
for J in {1..100}; do
|
||||
for J in {1..${RUNS}}; do
|
||||
(
|
||||
set -e
|
||||
trap "echo error-trap >> ${FIFO}" ERR
|
||||
|
@ -76,7 +77,7 @@ wait $PID
|
|||
echo "Check return codes"
|
||||
FAILED=0
|
||||
SUCCESS=0
|
||||
for J in {1..100}; do
|
||||
for J in {1..${RUNS}}; do
|
||||
read status <&5
|
||||
|
||||
if [ "$status" == "success" ]; then
|
||||
|
@ -86,7 +87,9 @@ for J in {1..100}; do
|
|||
fi
|
||||
done
|
||||
|
||||
echo "Success: ${SUCCESS} / 100"
|
||||
echo "Success: ${SUCCESS} / ${RUNS}"
|
||||
echo "Failed: ${FAILED} / ${RUNS}"
|
||||
|
||||
if [ "$FAILED" -gt "0" ]; then
|
||||
exit 1;
|
||||
fi
|
||||
|
|
|
@ -22,22 +22,21 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
##################################################################################
|
||||
|
||||
INPUT_FILE=$(mktemp)
|
||||
OUTPUT_FILE1=$(mktemp)
|
||||
OUTPUT_FILE2=$(mktemp)
|
||||
INPUT_FILE=$(mktemp)
|
||||
|
||||
NUM_SAMPLES=${NUM_SAMPLES:-100}
|
||||
|
||||
# Prepare some test data
|
||||
villas-signal random -v 1 -r 10 -l ${NUM_SAMPLES} -n > ${INPUT_FILE}
|
||||
|
||||
villas-hook print -o format=villas.human -o output=${OUTPUT_FILE1} < ${INPUT_FILE} > ${OUTPUT_FILE2}
|
||||
villas-hook print -o format=villas.human -o output=${OUTPUT_FILE1} > ${OUTPUT_FILE2} < ${INPUT_FILE}
|
||||
|
||||
# Compare only the data values
|
||||
villas-test-cmp ${OUTPUT_FILE1} ${INPUT_FILE} && \
|
||||
villas-test-cmp ${OUTPUT_FILE2} ${INPUT_FILE}
|
||||
villas-test-cmp ${OUTPUT_FILE1} ${OUTPUT_FILE2} ${INPUT_FILE}
|
||||
RC=$?
|
||||
|
||||
rm -f ${INPUT_FILE} ${OUTPUT_FILE1} ${OUTPUT_FILE2}
|
||||
rm -f ${OUTPUT_FILE1} ${OUTPUT_FILE2} ${INPUT_FILE}
|
||||
|
||||
exit $RC
|
||||
|
|
|
@ -52,7 +52,7 @@ cat <<EOF > ${EXPECT_FILE}
|
|||
1490500400.676379108-1.490500e+09(9) -15.877850 -15.877850 -15.877850 -15.877850
|
||||
EOF
|
||||
|
||||
villas-hook scale -p -o scale=10 -o offset=-10 < ${INPUT_FILE} > ${OUTPUT_FILE}
|
||||
villas-hook scale -o scale=10 -o offset=-10 < ${INPUT_FILE} > ${OUTPUT_FILE}
|
||||
|
||||
# Compare only the data values
|
||||
villas-test-cmp ${OUTPUT_FILE} ${EXPECT_FILE}
|
||||
|
|
|
@ -23,13 +23,11 @@
|
|||
##################################################################################
|
||||
|
||||
OUTPUT_FILE=$(mktemp)
|
||||
INPUT_FILE=$(mktemp)
|
||||
|
||||
OFFSET=100
|
||||
|
||||
villas-signal random -l ${NUM_SAMPLES} -n > ${INPUT_FILE}
|
||||
|
||||
villas-hook shift_seq -o offset=${OFFSET} > ${OUTPUT_FILE} < ${INPUT_FILE}
|
||||
villas-signal random -l ${NUM_SAMPLES} -n | \
|
||||
villas-hook shift_seq -o offset=${OFFSET} > ${OUTPUT_FILE}
|
||||
|
||||
# Compare shifted sequence no
|
||||
diff -u \
|
||||
|
@ -38,6 +36,6 @@ diff -u \
|
|||
|
||||
RC=$?
|
||||
|
||||
rm -f ${OUTPUT_FILE} ${INPUT_FILE}
|
||||
rm -f ${OUTPUT_FILE}
|
||||
|
||||
exit $RC
|
||||
|
|
|
@ -30,11 +30,10 @@ OFFSET=-10.0
|
|||
EPSILON=0.05
|
||||
|
||||
villas-signal random -l ${NUM_SAMPLES} -r 50 | \
|
||||
villas-hook shift_ts -o offset=${OFFSET} | \
|
||||
villas-hook shift_ts -o offset=${OFFSET} | \
|
||||
villas-hook stats -o format=json -o output="${STATS_FILE}" > /dev/null
|
||||
|
||||
jq .owd ${STATS_FILE}
|
||||
|
||||
jq -e ".owd.mean + ${OFFSET} | length < ${EPSILON}" ${STATS_FILE} > /dev/null
|
||||
|
||||
RC=$?
|
||||
|
|
|
@ -28,7 +28,8 @@ SKIP=10
|
|||
|
||||
echo ${OUTPUT_FILE}
|
||||
|
||||
villas-signal random -r 1 -l ${NUM_SAMPLES} -n | villas-hook skip_first -o seconds=${SKIP} > ${OUTPUT_FILE}
|
||||
villas-signal random -r 1 -l ${NUM_SAMPLES} -n | \
|
||||
villas-hook skip_first -o seconds=${SKIP} > ${OUTPUT_FILE}
|
||||
|
||||
LINES=$(sed -re '/^#/d' ${OUTPUT_FILE} | wc -l)
|
||||
|
||||
|
|
|
@ -26,7 +26,8 @@ OUTPUT_FILE=$(mktemp)
|
|||
|
||||
SKIP=50
|
||||
|
||||
villas-signal random -r 1 -l ${NUM_SAMPLES} -n | villas-hook skip_first -o samples=${SKIP} > ${OUTPUT_FILE}
|
||||
villas-signal random -r 1 -l ${NUM_SAMPLES} -n | \
|
||||
villas-hook skip_first -o samples=${SKIP} > ${OUTPUT_FILE}
|
||||
|
||||
LINES=$(sed -re '/^#/d' ${OUTPUT_FILE} | wc -l)
|
||||
|
||||
|
|
|
@ -22,6 +22,12 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
##################################################################################
|
||||
|
||||
# Check if tools are present
|
||||
if ! command -v lspci; then
|
||||
echo "lspci tool is missing"
|
||||
exit 99
|
||||
fi
|
||||
|
||||
# Check if user is superuser. SU is used for namespace
|
||||
if [[ "$EUID" -ne 0 ]]; then
|
||||
echo "Please run as root"
|
||||
|
|
|
@ -37,17 +37,28 @@ cat > ${CONFIG_FILE} <<EOF
|
|||
"nodes": {
|
||||
"node1": {
|
||||
"type": "socket",
|
||||
"layer": "udp",
|
||||
"local": "*:12000",
|
||||
"remote": "127.0.0.1:12001",
|
||||
"vectorize" : 10
|
||||
"out" : {
|
||||
"address": "127.0.0.1:12001"
|
||||
},
|
||||
"in" : {
|
||||
"address": "*:12000",
|
||||
"signals" : [
|
||||
{ "type" : "float" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"node2": {
|
||||
"type": "socket",
|
||||
"layer": "udp",
|
||||
"local": "*:12001",
|
||||
"remote": "127.0.0.1:12000",
|
||||
"vectorize" : 1
|
||||
|
||||
"out" : {
|
||||
"address": "127.0.0.1:12000"
|
||||
},
|
||||
"in" : {
|
||||
"address" : "*:12001",
|
||||
"signals" : [
|
||||
{ "type" : "float" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"paths": [
|
||||
|
|
|
@ -39,7 +39,7 @@ cat > ${CONFIG_FILE} <<EOF
|
|||
"values" : 4,
|
||||
"offset" : 0.0,
|
||||
"rate" : 10.0,
|
||||
"limit" : 10
|
||||
"limit" : 20
|
||||
},
|
||||
"sig_2": {
|
||||
"type": "signal",
|
||||
|
@ -70,18 +70,17 @@ cat > ${CONFIG_FILE} <<EOF
|
|||
"paths": [
|
||||
{
|
||||
"in": [
|
||||
"sig_1.data[0-1]",
|
||||
"sig_2.data[0-1]",
|
||||
"sig_3.data[0-1]",
|
||||
"sig_1.data[counter]",
|
||||
"sig_2.data[counter]",
|
||||
"sig_3.data[counter]",
|
||||
"sig_1.hdr.length",
|
||||
"sig_1.hdr.id",
|
||||
"sig_1.hdr.sequence",
|
||||
"sig_1.ts.origin",
|
||||
"sig_1.ts.received"
|
||||
"sig_1.ts.origin"
|
||||
],
|
||||
"hooks" : [
|
||||
{ "type" : "print" }
|
||||
]
|
||||
],
|
||||
"mode" : "all"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -41,29 +41,24 @@ cat > ${CONFIG_FILE} <<EOF
|
|||
"type": "signal",
|
||||
"limit": 100,
|
||||
"rate": 10.0,
|
||||
"hooks": [
|
||||
{
|
||||
"type": "stats",
|
||||
"verbose": true
|
||||
}
|
||||
]
|
||||
"in" : {
|
||||
"hooks": [
|
||||
{ "type": "stats", "verbose": true }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"paths": [
|
||||
{
|
||||
"in": "signal_1",
|
||||
"hooks" : [
|
||||
{
|
||||
"type" : "print"
|
||||
}
|
||||
{ "type" : "print", "enabled" : false }
|
||||
]
|
||||
},
|
||||
{
|
||||
"in": "stats_1",
|
||||
"hooks" : [
|
||||
{
|
||||
"type" : "print"
|
||||
}
|
||||
{ "type" : "print" }
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
|
@ -35,7 +35,7 @@ NUM_SAMPLES=${NUM_SAMPLES:-10}
|
|||
URI=https://1Nrd46fZX8HbggT:badpass@rwth-aachen.sciebo.de/public.php/webdav/node/tests/pipe
|
||||
|
||||
# WebDav / OwnCloud / Sciebo do not support partial upload
|
||||
# So we disable flusing the output
|
||||
# So we do not flush the output
|
||||
cat > ${CONFIG_FILE} <<EOF
|
||||
{
|
||||
"nodes" : {
|
||||
|
@ -43,9 +43,14 @@ cat > ${CONFIG_FILE} <<EOF
|
|||
"type" : "file",
|
||||
|
||||
"uri" : "${URI}",
|
||||
"flush" : false,
|
||||
"epoch_mode" : "original",
|
||||
"eof" : "exit"
|
||||
|
||||
"in" : {
|
||||
"epoch_mode" : "original",
|
||||
"eof" : "exit"
|
||||
},
|
||||
"out" : {
|
||||
"flush" : false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -54,15 +59,19 @@ EOF
|
|||
# Delete old file
|
||||
curl -sX DELETE ${URI} > /dev/null
|
||||
|
||||
# Generate test data
|
||||
VILLAS_LOG_PREFIX=$(colorize "[Signal] ") \
|
||||
villas-signal random -n -l ${NUM_SAMPLES} > ${INPUT_FILE}
|
||||
|
||||
# Upload data to cloud
|
||||
VILLAS_LOG_PREFIX=$(colorize "[Send] ") \
|
||||
villas-pipe -s ${CONFIG_FILE} remote_file < ${INPUT_FILE}
|
||||
|
||||
# Download data from the cloud
|
||||
VILLAS_LOG_PREFIX=$(colorize "[Recv] ") \
|
||||
villas-pipe -r -l ${NUM_SAMPLES} ${CONFIG_FILE} remote_file > ${OUTPUT_FILE}
|
||||
|
||||
# Compare results
|
||||
villas-test-cmp ${INPUT_FILE} ${OUTPUT_FILE}
|
||||
RC=$?
|
||||
|
||||
|
|
|
@ -36,11 +36,14 @@ cat > ${CONFIG_FILE} << EOF
|
|||
"type" : "file",
|
||||
|
||||
"uri" : "${NODE_FILE}",
|
||||
"mode" : "w+",
|
||||
|
||||
"epoch_mode" : "original",
|
||||
"eof" : "wait",
|
||||
"flush" : true
|
||||
"in" : {
|
||||
"epoch_mode" : "original",
|
||||
"eof" : "wait"
|
||||
},
|
||||
"out" : {
|
||||
"flush" : true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -55,10 +58,6 @@ villas-pipe -l ${NUM_SAMPLES} ${CONFIG_FILE} node1 > ${OUTPUT_FILE} < ${INPUT_FI
|
|||
villas-test-cmp ${INPUT_FILE} ${OUTPUT_FILE}
|
||||
RC=$?
|
||||
|
||||
cat ${OUTPUT_FILE}
|
||||
echo
|
||||
cat ${INPUT_FILE}
|
||||
|
||||
rm ${OUTPUT_FILE} ${INPUT_FILE} ${CONFIG_FILE} ${NODE_FILE}
|
||||
|
||||
exit $RC
|
||||
|
|
|
@ -43,19 +43,31 @@ cat > ${CONFIG_FILE} << EOF
|
|||
|
||||
"interface" : "lo",
|
||||
|
||||
"publish" : {
|
||||
"out" : {
|
||||
"svid" : "1234",
|
||||
"fields" : [ "float32", "float32", "float32", "float32" ]
|
||||
"signals" : [
|
||||
{ "iec_type" : "float32" },
|
||||
{ "iec_type" : "float32" },
|
||||
{ "iec_type" : "float32" },
|
||||
{ "iec_type" : "float32" }
|
||||
]
|
||||
},
|
||||
"subscribe" : {
|
||||
"fields" : [ "float32", "float32", "float32", "float32" ]
|
||||
"in" : {
|
||||
"signals" : [
|
||||
{ "iec_type" : "float32" },
|
||||
{ "iec_type" : "float32" },
|
||||
{ "iec_type" : "float32" },
|
||||
{ "iec_type" : "float32" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
villas-pipe -l ${NUM_SAMPLES} ${CONFIG_FILE} node1 > ${OUTPUT_FILE} < <(sleep 1; cat ${INPUT_FILE}; sleep 1)
|
||||
cat ${CONFIG_FILE}
|
||||
|
||||
villas-pipe -l ${NUM_SAMPLES} ${CONFIG_FILE} node1 > ${OUTPUT_FILE} < ${INPUT_FILE}
|
||||
|
||||
# Compare data
|
||||
villas-test-cmp -t ${INPUT_FILE} ${OUTPUT_FILE}
|
||||
|
|
|
@ -39,11 +39,11 @@ cat > ${CONFIG_FILE} << EOF
|
|||
EOF
|
||||
|
||||
# Generate test data
|
||||
villas-signal random -l ${NUM_SAMPLES} -n > ${INPUT_FILE}
|
||||
villas-signal mixed -v 5 -l ${NUM_SAMPLES} -n > ${INPUT_FILE}
|
||||
|
||||
villas-pipe -l ${NUM_SAMPLES} ${CONFIG_FILE} node1 > ${OUTPUT_FILE} < ${INPUT_FILE}
|
||||
|
||||
# Comapre data
|
||||
# Compare data
|
||||
villas-test-cmp ${INPUT_FILE} ${OUTPUT_FILE}
|
||||
RC=$?
|
||||
|
||||
|
|
|
@ -33,18 +33,10 @@ OUTPUT_FILE=$(mktemp)
|
|||
NUM_SAMPLES=${NUM_SAMPLES:-100}
|
||||
|
||||
# Generate test data
|
||||
villas-signal random -l ${NUM_SAMPLES} -n > ${INPUT_FILE}
|
||||
villas-signal mixed -v 5 -l ${NUM_SAMPLES} -n > ${INPUT_FILE}
|
||||
|
||||
for FORMAT in villas.human villas.binary villas.web csv json gtnet.fake raw.flt32; do
|
||||
|
||||
VECTORIZES="1"
|
||||
|
||||
# The raw format does not support vectors
|
||||
if villas_format_supports_vectorize ${FORMAT}; then
|
||||
VECTORIZES="${VECTORIZES} 10"
|
||||
fi
|
||||
|
||||
for VECTORIZE in ${VECTORIZES}; do
|
||||
FORMAT="protobuf"
|
||||
VECTORIZE="10"
|
||||
|
||||
cat > ${CONFIG_FILE} << EOF
|
||||
{
|
||||
|
@ -55,8 +47,20 @@ cat > ${CONFIG_FILE} << EOF
|
|||
"format" : "${FORMAT}",
|
||||
"vectorize" : ${VECTORIZE},
|
||||
|
||||
"subscribe" : "tcp://127.0.0.1:12000",
|
||||
"publish" : "tcp://127.0.0.1:12000"
|
||||
"in" : {
|
||||
"endpoints" : [ "tcp://127.0.0.1:12000" ],
|
||||
|
||||
"signals" : [
|
||||
{ "type" : "float" },
|
||||
{ "type" : "float" },
|
||||
{ "type" : "float" },
|
||||
{ "type" : "float" },
|
||||
{ "type" : "float" }
|
||||
]
|
||||
},
|
||||
"out" : {
|
||||
"endpoints" : [ "tcp://127.0.0.1:12000" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -64,29 +68,10 @@ EOF
|
|||
|
||||
villas-pipe -l ${NUM_SAMPLES} ${CONFIG_FILE} node1 > ${OUTPUT_FILE} < ${INPUT_FILE}
|
||||
|
||||
# Ignore timestamp and seqeunce no if in raw format
|
||||
if villas_format_supports_header ${FORMAT}; then
|
||||
CMPFLAGS=-ts
|
||||
fi
|
||||
|
||||
# Compare data
|
||||
villas-test-cmp ${CMPFLAGS} ${INPUT_FILE} ${OUTPUT_FILE}
|
||||
RC=$?
|
||||
|
||||
if (( ${RC} != 0 )); then
|
||||
echo "=========== Sub-test failed for: format=${FORMAT}, vectorize=${VECTORIZE}"
|
||||
cat ${CONFIG_FILE}
|
||||
echo
|
||||
cat ${INPUT_FILE}
|
||||
echo
|
||||
cat ${OUTPUT_FILE}
|
||||
exit ${RC}
|
||||
else
|
||||
echo "=========== Sub-test succeeded for: format=${FORMAT}, vectorize=${VECTORIZE}"
|
||||
fi
|
||||
|
||||
done; done
|
||||
|
||||
rm ${OUTPUT_FILE} ${INPUT_FILE} ${CONFIG_FILE}
|
||||
|
||||
exit $RC
|
||||
|
|
|
@ -40,8 +40,12 @@ cat > ${CONFIG_FILE} << EOF
|
|||
"nodes" : {
|
||||
"node1" : {
|
||||
"type" : "shmem",
|
||||
"out_name" : "/villas-test",
|
||||
"in_name" : "/villas-test",
|
||||
"out" : {
|
||||
"name" : "/villas-test"
|
||||
},
|
||||
"in" : {
|
||||
"name" : "/villas-test"
|
||||
},
|
||||
"samplelen" : ${SAMPLELEN},
|
||||
"queuelen" : 1024,
|
||||
"polling" : ${POLLING},
|
||||
|
@ -56,7 +60,7 @@ villas-signal random -l ${NUM_SAMPLES} -v ${SAMPLELEN} -n > ${INPUT_FILE}
|
|||
|
||||
villas-pipe -l ${NUM_SAMPLES} ${CONFIG_FILE} node1 > ${OUTPUT_FILE} < ${INPUT_FILE}
|
||||
|
||||
# Comapre data
|
||||
# Compare data
|
||||
villas-test-cmp ${INPUT_FILE} ${OUTPUT_FILE}
|
||||
RC=$?
|
||||
|
||||
|
|
|
@ -33,16 +33,20 @@ cat > ${CONFIG_FILE} << EOF
|
|||
"nodes" : {
|
||||
"node1" : {
|
||||
"type" : "socket",
|
||||
"layer" : "udp",
|
||||
"format" : "protobuf",
|
||||
|
||||
"local" : "*:12000",
|
||||
"remote" : "224.1.2.3:12000",
|
||||
"in" : {
|
||||
"address" : "*:12000",
|
||||
|
||||
"multicast" : {
|
||||
"enabled" : true,
|
||||
|
||||
"multicast" : {
|
||||
"enabled" : true,
|
||||
|
||||
"group" : "224.1.2.3",
|
||||
"loop" : true
|
||||
"group" : "224.1.2.3",
|
||||
"loop" : true
|
||||
}
|
||||
},
|
||||
"out" : {
|
||||
"address" : "224.1.2.3:12000"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -54,7 +58,7 @@ villas-signal random -l ${NUM_SAMPLES} -n > ${INPUT_FILE}
|
|||
|
||||
villas-pipe -l ${NUM_SAMPLES} ${CONFIG_FILE} node1 > ${OUTPUT_FILE} < ${INPUT_FILE}
|
||||
|
||||
# Comapre data
|
||||
# Compare data
|
||||
villas-test-cmp ${INPUT_FILE} ${OUTPUT_FILE}
|
||||
RC=$?
|
||||
|
|
@ -37,7 +37,7 @@ NUM_VALUES=${NUM_VALUES:-4}
|
|||
# Generate test data
|
||||
villas-signal random -v ${NUM_VALUES} -l ${NUM_SAMPLES} -n > ${INPUT_FILE}
|
||||
|
||||
for FORMAT in villas.human villas.binary villas.web csv json gtnet.fake raw.flt32 protobuf; do
|
||||
for FORMAT in villas.human villas.binary villas.web csv json gtnet.fake raw.32.le raw.64.be protobuf; do
|
||||
for LAYER in udp ip eth unix; do
|
||||
for VERIFY_SOURCE in true false; do
|
||||
|
||||
|
@ -83,10 +83,20 @@ cat > ${CONFIG_FILE} << EOF
|
|||
"vectorize" : ${VECTORIZE},
|
||||
"format" : "${FORMAT}",
|
||||
"layer" : "${LAYER}",
|
||||
"verify_source" : ${VERIFY_SOURCE},
|
||||
|
||||
"local" : "${LOCAL}",
|
||||
"remote" : "${REMOTE}"
|
||||
"out" : {
|
||||
"address" : "${REMOTE}"
|
||||
},
|
||||
"in" : {
|
||||
"address" : "${LOCAL}",
|
||||
"verify_source" : ${VERIFY_SOURCE},
|
||||
"signals" : [
|
||||
{ "type" : "float" },
|
||||
{ "type" : "float" },
|
||||
{ "type" : "float" },
|
||||
{ "type" : "float" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,12 +35,13 @@ NUM_SAMPLES=${NUM_SAMPLES:-100}
|
|||
|
||||
cat > ${CONFIG_FILE} << EOF
|
||||
{
|
||||
"logging" : { "level" : 15 },
|
||||
"nodes" : {
|
||||
"node1" : {
|
||||
"type" : "websocket",
|
||||
|
||||
"destinations" : [
|
||||
"ws://127.0.0.1:81/node2"
|
||||
"ws://127.0.0.1:81/node2.protobuf"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -52,6 +53,7 @@ cat > ${CONFIG_FILE2} << EOF
|
|||
"http" : {
|
||||
"port" : 81
|
||||
},
|
||||
"logging" : { "level" : 15 },
|
||||
"nodes" : {
|
||||
"node2" : {
|
||||
"type" : "websocket"
|
||||
|
@ -65,10 +67,12 @@ VILLAS_LOG_PREFIX=$(colorize "[Signal]") \
|
|||
villas-signal random -l ${NUM_SAMPLES} -n > ${INPUT_FILE}
|
||||
|
||||
VILLAS_LOG_PREFIX=$(colorize "[Recv] ") \
|
||||
villas-pipe -r -d 15 -l ${NUM_SAMPLES} ${CONFIG_FILE2} node2 > ${OUTPUT_FILE} &
|
||||
villas-pipe -r -d 15 -l ${NUM_SAMPLES} ${CONFIG_FILE2} node2 | tee ${OUTPUT_FILE} &
|
||||
|
||||
sleep 1
|
||||
|
||||
VILLAS_LOG_PREFIX=$(colorize "[Send] ") \
|
||||
villas-pipe -s -d 15 ${CONFIG_FILE} node1 < ${INPUT_FILE}
|
||||
villas-pipe -s -d 15 ${CONFIG_FILE} node1 < <(sleep 1; cat ${INPUT_FILE})
|
||||
|
||||
wait $!
|
||||
|
||||
|
|
|
@ -33,18 +33,10 @@ OUTPUT_FILE=$(mktemp)
|
|||
NUM_SAMPLES=${NUM_SAMPLES:-10}
|
||||
|
||||
# Generate test data
|
||||
villas-signal random -l ${NUM_SAMPLES} -n -v 10 > ${INPUT_FILE}
|
||||
|
||||
for FORMAT in villas.human villas.binary villas.web csv json gtnet.fake raw.flt32; do
|
||||
villas-signal random -l ${NUM_SAMPLES} -n -v 5 > ${INPUT_FILE}
|
||||
|
||||
VECTORIZES="1"
|
||||
|
||||
# The raw format does not support vectors
|
||||
if villas_format_supports_vectorize ${FORMAT}; then
|
||||
VECTORIZES="${VECTORIZES} 10"
|
||||
fi
|
||||
|
||||
for VECTORIZE in ${VECTORIZES}; do
|
||||
VECTORIZE="10"
|
||||
FORMAT="protobuf"
|
||||
|
||||
cat > ${CONFIG_FILE} << EOF
|
||||
{
|
||||
|
@ -55,8 +47,19 @@ cat > ${CONFIG_FILE} << EOF
|
|||
"format" : "${FORMAT}",
|
||||
"vectorize" : ${VECTORIZE},
|
||||
"pattern" : "pubsub",
|
||||
"subscribe" : "tcp://127.0.0.1:12000",
|
||||
"publish" : "tcp://127.0.0.1:12000"
|
||||
"out" : {
|
||||
"publish" : "tcp://127.0.0.1:12000"
|
||||
},
|
||||
"in" : {
|
||||
"subscribe" : "tcp://127.0.0.1:12000",
|
||||
"signals" : [
|
||||
{ "type" : "float" },
|
||||
{ "type" : "float" },
|
||||
{ "type" : "float" },
|
||||
{ "type" : "float" },
|
||||
{ "type" : "float" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -64,29 +67,10 @@ EOF
|
|||
|
||||
villas-pipe -l ${NUM_SAMPLES} ${CONFIG_FILE} node1 > ${OUTPUT_FILE} < ${INPUT_FILE}
|
||||
|
||||
# Ignore timestamp and seqeunce no if in raw format
|
||||
if villas_format_supports_header ${FORMAT}; then
|
||||
CMPFLAGS=-ts
|
||||
fi
|
||||
|
||||
# Compare data
|
||||
villas-test-cmp ${CMPFLAGS} ${INPUT_FILE} ${OUTPUT_FILE}
|
||||
villas-test-cmp ${INPUT_FILE} ${OUTPUT_FILE}
|
||||
RC=$?
|
||||
|
||||
if (( ${RC} != 0 )); then
|
||||
echo "=========== Sub-test failed for: format=${FORMAT}, vectorize=${VECTORIZE}"
|
||||
cat ${CONFIG_FILE}
|
||||
echo
|
||||
cat ${INPUT_FILE}
|
||||
echo
|
||||
cat ${OUTPUT_FILE}
|
||||
exit ${RC}
|
||||
else
|
||||
echo "=========== Sub-test succeeded for: format=${FORMAT}, vectorize=${VECTORIZE}"
|
||||
fi
|
||||
|
||||
done; done
|
||||
|
||||
rm ${OUTPUT_FILE} ${INPUT_FILE} ${CONFIG_FILE}
|
||||
|
||||
exit $RC
|
||||
|
|
|
@ -60,22 +60,30 @@ cat > ${CONFIG_FILE} << EOF
|
|||
"layer": "${LAYER}",
|
||||
"format" : "${FORMAT}",
|
||||
|
||||
"local" : "${LOCAL}",
|
||||
"remote" : "${REMOTE}"
|
||||
"in" : {
|
||||
"address" : "${LOCAL}"
|
||||
},
|
||||
"out" : {
|
||||
"address" : "${REMOTE}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
export PYTHONPATH=${BUILDDIR}/clients/python
|
||||
|
||||
# Start Python client in background
|
||||
python ${SRCDIR}/clients/python/villas.py unix &
|
||||
CPID=$!
|
||||
|
||||
# Wait for client to be ready
|
||||
if [ "${LAYER}" = "unix" ]; then
|
||||
while [ ! -S "${REMOTE}" ]; do sleep 0.1; done
|
||||
while [ ! -S "${REMOTE}" ]; do
|
||||
sleep 1
|
||||
done
|
||||
fi
|
||||
sleep 0.2
|
||||
sleep 1
|
||||
|
||||
villas-pipe -l ${NUM_SAMPLES} ${CONFIG_FILE} py-client > ${OUTPUT_FILE} < ${INPUT_FILE}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue