@@ -19,44 +19,61 @@ Then use the specified arguments explained in the `statement.pdf`.
## 3. Folder Organization
```
| headers/
| interop/
| linksimulator/
| src/
| test_files/
| tests/
| unwanted_logs/
| test_files/
| tests_logs/
```
### 3.1 `interop/`
This folder contains two sub folders: receivers and senders which respectively contains the receivers and senders of other groups with whom we perform some interoperability tests.
### 3. 1. `linksimulator/`
The command:
```
make interop
```
tests our sender with the receivers in `interop/receivers` and then our receiver with the senders in `interop/senders`.
### 3. 2. `linksimulator/`
This folder contains a [git repository](https://github.com/cnp3/Linksimulator). We use the linksimulaor to simulate a network with certain configurations like packets loss, delays, etc. Full description in the `linksimulator/README.md`. We did not write any of the code in the folder.
### 3. 2. `test_files/`
### 3. 3. `test_files/`
This folder contains testing files that we will be sendig between the `receiver` and the `sender`. Any file added to this folder will automatically be used in tests suites.
This folder contains testing files that we will be sendig between the `receiver` and the `sender`. Any file added to this folder will automatically be used in tests suites.
### 3. 4. `tests_logs/`
This folder is important because all the file generated by
```
make interop
make tests
```
are stored there.
## 4. Testing
For the testing we have a specific directory that contains our shell script tests. In order to execute our tests we advise to run the following Makefile command
```
make tests
```
In order to test the transfer of a file, you have to add a file in the `test_files`. The suite cases will automatically load the fle and transfer using our protocol.
The bash script responsible for those tests is **run_tests.sh**.
We have two types of tests suites. *Simple* and *Advanced* test suites.
### 4. 1. *Simple* Test Suites
Simple tests don't use `linksimulator`, however they use `Valgrind` to check memory usage in both the sender and the receiver. After executing the `make [debug]`. One can run a simple test with the following command :
If you want to modify the suite files used for the tests, you have to add your file(s) to the directory `test_files`. Then you need to make your selection of file amongst the available files from `test_files` in the array *simple_test_files* for the Simple tests and *advanced_test_files* for the Advanced tests.
### 4. 1. *Simple* Test Suites
Simple tests don't use `linksimulator`, however they use `Valgrind` to check memory usage in both the sender and the receiver.
### 4. 2. *Advanced* Test Suites
TBA ...
## 5. System Architecture
Advanced tests use the `linksimulator` and `Valgrind`. For every given file, it'll test `with FEC` and `without FEC`. The parameters of the network simulation used by `linksimulator` are the same for every tests but can by modified (see lines 68 to 72).
TBA ...
\ No newline at end of file
Note: The advanced tests can be quite long to execute entirely. Feel free to modify the file used for the advanced test.