From 566793de15492bab71eb8a967bddbcd65df2871d Mon Sep 17 00:00:00 2001
From: Florent Gluck <florent.gluck@hesge.ch>
Date: Mon, 11 Nov 2024 18:48:19 +0100
Subject: [PATCH] Added disk ref for testing sector writes updated lab add 2
 guests: guest_disk_phys.bin and guest_disk_pv.bin

---
 .../disk_tests/disk_ref.raw                   | Bin 0 -> 262144 bytes
 .../lab-virtual_game_machine.md               |  24 ++++++++++++++++++
 .../validation/guests/guest_disk_phys.bin     | Bin 0 -> 7412 bytes
 .../validation/guests/guest_disk_pv.bin       | Bin 0 -> 7412 bytes
 4 files changed, 24 insertions(+)
 create mode 100644 labs/lab-virtual_game_machine/disk_tests/disk_ref.raw
 create mode 100755 labs/lab-virtual_game_machine/validation/guests/guest_disk_phys.bin
 create mode 100755 labs/lab-virtual_game_machine/validation/guests/guest_disk_pv.bin

diff --git a/labs/lab-virtual_game_machine/disk_tests/disk_ref.raw b/labs/lab-virtual_game_machine/disk_tests/disk_ref.raw
new file mode 100644
index 0000000000000000000000000000000000000000..0ff5d37539c6fc44d55c5539bd30685e8fd32ce9
GIT binary patch
literal 262144
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
Z^ULy9Ce2;Q@aX#S%@;V!Mfl9+V*!8|yiWiC

literal 0
HcmV?d00001

diff --git a/labs/lab-virtual_game_machine/lab-virtual_game_machine.md b/labs/lab-virtual_game_machine/lab-virtual_game_machine.md
index aec99db..157d9f1 100644
--- a/labs/lab-virtual_game_machine/lab-virtual_game_machine.md
+++ b/labs/lab-virtual_game_machine/lab-virtual_game_machine.md
@@ -535,3 +535,27 @@ Using native display driver (phys).
 Display resolution: 600x400 pixels.
 ```
 \normalsize
+
+### `guest_disk_pv.bin`
+\vspace{-.3cm}
+
+Ce guest réalise un test d'écriture de secteurs via un driver paravirtualisé (hypercall n°4). Il écrit, dans 8 secteurs du disque, une suite de valeurs aléatoires connues, donc toujours les mêmes à chaque exécution. Les 8 secteurs sont les suivants, dans l'ordre\ : 307, 71, 511, 17, 147, 31, 219, 0.  
+
+Attention\ : il considère un disque d'une capacité de 256\ KB.
+
+Il écrit sur la console virtuelle les secteurs écrits et produit la sortie suivante\ :
+\footnotesize
+```
+Started disk validation tests...
+Completed disk validation tests.
+```
+\normalsize
+
+Dans `disk_tests/disk_ref.raw` se trouve une image disque de 256\ KB contenant le contenu exact du disque que vous devriez obtenir après l'exécution de ce guest. On part du principe qu'avant l'exéction du guest, le disque est rempli de 0. Ceci vous permettra de valider que votre VMM se comporte correctement.
+
+### `guest_disk_phys.bin`
+\vspace{-.3cm}
+
+Ce guest réalise le même test d'écriture de secteurs mais via un driver physique. Attention toutefois\ : le code du guest tente volontairement de réaliser des écritures sur disque, mais volontairement légèrement incorrectes. Ces tentatives d'écritures ne devraient jamais aboutir et seules les écritures implémentant un code correct doivent mener à un secteur écrit sur disque. Les secteurs écrits doivent donc être exactement les mêmes que dans le guest précédent, avec exactement les mêmes contenus\ !
+
+L'affichage réalisé par le guest sur la console virtuelle est identique au guest précédent.
diff --git a/labs/lab-virtual_game_machine/validation/guests/guest_disk_phys.bin b/labs/lab-virtual_game_machine/validation/guests/guest_disk_phys.bin
new file mode 100755
index 0000000000000000000000000000000000000000..5c2802213b1196b8a71a96f80ec40a9bd0672870
GIT binary patch
literal 7412
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

literal 0
HcmV?d00001

diff --git a/labs/lab-virtual_game_machine/validation/guests/guest_disk_pv.bin b/labs/lab-virtual_game_machine/validation/guests/guest_disk_pv.bin
new file mode 100755
index 0000000000000000000000000000000000000000..654fec5f22adb3532fa1bad8205e50c6c9ccb000
GIT binary patch
literal 7412
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

literal 0
HcmV?d00001

-- 
GitLab