-
Notifications
You must be signed in to change notification settings - Fork 2
Supported scenarios (in progress)
Thanks for supporting this project by running tests.
We are extremely grateful for each test you can provide since we deal with a variant of a combinatoric explosion. Take our basic tests. There are just peer A and B. One sends a message. This message is expected to be received by the other peer after an ASAP encounter. Easy. ASAP already implies variants: a message can be sent before and during an encounter. We have two variants. A or B sends a message. Isn't that the same? Think so but better safe than sorry. We have four variants in this case.
It's getting worse. Take test A1. Peer A sends a message during an encounter with Peer B. One simple test. Both peers can run on a single computer like e.g. Windows, Ubuntu or Mac. Makes 3 variants. Peers can run on different machines same OS in a LAN. Makes 3 more tests. A can run on Windows, B on Ubuntu etc. pp. You see the picture. Finally, peers can run on different machines and in different local networks.
Any helping hand is welcome.
Here is the general test structure: Test scripts are part of this git repository. The script folder comprises all test scrips. Note: Test are software and have version. Version 1 of a basic test A1 folder contains just two scripes - each for peer A and B. This page offers a complete list of all test scripts available.
Test results are also part of this repository. Folder testRuns contains test results from successful tests. testRunsFailed is meant to store logs from failed tests. There should be a folder for each test scenario/version. Subfolders are the storage for logs produced by a tests. The failed test folder is the source for our debugging session.
First of all, take your time. Tests are meant to find bugs in a software. Finding bugs in tests tends to be more difficult. The most annoying problems are produced when the test environment is not set up accordingly. Empty folders are usually required to run a test. This software has a memory and that is stored in files.
Take your time :)
You better have got writing privileges in the test-folder.
Preparation:
- pick es test scenario in the test&plan (see tables below)
- create an empty directory
- make sure you have test the most recent release in your directory
- copy test script(s) into your empty directory - tables below provide a more specific reference to the required scripts
Execution:
- launch each peer, namely the messenger cli like this:
cat peerA.txt | java -jar SharkNetMessengerCLI.jar Alice. - There are at least two peers involved: make sure your peers start (more or less) synchronously - adjust wait periods if necessary
Checking results
- document your result by adding a line in the test&plan document; commit & push this file
- Add a new folder in the testRunsFailed- or testRuns
- upload logs
- commit & push
Thank your very much
Two peers exchange a single message in variants.
| Scenario | #bytes | Action Sequence | Expected Result | Scripts | Tests |
|---|---|---|---|---|---|
| CoreA1 | <100 | B opens port; A connects to B; A sends message | B received message | v1 | plan&results |
| CoreA2 | <100 | A opens port; B connects to A; B sends message | A received message | v1 | plan&results |
| CoreB1 | <100 | A sends message; B opens port; A connects B | B received message | v1 | plan&results |
| CoreB2 | <100 | B sends message; A opens port; B connects to A | A received message | v1 | plan&results |
| Scenario | #Peers | Message | Action Sequence | Expected Result | Scripts |
|---|---|---|---|---|---|
| CoreA1_Dis | 2 | char | Core_A1; A disconnects from B; Core_A1. | B received 2 messages | v1 |
The action sequences of the integrated core scenarios will be referred to by the names of the scenarios.
| Scenario # | Peer Count | Message | Action Sequence | Expected Result | PeerA | PeerB |
|---|---|---|---|---|---|---|
| CoreA1_Dis | 2 | char |
Core_A1, A disconnects from B, Core_A1. |
B receives the message. | wait 6000 connectTCP localhost 4444 wait 6000 sendMessage TCPChain_CoreA1 sn/characters closeEncounter 1 wait 3000 wait 6000 connectTCP localhost 4444 wait 6000 sendMessage TCPChain_CoreA1 sn/characters wait 5000 lsMessages exit |
openTCP 4444 wait 36000 wait 5000 lsMessages exit |
| CoreA2-Dis | 2 | char |
Core_A2, B disconnects from A, Core_A2. |
A receives the message. | openTCP 4444 wait 36000 wait 5000 lsMessages exit |
wait 6000 connectTCP localhost 4444 wait 6000 sendMessage TCPChain_CoreA2 sn/characters closeEncounter 1 wait 3000 wait 6000 connectTCP localhost 4444 wait 6000 sendMessage TCPChain_CoreA2 sn/characters wait 5000 lsMessages exit |
| CoreB1-Dis | 2 | char |
Core_B1, A disconnects from B, Core_B1. |
B receives the message. | wait 2000 sendMessage TCPChain_CoreB1 sn/characters wait 6000 connectTCP FILLER_IP 4444 closeEncounter 1 wait 6000 wait 2000 sendMessage TCPChain_CoreB1 sn/characters wait 6000 connectTCP FILLER_IP 4444 wait 6000 wait 5000 lsMessages exit |
openTCP 4444 wait 36000 wait 5000 lsMessages exit |
| CoreB2-Dis | 2 | char |
Core_B2, B disconnects from A, Core_B2. |
A receives the message. | openTCP 4444 wait 36000 wait 5000 lsMessages exit |
wait 2000 sendMessage TCPChain_CoreB2 sn/characters wait 6000 connectTCP localhost 4444 closeEncounter 1 wait 6000 wait 2000 sendMessage TCPChain_CoreB2 sn/characters wait 6000 connectTCP localhost 4444 wait 6000 wait 5000 lsMessages exit |
| A <-> B | B <-> C | Result | Environment | |
|---|---|---|---|---|
| TC001 | CoreA1 | CoreA1 | ||
| TC002 | CoreA1 | CoreA2 | ||
| TC003 | CoreA2 | CoreA1 | ||
| TC004 | CoreA2 | CoreA2 | ||
| TC005 | CoreA1 | CoreB1 | ||
| TC006 | CoreA1 | CoreB2 | ||
| TC007 | CoreA2 | CoreB1 | ||
| TC008 | CoreA2 | CoreB2 | ||
| TC009 | CoreB1 | CoreA1 | ||
| TC010 | CoreB1 | CoreA2 | ||
| TC011 | CoreB2 | CoreA1 | ||
| TC012 | CoreB2 | CoreA2 | ||
| TC013 | CoreB1 | CoreB1 | ||
| TC014 | CoreB1 | CoreB2 | ||
| TC015 | CoreB2 | CoreB1 | ||
| TC016 | CoreB2 | CoreB2 | ||
| TC017 | CoreA1 | CoreA1_Dis | ||
| TC018 | CoreA1 | CoreA2_Dis | ||
| TC019 | CoreA1 | CoreB1_Dis | ||
| TC020 | CoreA1 | CoreB2_Dis | ||
| TC021 | CoreA2 | CoreA1_Dis | ||
| TC022 | CoreA2 | CoreA2_Dis | ||
| TC023 | CoreA2 | CoreB1_Dis | ||
| TC024 | CoreA2 | CoreB2_Dis | ||
| TC025 | CoreA1_Dis | CoreA1 | ||
| TC026 | CoreA1_Dis | CoreA2 | ||
| TC027 | CoreA1_Dis | CoreB1 | ||
| TC028 | CoreA1_Dis | CoreB2 | ||
| TC029 | CoreA2_Dis | CoreA1 | ||
| TC030 | CoreA2_Dis | CoreA2 | ||
| TC031 | CoreA2_Dis | CoreB1 | ||
| TC032 | CoreA2_Dis | CoreB2 | ||
| TC033 | CoreA1_Dis | CoreA1_Dis | ||
| TC034 | CoreA1_Dis | CoreA2_Dis | ||
| TC035 | CoreA1_Dis | CoreB1_Dis | ||
| TC036 | CoreA1_Dis | CoreB2_Dis | ||
| TC037 | CoreA2_Dis | CoreA1_Dis | ||
| TC038 | CoreA2_Dis | CoreA2_Dis | ||
| TC039 | CoreA2_Dis | CoreB1_Dis | ||
| TC040 | CoreA2_Dis | CoreB2_Dis |
| Scenario # | Peer Count | Message | Action Sequence | Expected Result | Commands |
|---|---|---|---|---|---|
| Hub_Host | 1 | - | Peer 0 (Host) starts the hub in a separate process | The hub is ready for connections. | startHub 6907 wait 60000 stopHub 6907 exit |
| Scenario # | Peer Count | Message | Action Sequence | Expected Result | PeerA | PeerB |
|---|---|---|---|---|---|---|
| Hub_Core1 | 2 | - | -hubHost - Peer A connects to the Hub - Peer B connects to the Hub. |
Peer A and Peer B have an encounter through the Hub. | wait 2000 connectHub localhost 6907 wait 2000 wait 1000 lsEncounter lsMessages exit |
wait 500 wait 2000 connectHub localhost 6907 wait 2000 wait 1000 lsEncounter wait 500 lsMessages exit |
| Hub_Core2 | 2 | - | -hubHost - Peer B connects to the Hub - Peer A connects to the Hub. |
Peer A and Peer B have an encounter through the Hub. | wait 500 wait 2000 connectHub localhost 6907 wait 2000 wait 1000 lsEncounter wait 500 lsMessages exit |
wait 2000 connectHub localhost 6907 wait 2000 wait 1000 lsEncounter lsMessages exit |
| Hub_A1 | 2 | char | Hub_Host, Hub_Core1, Peer A sends a message | Peer B receives the message. | wait 2000 connectHub localhost 6907 wait 2000 wait 1000 lsEncounter sendMessage HUBCoreA1_ sn/characters wait 5000 lsMessages exit |
wait 500 wait 2000 connectHub localhost 6907 wait 2000 wait 1000 lsEncounter wait 500 wait 5000 lsMessages exit |
| Hub_A2 | 2 | char | Hub_Host, Hub_Core2, Peer B sends a message | Peer A receives the message. | wait 500 wait 2000 connectHub localhost 6907 wait 2000 wait 1000 lsEncounter wait 500 sendMessage HUBCoreA2_ sn/characters wait 5000 lsMessages exit |
wait 2000 connectHub localhost 6907 wait 2000 wait 1000 lsEncounter wait 5000 lsMessages exit |
| Hub_B1 | 2 | char | Hub_Host, Peer A sends a message, Hub_Core1 | Peer B receives the message. | sendMessage HUBCoreB1_ sn/characters wait 2000 connectHub localhost 6907 wait 2000 wait 1000 lsEncounter wait 6000 lsMessages exit |
wait 500 wait 2000 connectHub localhost 6907 wait 2000 wait 1000 lsEncounter wait 500 wait 6000 lsMessages exit |
| Hub_B2 | 2 | char | Hub_Host, Peer B sends a message, Hub_Core2 | Peer A receives the message. | sendMessage HUBCoreB2_ sn/characters wait 500 wait 2000 connectHub localhost 6907 wait 2000 wait 1000 lsEncounter wait 500 wait 6000 lsMessages exit |
wait 2000 connectHub localhost 6907 wait 2000 wait 1000 lsEncounter wait 6000 lsMessages exit |
| Scenario # | Peer Count | Message | Action Sequence | Expected Result | PeerA | PeerB |
|---|---|---|---|---|---|---|
| Hub_DisA1 | 2 | char | Hub_Host, Hub_Core1, Peer B disconnects from the hub, Peer A sends a message. | Peer B receives the message. | wait 2000 connectHub localhost 6907 wait 2000 wait 1000 lsEncounter wait 6000 sendMessage HUBCoreA1_Dis_ sn/characters wait 24000 wait 5000 lsMessages exit |
wait 500 wait 2000 connectHub localhost 6907 wait 2000 wait 1000y lsEncounter wait 500 disconnectHub 1 wait 24000 wait 5000 lsMessages exit |
| Hub_DisB1 | 2 | char | Hub_Host, Hub_Core2, Peer A disconnects from the hub, Peer B sends a message. | Peer A receives the message. | wait 500 wait 2000 connectHub localhost 6907 wait 2000 wait 1000 lsEncounter wait 500 disconnectHub 1 wait 12000 wait 6000 lsMessages exit |
wait 2000 connectHub localhost 6907 wait 2000 wait 1000 lsEncounter wait 6000 sendMessage HUBCoreB1_Dis_ sn/characters wait 6000 lsMessages exit |
| Hub_DisA2 | 2 | char | Hub_Host, Hub_Core1, Peer B disconnects from the hub, Peer B sends a message. | Peer A receives the message. | wait 2000 connectHub localhost 6907 wait 2000 wait 1000 lsEncounter wait 6000 wait 5000 lsMessages exit |
wait 500 wait 2000 connectHub localhost 6907 wait 2000 wait 1000 lsEncounter wait 500 disconnectHub 1 wait 12000 sendMessage HUBCoreA2_Dis_ sn/characters wait 5000 lsMessages exit |
| Hub_DisB2 | 2 | char | Hub_Host, Hub_Core2, Peer A disconnects from the hub, Peer A sends a message. | Peer B receives the message. | wait 2000 connectHub FILLER_IP 6907 wait 2000 wait 1000 lsEncounter wait 6000 disconnectHub 1 wait 3000 sendMessage HUBCoreB2_Dis sn/characters wait 5000 lsMessages exit |
wait 500 wait 2000 connectHub FILLER_IP 6907 wait 2000 wait 1000 lsEncounter wait 500 disconnectHub 1 wait 12000 wait 5000 lsMessages exit |
12 tests passed, 6 tests failed. (Test protocol txt format incompatible... couldn't include. //todo) Files here: test files
- Project goals
- Step 0: Concept
- Step 1: API
- Step 2: Implementation
- Step 3: Shark Component
- Step 4: Testing
- Step 5: GUI
- Javadoc
- Shark Messenger User Guide
- How to use
- Command Page
- TODO