Skip to content
Snippets Groups Projects
Commit c2374883 authored by Josh Brooks's avatar Josh Brooks
Browse files

Merge branch 'feature/XX-3958/ConnectionCLI' into 'release'

Add integration test for connections

See merge request !28
parents c65a3d7e 4de88e51
No related branches found
No related tags found
2 merge requests!68Master merge,!28Add integration test for connections
<xxc(2)0Tn65dcaNnvkZNbGnn9EhuW3qD0D6sDnGgWGJoqxGtoDrgZ7Ugdw/BAr6cdsGnfdtW48mvt+1hEE+unorwuFjzHdCBpXqddAtM5fPczC3sEP8SNdtVxN3BZ3tTXntFTMgklZPEjIL0P5+GXsyPA2BwAbMHlG6/UQ69kdwC0s/qgz7bAcXxhilk/RnopTVYHAoyqSkm43EpJLbVRX6jg6JyDqg3M8QhEOGKbrBwfxmWFosroBP2gUWJAtR3vDHaVjLku4hbeVPHDIJJlCN94Y0YDjpRTg788ad6B3gSN759gPuvKK1mL+ilB6U7tl/XDvidTCjUUqbEZcLQIthfAHmMjyn6AKFTPPigqCkFHOJyYXvhbvZOri7cag8dSqCvXfvgoOnzXAyLf1Yvy7+5e4bqAwZGY3bGrLxPGTz1yxoKKH3+TRMXdXXGb0tRrnAePXbUwrn1i4lnmiUTdNioP2BswViBZZy246fqJpICWG8oEO6E+SS/qPL9rdux7Dxr88hgwndHoKNEW9Q6lPDx+TqV7/Pq8W6droEOmEhn11KfgWXNlZkBfP7QNMyhPcdfjDFYPA4Dqt5GuC8QAAAgA7f2vtFu2mhRGc1XtaLU/Z0g==xxc>
\ No newline at end of file
Established connection server, begin listening...
Established connection with client
ConnectionServer heard message "Hello 200 from 201, using connections"
Loading ephemerally
Sending connection request
Established connection with server
Sent message "Hello 200 from 201, using connections" to connection partner.
Loading ephemerally
Sending connection request
Established connection with server
Disconnected from partner
Established connection server, begin listening...
Established authenticated connection with client
AuthServer heard message "Hello 202 from 203, using connections"
Established authenticated connection with client
Loading ephemerally
Sending connection request
Established authenticated connection with server.
Sent message "Hello 202 from 203, using connections" to connection partner.
Loading ephemerally
Sending connection request
Established authenticated connection with server.
Disconnected from partner
#!/bin/bash #!/bin/bash
# NOTE: This is verbose on purpose. # NOTE: This is verbose on purpose.
################################################################################
## Initial Set Up & Clean Up of Past Runs
################################################################################
set -e set -e
rm -fr results.bak || true rm -fr results.bak || true
...@@ -37,12 +40,18 @@ CLIENTGROUPOPTS="--password hello --waitTimeout 600 --ndf results/ndf.json -v $D ...@@ -37,12 +40,18 @@ CLIENTGROUPOPTS="--password hello --waitTimeout 600 --ndf results/ndf.json -v $D
CLIENTFILETRANSFEROPTS="--password hello --waitTimeout 600 --ndf results/ndf.json -v $DEBUGLEVEL" CLIENTFILETRANSFEROPTS="--password hello --waitTimeout 600 --ndf results/ndf.json -v $DEBUGLEVEL"
CLIENTREKEYOPTS="--password hello --ndf results/ndf.json --verify-sends --waitTimeout 600 --unsafe-channel-creation -v $DEBUGLEVEL" CLIENTREKEYOPTS="--password hello --ndf results/ndf.json --verify-sends --waitTimeout 600 --unsafe-channel-creation -v $DEBUGLEVEL"
CLIENTBACKUPOPTS="--password hello --ndf results/ndf.json -v $DEBUGLEVEL" CLIENTBACKUPOPTS="--password hello --ndf results/ndf.json -v $DEBUGLEVEL"
CONNECTIONOPTS="--password hello --waitTimeout 360 --ndf results/ndf.json -v $DEBUGLEVEL"
mkdir -p $SERVERLOGS mkdir -p $SERVERLOGS
mkdir -p $GATEWAYLOGS mkdir -p $GATEWAYLOGS
mkdir -p $CLIENTOUT mkdir -p $CLIENTOUT
mkdir -p $CLIENTCLEAN mkdir -p $CLIENTCLEAN
################################################################################
## Network Set Up
################################################################################
if [ "$NETWORKENTRYPOINT" == "betanet" ] if [ "$NETWORKENTRYPOINT" == "betanet" ]
then then
NETWORKENTRYPOINT=$(sort -R betanet.txt | head -1) NETWORKENTRYPOINT=$(sort -R betanet.txt | head -1)
...@@ -138,6 +147,10 @@ runclients() { ...@@ -138,6 +147,10 @@ runclients() {
done done
} }
###############################################################################
# Test Basic Client
###############################################################################
if [ "$NETWORKENTRYPOINT" == "localhost:8440" ] if [ "$NETWORKENTRYPOINT" == "localhost:8440" ]
then then
...@@ -222,6 +235,10 @@ then ...@@ -222,6 +235,10 @@ then
fi fi
###############################################################################
# Test Sending E2E
###############################################################################
# Non-precanned E2E user messaging # Non-precanned E2E user messaging
echo "SENDING E2E MESSAGES TO NEW USERS..." echo "SENDING E2E MESSAGES TO NEW USERS..."
CLIENTCMD="timeout 360s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client42.log -s blob42 --writeContact $CLIENTOUT/rick42-contact.bin --unsafe -m \"Hello from Rick42 to myself, without E2E Encryption\"" CLIENTCMD="timeout 360s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client42.log -s blob42 --writeContact $CLIENTOUT/rick42-contact.bin --unsafe -m \"Hello from Rick42 to myself, without E2E Encryption\""
...@@ -277,6 +294,10 @@ echo "$CLIENTCMD -- $PIDVAL" ...@@ -277,6 +294,10 @@ echo "$CLIENTCMD -- $PIDVAL"
wait $PIDVAL wait $PIDVAL
wait $PIDVAL2 wait $PIDVAL2
###############################################################################
# Test Renegotiation
###############################################################################
echo "TESTING RENEGOTIATION..." echo "TESTING RENEGOTIATION..."
CLIENTCMD="timeout 360s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client43.log -s blob43 --destfile $CLIENTOUT/rick42-contact.bin --send-auth-request --sendCount 0 --receiveCount 0" CLIENTCMD="timeout 360s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client43.log -s blob43 --destfile $CLIENTOUT/rick42-contact.bin --send-auth-request --sendCount 0 --receiveCount 0"
eval $CLIENTCMD >> $CLIENTOUT/client43.txt || true & eval $CLIENTCMD >> $CLIENTOUT/client43.txt || true &
...@@ -327,6 +348,10 @@ wait $PIDVAL ...@@ -327,6 +348,10 @@ wait $PIDVAL
wait $PIDVAL2 wait $PIDVAL2
echo "END RENEGOTIATION" echo "END RENEGOTIATION"
###############################################################################
# Test Deleting Contacts & Requests
###############################################################################
echo "DELETING CONTACT FROM CLIENT..." echo "DELETING CONTACT FROM CLIENT..."
CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client42.log -s blob42 --delete-channel --destfile $CLIENTOUT/ben43-contact.bin --sendCount 0 --receiveCount 0" CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client42.log -s blob42 --delete-channel --destfile $CLIENTOUT/ben43-contact.bin --sendCount 0 --receiveCount 0"
eval $CLIENTCMD >> $CLIENTOUT/client42.txt || true & eval $CLIENTCMD >> $CLIENTOUT/client42.txt || true &
...@@ -370,6 +395,9 @@ echo "$CLIENTCMD -- $PIDVAL" ...@@ -370,6 +395,9 @@ echo "$CLIENTCMD -- $PIDVAL"
echo "NOTE: The command above causes an EXPECTED failure to confirm authentication channel!" echo "NOTE: The command above causes an EXPECTED failure to confirm authentication channel!"
wait $PIDVAL2 wait $PIDVAL2
###############################################################################
# Test Simultaneous Auth
###############################################################################
echo "CREATING USERS for SIMULTANEOUSAUTH TEST..." echo "CREATING USERS for SIMULTANEOUSAUTH TEST..."
JONOID=$(../bin/client init -s blob85 -l $CLIENTOUT/client85.log --password hello --ndf results/ndf.json --writeContact $CLIENTOUT/jono85-contact.bin -v $DEBUGLEVEL) JONOID=$(../bin/client init -s blob85 -l $CLIENTOUT/client85.log --password hello --ndf results/ndf.json --writeContact $CLIENTOUT/jono85-contact.bin -v $DEBUGLEVEL)
...@@ -405,6 +433,9 @@ echo "$CLIENTCMD -- $PIDVAL2" ...@@ -405,6 +433,9 @@ echo "$CLIENTCMD -- $PIDVAL2"
wait $PIDVAL1 wait $PIDVAL1
wait $PIDVAL2 wait $PIDVAL2
###############################################################################
# Test Rekey
###############################################################################
echo "CREATING USERS for REKEY TEST..." echo "CREATING USERS for REKEY TEST..."
JAKEID=$(../bin/client init -s blob100 -l $CLIENTOUT/client100.log --password hello --ndf results/ndf.json --writeContact $CLIENTOUT/Jake100-contact.bin -v $DEBUGLEVEL) JAKEID=$(../bin/client init -s blob100 -l $CLIENTOUT/client100.log --password hello --ndf results/ndf.json --writeContact $CLIENTOUT/Jake100-contact.bin -v $DEBUGLEVEL)
...@@ -454,6 +485,9 @@ echo "$CLIENTCMD -- $PIDVAL" ...@@ -454,6 +485,9 @@ echo "$CLIENTCMD -- $PIDVAL"
wait $PIDVAL wait $PIDVAL
wait $PIDVAL2 wait $PIDVAL2
###############################################################################
# Test Historical Rounds
###############################################################################
echo "FORCING HISTORICAL ROUNDS..." echo "FORCING HISTORICAL ROUNDS..."
FH1ID=$(../bin/client init -s blob35 -l $CLIENTOUT/client35.log --password hello --ndf results/ndf.json --writeContact $CLIENTOUT/FH1-contact.bin -v $DEBUGLEVEL) FH1ID=$(../bin/client init -s blob35 -l $CLIENTOUT/client35.log --password hello --ndf results/ndf.json --writeContact $CLIENTOUT/FH1-contact.bin -v $DEBUGLEVEL)
...@@ -484,6 +518,10 @@ echo "$CLIENTCMD -- $PIDVAL" ...@@ -484,6 +518,10 @@ echo "$CLIENTCMD -- $PIDVAL"
wait $PIDVAL wait $PIDVAL
wait $PIDVAL2 wait $PIDVAL2
###############################################################################
# Test Back Up & Restore
###############################################################################
echo "START BACKUP AND RESTORE..." echo "START BACKUP AND RESTORE..."
CLIENTCMD="timeout 360s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client120.log -s blob120 --force-legacy --writeContact $CLIENTOUT/client120-contact.bin --unsafe -m \"Hello from Client120 to myself, without E2E Encryption\"" CLIENTCMD="timeout 360s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client120.log -s blob120 --force-legacy --writeContact $CLIENTOUT/client120-contact.bin --unsafe -m \"Hello from Client120 to myself, without E2E Encryption\""
eval $CLIENTCMD >> $CLIENTOUT/client120.txt || true & eval $CLIENTCMD >> $CLIENTOUT/client120.txt || true &
...@@ -571,6 +609,9 @@ wait $PIDVAL2 ...@@ -571,6 +609,9 @@ wait $PIDVAL2
echo "END BACKUP AND RESTORE..." echo "END BACKUP AND RESTORE..."
###############################################################################
# Test Proto User
###############################################################################
# Proto user test: client25 and client26 generate a proto user JSON file and close. # Proto user test: client25 and client26 generate a proto user JSON file and close.
# Both clients are restarted and load from their respective proto user files and attempt to send. # Both clients are restarted and load from their respective proto user files and attempt to send.
...@@ -657,6 +698,9 @@ echo "$CLIENTCMD -- $PIDVAL" ...@@ -657,6 +698,9 @@ echo "$CLIENTCMD -- $PIDVAL"
wait $PIDVAL wait $PIDVAL
wait $PIDVAL2 wait $PIDVAL2
###############################################################################
# Test Single Use
###############################################################################
# Single-use test: client53 sends message to client52; client52 responds with # Single-use test: client53 sends message to client52; client52 responds with
# the same message in the set number of message parts # the same message in the set number of message parts
...@@ -683,6 +727,9 @@ echo "$CLIENTCMD -- $PIDVAL1" ...@@ -683,6 +727,9 @@ echo "$CLIENTCMD -- $PIDVAL1"
wait $PIDVAL1 wait $PIDVAL1
wait $PIDVAL2 wait $PIDVAL2
###############################################################################
# Test User Discovery
###############################################################################
if [ "$NETWORKENTRYPOINT" == "localhost:8440" ] if [ "$NETWORKENTRYPOINT" == "localhost:8440" ]
then then
...@@ -769,6 +816,10 @@ then ...@@ -769,6 +816,10 @@ then
wait $PIDVAL wait $PIDVAL
fi fi
###############################################################################
# Test Group Chat
###############################################################################
echo "TESTING GROUP CHAT..." echo "TESTING GROUP CHAT..."
# Create authenticated channel between client 80 and 81 # Create authenticated channel between client 80 and 81
CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client80.log -s blob80 --writeContact $CLIENTOUT/client80-contact.bin --unsafe -m \"Hello from contact 80 to myself, without E2E Encryption\"" CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client80.log -s blob80 --writeContact $CLIENTOUT/client80-contact.bin --unsafe -m \"Hello from contact 80 to myself, without E2E Encryption\""
...@@ -958,6 +1009,9 @@ wait $PIDVAL3 ...@@ -958,6 +1009,9 @@ wait $PIDVAL3
echo "GROUP CHAT FINISHED!" echo "GROUP CHAT FINISHED!"
###############################################################################
# Test File Transfer
###############################################################################
echo "TESTING FILE TRANSFER..." echo "TESTING FILE TRANSFER..."
...@@ -1006,6 +1060,122 @@ wait $PIDVAL1 ...@@ -1006,6 +1060,122 @@ wait $PIDVAL1
wait $PIDVAL2 wait $PIDVAL2
echo "FILE TRANSFER FINISHED..." echo "FILE TRANSFER FINISHED..."
###############################################################################
# Test connections
###############################################################################
echo "TESTING CONNECTIONS..."
echo "Testing Ephemeral Initialization..."
# Initiate server
CLIENTCMD="timeout 240s ../bin/client connection --ephemeral -s blob200 $CONNECTIONOPTS --writeContact $CLIENTOUT/client200-server.bin -l $CLIENTOUT/client200.log --startServer --serverTimeout 2m"
eval $CLIENTCMD > $CLIENTOUT/client200.txt 2>&1 || true &
PIDVAL1=$!
echo "$CLIENTCMD -- $PIDVAL1"
echo "Sleeping to ensure connection server instantiation"
sleep 5
# Initiate client and send message to server
CLIENTCMD="timeout 240s ../bin/client connection --ephemeral -s blob201 --connect $CLIENTOUT/client200-server.bin $CONNECTIONOPTS -l $CLIENTOUT/client201.log -m \"Hello 200 from 201, using connections\" --receiveCount 0"
eval $CLIENTCMD > $CLIENTOUT/client201.txt 2>&1 || true &
PIDVAL2=$!
echo "$CLIENTCMD -- $PIDVAL2"
wait $PIDVAL2
# Disconnect
CLIENTCMD="timeout 240s ../bin/client connection --ephemeral -s blob201 $CONNECTIONOPTS -l $CLIENTOUT/client201.log --connect $CLIENTOUT/client200-server.bin --disconnect"
eval $CLIENTCMD >> $CLIENTOUT/client201.txt 2>&1 || true &
PIDVAL2=$!
echo "$CLIENTCMD -- $PIDVAL2"
wait $PIDVAL2
wait $PIDVAL1
echo "Ephemeral Test Complete."
# TODO: TEST NON-EPHEMERAL CODE-PATH WHEN SUPPORTED
#echo "Testing Non-Ephemeral Initialization..."
## Initiate server
#CLIENTCMD="timeout 240s ../bin/client connection -s blob200 $CONNECTIONOPTS --writeContact $CLIENTOUT/client200-server.bin -l $CLIENTOUT/client200.log --startServer --serverTimeout 2m"
#eval $CLIENTCMD > $CLIENTOUT/client200.txt 2>&1 || true &
#PIDVAL1=$!
#echo "$CLIENTCMD -- $PIDVAL1"
#echo "Sleeping to ensure connection server instantiation"
#sleep 5
## Initiate client and send message to server
#CLIENTCMD="timeout 240s ../bin/client connection -s blob201 --connect $CLIENTOUT/client200-server.bin $CONNECTIONOPTS -l $CLIENTOUT/client201.log -m \"Hello 200 from 201, using connections\" --receiveCount 0"
#eval $CLIENTCMD > $CLIENTOUT/client201.txt 2>&1 || true &
#PIDVAL2=$!
#echo "$CLIENTCMD -- $PIDVAL2"
#wait $PIDVAL2
#
## Disconnect
#CLIENTCMD="timeout 240s ../bin/client connection -s blob201 $CONNECTIONOPTS -l $CLIENTOUT/client201.log --connect $CLIENTOUT/client200-server.bin --disconnect"
#eval $CLIENTCMD >> $CLIENTOUT/client201.txt 2>&1 || true &
#PIDVAL2=$!
#echo "$CLIENTCMD -- $PIDVAL2"
#wait $PIDVAL2
#wait $PIDVAL1
#echo "Non-Ephemeral Test Complete."
#
echo "CONNECTION TESTS FINISHED"
###############################################################################
# Test authenticated connections
###############################################################################
echo "TESTING AUTHENTICATED CONNECTIONS..."
echo "Testing Ephemeral Initialization..."
# Initiate server
CLIENTCMD="timeout 240s ../bin/client connection --ephemeral -s blob202 --authenticated $CONNECTIONOPTS --writeContact $CLIENTOUT/client202-server.bin -l $CLIENTOUT/client202.log --startServer --serverTimeout 2m"
eval $CLIENTCMD > $CLIENTOUT/client202.txt 2>&1 || true &
PIDVAL1=$!
echo "$CLIENTCMD -- $PIDVAL1"
echo "Sleeping to ensure connection server instantiation"
sleep 5
# Initiate client and send message to server
CLIENTCMD="timeout 240s ../bin/client connection --ephemeral -s blob203 --authenticated --connect $CLIENTOUT/client202-server.bin $CONNECTIONOPTS -l $CLIENTOUT/client203.log -m \"Hello 202 from 203, using connections\" --receiveCount 0"
eval $CLIENTCMD > $CLIENTOUT/client203.txt 2>&1 || true &
PIDVAL2=$!
echo "$CLIENTCMD -- $PIDVAL2"
wait $PIDVAL2
# Disconnect
CLIENTCMD="timeout 240s ../bin/client connection --ephemeral -s blob203 --authenticated $CONNECTIONOPTS -l $CLIENTOUT/client203.log --connect $CLIENTOUT/client202-server.bin --disconnect"
eval $CLIENTCMD >> $CLIENTOUT/client203.txt 2>&1 || true &
PIDVAL2=$!
echo "$CLIENTCMD -- $PIDVAL2"
wait $PIDVAL2
wait $PIDVAL1
echo "Ephemeral test complete."
# TODO: TEST NON-EPHEMERAL CODE-PATH WHEN SUPPORTED
#echo "Testing Non-Ephemeral Initialization..."
## Initiate server
#CLIENTCMD="timeout 240s ../bin/client connection -s blob202 --authenticated $CONNECTIONOPTS --writeContact $CLIENTOUT/client202-server.bin -l $CLIENTOUT/client202.log --startServer --serverTimeout 2m"
#eval $CLIENTCMD > $CLIENTOUT/client202.txt 2>&1 || true &
#PIDVAL1=$!
#echo "$CLIENTCMD -- $PIDVAL1"
#echo "Sleeping to ensure connection server instantiation"
#sleep 5
#
## Initiate client and send message to server
#CLIENTCMD="timeout 240s ../bin/client connection -s blob203 --authenticated --connect $CLIENTOUT/client202-server.bin $CONNECTIONOPTS -l $CLIENTOUT/client203.log -m \"Hello 202 from 203, using connections\" --receiveCount 0"
#eval $CLIENTCMD > $CLIENTOUT/client203.txt 2>&1 || true &
#PIDVAL2=$!
#echo "$CLIENTCMD -- $PIDVAL2"
#wait $PIDVAL2
#
## Disconnect
#CLIENTCMD="timeout 240s ../bin/client connection -s blob203 --authenticated $CONNECTIONOPTS -l $CLIENTOUT/client203.log --connect $CLIENTOUT/client202-server.bin --disconnect"
#eval $CLIENTCMD >> $CLIENTOUT/client203.txt 2>&1 || true &
#PIDVAL2=$!
#echo "$CLIENTCMD -- $PIDVAL2"
#wait $PIDVAL2
#wait $PIDVAL1
#echo "Non-Ephemeral Test Complete."
echo "AUTHENTICATED CONNECTION TESTS FINISHED"
echo "TESTS EXITED SUCCESSFULLY, CHECKING OUTPUT..." echo "TESTS EXITED SUCCESSFULLY, CHECKING OUTPUT..."
......
Disconnected from partner
Established
Established
loading ephemerally
loading ephemerally
Sending connection request
Sending connection request
Sent message "Hello 202 from 203, using connections" to connection partner.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment